diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index c2400cd2..00000000 --- a/.eslintignore +++ /dev/null @@ -1,16 +0,0 @@ -# minified files -**/i18n/locales/** - -# auto-generated files -packages/showcase/componentData.ts -packages/showcase/src/stories.ts - -# configuration -.vercel/** - -# built files -**/lib/cjs/** -coverage/** - -# wip -**/admin/** diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index c688114b..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": [ - "solid", - "spellcheck" - ], - "extends": [ - "eslint:recommended", - "plugin:solid/typescript", - "plugin:@typescript-eslint/recommended", - "prettier" - ], - "rules": { - "@typescript-eslint/no-non-null-assertion": "off", - "spellcheck/spell-checker": [ - "warn", - { - "lang": "en_GB", - "strings": false, - "identifiers": false, - "templates": false, - "skipWords": [ - "dismissable", - "regex", - "accessor", - "dnd", - "webhooks", - "upryzing" - ], - "minLength": 3 - } - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "varsIgnorePattern": "^_" - } - ], - "no-unused-vars": [ - "warn", - { - "varsIgnorePattern": "^_" - } - ], - "solid/jsx-no-undef": [0], - "require-jsdoc": [ - "warn", - { - "require": { - "FunctionDeclaration": true, - "MethodDefinition": true, - "ClassDeclaration": true, - "ArrowFunctionExpression": true, - "FunctionExpression": true - } - } - ], - "solid/jsx-no-undef": ["ignore"] - } -} \ No newline at end of file diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml index 91bd34b8..92963d48 100644 --- a/.github/workflows/book.yml +++ b/.github/workflows/book.yml @@ -3,6 +3,7 @@ on: push: branches: - main + pull_request: jobs: deploy: @@ -15,32 +16,14 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Install latest mdbook - run: | - tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name') - url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz" - mkdir mdbook - curl -sSL $url | tar -xz --directory=./mdbook - echo `pwd`/mdbook >> $GITHUB_PATH - - name: Install latest mdbook-mermaid - run: | - tag=$(curl 'https://api.github.com/repos/badboy/mdbook-mermaid/releases/latest' | jq -r '.tag_name') - url="https://github.com/badboy/mdbook-mermaid/releases/download/${tag}/mdbook-mermaid-${tag}-x86_64-unknown-linux-gnu.tar.gz" - mkdir mdbook-mermaid - curl -sSL $url | tar -xz --directory=./mdbook-mermaid - echo `pwd`/mdbook-mermaid >> $GITHUB_PATH - - name: Install latest mdbook-katex - run: | - tag=$(curl 'https://api.github.com/repos/lzanini/mdbook-katex/releases/latest' | jq -r '.tag_name') - tag_short=v${tag/-binaries/} - url="https://github.com/lzanini/mdbook-katex/releases/download/${tag}/mdbook-katex-${tag_short}-x86_64-unknown-linux-gnu.tar.gz" - mkdir mdbook-katex - curl -sSL $url | tar -xz --directory=./mdbook-katex - echo `pwd`/mdbook-katex >> $GITHUB_PATH - - name: Build Book - run: | - cd doc - mdbook build + + - name: Setup Mise + uses: immich-app/devtools/actions/use-mise@cd24790a7f5f6439ac32cc94f5523cb2de8bfa8c # use-mise-action-v1.1.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + + - run: mise mdbook:build + - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload artifact diff --git a/.github/workflows/feature_matrix.yml b/.github/workflows/feature_matrix.yml index c2faac5b..431642ab 100644 --- a/.github/workflows/feature_matrix.yml +++ b/.github/workflows/feature_matrix.yml @@ -24,7 +24,7 @@ jobs: - name: Clean up the document run: | # add title - sed -i "1i# Feature Matrix\nComparison of implemented features across Revolt's clients.\n" doc/src/feature-matrix.md + sed -i "1i# Feature Matrix\nComparison of implemented features across Upryzing's clients.\n" doc/src/feature-matrix.md # replace the indicators sed -i 's/| O /| ✅ /g' doc/src/feature-matrix.md @@ -39,13 +39,13 @@ jobs: # set column properties again (while adding header line) sed -i '5i |---|---|---|---|:-:|:-:|:-:|:-:|:-:|' doc/src/feature-matrix.md - + # add width fix echo '' >> doc/src/feature-matrix.md echo '' >> doc/src/feature-matrix.md - name: Commit changes run: | - git config --global user.name 'Revolt CI' - git config --global user.email 'revolt-ci@users.noreply.github.com' + git config --global user.name 'Upryzing CI' + git config --global user.email 'stoat-ci@users.noreply.github.com' git commit -am "chore(docs): update feature matrix" git push diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index c54f84aa..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Run Tests - -on: - push: - paths-ignore: - - ".github/**" - - "!.github/workflows/test.yml" - - ".vscode/**" - - "doc/**" - - "lifecycle/**" - - ".gitignore" - - "README.md" - pull_request: - -jobs: - test: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [20.x] - - steps: - - name: Checkout repository and submodules - uses: actions/checkout@v3 - with: - submodules: recursive - - uses: pnpm/action-setup@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - - name: Install packages - run: pnpm install - - name: Build all dependencies - run: pnpm build:deps - - name: Run tests - run: pnpm test diff --git a/.github/workflows/triage_issue.yml b/.github/workflows/triage_issue.yml deleted file mode 100644 index ecc69f59..00000000 --- a/.github/workflows/triage_issue.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Add Issue to Board - -on: - issues: - types: [opened] - -jobs: - track_issue: - runs-on: ubuntu-latest - steps: - - name: Get project data - env: - GITHUB_TOKEN: ${{ secrets.PAT }} - run: | - gh api graphql -f query=' - query { - organization(login: "revoltchat"){ - projectV2(number: 3) { - id - fields(first:20) { - nodes { - ... on ProjectV2SingleSelectField { - id - name - options { - id - name - } - } - } - } - } - } - }' > project_data.json - - echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV - echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV - echo 'TODO_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV - - - name: Add issue to project - env: - GITHUB_TOKEN: ${{ secrets.PAT }} - ISSUE_ID: ${{ github.event.issue.node_id }} - run: | - item_id="$( gh api graphql -f query=' - mutation($project:ID!, $issue:ID!) { - addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { - item { - id - } - } - }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')" - - echo 'ITEM_ID='$item_id >> $GITHUB_ENV diff --git a/.github/workflows/triage_pr.yml b/.github/workflows/triage_pr.yml deleted file mode 100644 index e59919a4..00000000 --- a/.github/workflows/triage_pr.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Add PR to Board - -on: - pull_request_target: - types: [opened, synchronize, ready_for_review, review_requested] - -jobs: - track_pr: - runs-on: ubuntu-latest - steps: - - name: Get project data - env: - GITHUB_TOKEN: ${{ secrets.PAT }} - run: | - gh api graphql -f query=' - query { - organization(login: "upryzing"){ - projectV2(number: 5) { - id - fields(first:20) { - nodes { - ... on ProjectV2SingleSelectField { - id - name - options { - id - name - } - } - } - } - } - } - }' > project_data.json - - echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV - echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV - echo 'INCOMING_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Status") | .options[] | select(.name=="Untriaged") |.id' project_data.json) >> $GITHUB_ENV - - - name: Add PR to project - env: - GITHUB_TOKEN: ${{ secrets.PAT }} - PR_ID: ${{ github.event.pull_request.node_id }} - run: | - item_id="$( gh api graphql -f query=' - mutation($project:ID!, $pr:ID!) { - addProjectV2ItemById(input: {projectId: $project, contentId: $pr}) { - item { - id - } - } - }' -f project=$PROJECT_ID -f pr=$PR_ID --jq '.data.addProjectV2ItemById.item.id')" - - echo 'ITEM_ID='$item_id >> $GITHUB_ENV - - - name: Set fields - env: - GITHUB_TOKEN: ${{ secrets.PAT }} - run: | - gh api graphql -f query=' - mutation ( - $project: ID! - $item: ID! - $status_field: ID! - $status_value: String! - ) { - set_status: updateProjectV2ItemFieldValue(input: { - projectId: $project - itemId: $item - fieldId: $status_field - value: { - singleSelectOptionId: $status_value - } - }) { - projectV2Item { - id - } - } - }' -f project=$PROJECT_ID -f item=$ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.INCOMING_OPTION_ID }} --silent diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml deleted file mode 100644 index 3cd610b7..00000000 --- a/.github/workflows/typecheck.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Typecheck - -on: - push: - paths-ignore: - - ".github/**" - - "!.github/workflows/typecheck.yml" - - ".vscode/**" - - "doc/**" - - "lifecycle/**" - - ".gitignore" - - "README.md" - pull_request: - -jobs: - typecheck: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [20.x] - - steps: - - name: Checkout repository and submodules - uses: actions/checkout@v3 - with: - submodules: recursive - - uses: pnpm/action-setup@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - - name: Install packages - run: pnpm install - - name: Build all dependencies - run: pnpm build:deps - - name: Run tests - run: pnpm test diff --git a/.github/workflows/validate-pr-title.yml b/.github/workflows/validate-pr-title.yml new file mode 100644 index 00000000..6af09303 --- /dev/null +++ b/.github/workflows/validate-pr-title.yml @@ -0,0 +1,20 @@ +name: "Lint PR" + +on: + pull_request_target: + types: + - opened + - reopened + - edited + - synchronize + +jobs: + main: + name: Validate PR title + runs-on: ubuntu-latest + permissions: + pull-requests: read + steps: + - uses: amannn/action-semantic-pull-request@v6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 182db608..cd754534 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,9 @@ [submodule "packages/upryzing.js"] path = packages/upryzing.js url = https://github.com/upryzing/upryzing.js -[submodule "packages/solid-styled-components"] - path = packages/solid-styled-components - url = https://github.com/upryzing/solid-styled-components.git +[submodule "packages/solid-livekit-components"] + path = packages/solid-livekit-components + url = https://github.com/revoltchat/solid-livekit-components +[submodule "packages/js-lingui-solid"] + path = packages/js-lingui-solid + url = https://github.com/revoltchat/js-lingui-solid diff --git a/.mise/config.toml b/.mise/config.toml new file mode 100644 index 00000000..119561a3 --- /dev/null +++ b/.mise/config.toml @@ -0,0 +1,26 @@ +[tools] +deno = "2.6.5" +node = "25.4.0" +pnpm = "10.28.1" + +gh = "2.25.0" + +mdbook = "0.5.2" +"github:lzanini/mdbook-katex" = "0.9.3-binaries" + +[tasks.check] +description = "Task group for CI checks" +run = [ + { task = "install:frozen" }, + { task = "build:deps" }, + { task = "build" }, + { tasks = [ + "lint", + "*:check", + ] }, + { task = "format" }, + { task = "test:e2e:install-deps" }, + { tasks = [ + "test:e2e", + ] }, +] diff --git a/.mise/tasks/build/_default b/.mise/tasks/build/_default new file mode 100755 index 00000000..d58f707e --- /dev/null +++ b/.mise/tasks/build/_default @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +#MISE description="Build web" +#MISE depends=["install:assets", "lingui:compile"] +#MISE wait_for=["build:deps"] +set -e + +pnpm --filter lavender exec vite build diff --git a/.mise/tasks/build/check b/.mise/tasks/build/check new file mode 100755 index 00000000..f44be401 --- /dev/null +++ b/.mise/tasks/build/check @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Check types are compiling" +set -e + +pnpm --filter lavender tsc --noEmit diff --git a/.mise/tasks/build/deps/_default b/.mise/tasks/build/deps/_default new file mode 100755 index 00000000..583cafe5 --- /dev/null +++ b/.mise/tasks/build/deps/_default @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +#MISE description="Build dependencies" +#MISE depends=["build:deps:upryzing-js", "build:deps:livekit", "build:deps:lingui", "lingui:compile"] +set -e diff --git a/.mise/tasks/build/deps/lingui b/.mise/tasks/build/deps/lingui new file mode 100755 index 00000000..2d5a8df9 --- /dev/null +++ b/.mise/tasks/build/deps/lingui @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Build Lingui dependencies" +set -e + +pnpm --filter @lingui-solid/babel-plugin-lingui-macro build +pnpm --filter @lingui-solid/babel-plugin-extract-messages build diff --git a/.mise/tasks/build/deps/livekit b/.mise/tasks/build/deps/livekit new file mode 100755 index 00000000..2641fe3b --- /dev/null +++ b/.mise/tasks/build/deps/livekit @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Build LiveKit dependencies" +set -e + +pnpm --filter solid-livekit-components build diff --git a/.mise/tasks/build/deps/upryzing-js b/.mise/tasks/build/deps/upryzing-js new file mode 100755 index 00000000..f709404f --- /dev/null +++ b/.mise/tasks/build/deps/upryzing-js @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Build upryzing.js" +set -e + +pnpm --filter upryzing.js build diff --git a/.mise/tasks/build/prod b/.mise/tasks/build/prod new file mode 100755 index 00000000..5c899599 --- /dev/null +++ b/.mise/tasks/build/prod @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Build web (Upryzing production)" +set -e + +export BASE_PATH=/app/ +mise build diff --git a/.mise/tasks/dev b/.mise/tasks/dev new file mode 100755 index 00000000..020774f0 --- /dev/null +++ b/.mise/tasks/dev @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Start web app in development mode" +#MISE depends=["install:assets"] +set -e + +pnpm --filter lavender exec vite --host diff --git a/.mise/tasks/format/_default b/.mise/tasks/format/_default new file mode 100755 index 00000000..7932e332 --- /dev/null +++ b/.mise/tasks/format/_default @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Check code formatting" +set -e + +pnpm exec prettier --check 'packages/client/**/*.{ts,tsx,json}' diff --git a/.mise/tasks/format/fix b/.mise/tasks/format/fix new file mode 100755 index 00000000..f4d0a852 --- /dev/null +++ b/.mise/tasks/format/fix @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Fix code formatting" +set -e + +pnpm exec prettier --write 'packages/client/**/*.{ts,tsx,json}' diff --git a/.mise/tasks/install/assets b/.mise/tasks/install/assets new file mode 100755 index 00000000..cf082874 --- /dev/null +++ b/.mise/tasks/install/assets @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Setup client assets" +set -e + +pnpm --filter lavender exec node scripts/copyAssets.mjs diff --git a/.mise/tasks/install/deps b/.mise/tasks/install/deps new file mode 100755 index 00000000..f1bb724a --- /dev/null +++ b/.mise/tasks/install/deps @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Install all dependencies" +set -e + +pnpm install diff --git a/.mise/tasks/install/frozen b/.mise/tasks/install/frozen new file mode 100755 index 00000000..e321b373 --- /dev/null +++ b/.mise/tasks/install/frozen @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Install all dependencies (don't update lockfile)" +set -e + +pnpm install --frozen-lockfile diff --git a/.mise/tasks/lingui/_default b/.mise/tasks/lingui/_default new file mode 100755 index 00000000..860181a0 --- /dev/null +++ b/.mise/tasks/lingui/_default @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +#MISE description="Extract and compile i18n catalogs" +mise lingui:extract +mise lingui:compile diff --git a/.mise/tasks/lingui/check b/.mise/tasks/lingui/check new file mode 100755 index 00000000..4a4602cb --- /dev/null +++ b/.mise/tasks/lingui/check @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Ensure i18n catalogs are up to date" +#MISE depends=["lingui"] +set -e + +git status --porcelain -- "packages/client/components/i18n/catalogs" | grep -q . && exit 1 || exit 0 diff --git a/.mise/tasks/lingui/compile b/.mise/tasks/lingui/compile new file mode 100755 index 00000000..852583f0 --- /dev/null +++ b/.mise/tasks/lingui/compile @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Compile i18n catalogs" +#MISE wait_for=["build:deps:lingui"] +set -e + +pnpm --filter lavender exec lingui compile --typescript diff --git a/.mise/tasks/lingui/extract b/.mise/tasks/lingui/extract new file mode 100755 index 00000000..7897828c --- /dev/null +++ b/.mise/tasks/lingui/extract @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Extract i18n catalog from source code" +set -e + +pnpm --filter lavender exec lingui extract diff --git a/.mise/tasks/lint/_default b/.mise/tasks/lint/_default new file mode 100755 index 00000000..b8e054ba --- /dev/null +++ b/.mise/tasks/lint/_default @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Lint code and find issues" +set -e + +pnpm exec eslint --ext .ts,.tsx packages/client diff --git a/.mise/tasks/lint/fix b/.mise/tasks/lint/fix new file mode 100755 index 00000000..3d5456d5 --- /dev/null +++ b/.mise/tasks/lint/fix @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Lint code and fix issues" +set -e + +pnpm exec eslint --fix --ext .ts,.tsx packages/client diff --git a/.mise/tasks/mdbook/_default b/.mise/tasks/mdbook/_default new file mode 100755 index 00000000..d0b55273 --- /dev/null +++ b/.mise/tasks/mdbook/_default @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Serve mdbook" +#MISE dir="{{config_root}}/doc" +set -e + +mdbook serve diff --git a/.mise/tasks/mdbook/build b/.mise/tasks/mdbook/build new file mode 100755 index 00000000..1095c26e --- /dev/null +++ b/.mise/tasks/mdbook/build @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Build mdbook" +#MISE dir="{{config_root}}/doc" +set -e + +mdbook build diff --git a/.mise/tasks/start b/.mise/tasks/start new file mode 100755 index 00000000..3ff26c35 --- /dev/null +++ b/.mise/tasks/start @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Start web app" +#MISE depends=["build"] +set -e + +pnpm --filter lavender exec vite preview --host diff --git a/.mise/tasks/test/e2e/_default b/.mise/tasks/test/e2e/_default new file mode 100755 index 00000000..b3754c42 --- /dev/null +++ b/.mise/tasks/test/e2e/_default @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Run end-to-end tests for web" +set -e + +pnpm --filter lavender exec playwright test diff --git a/.mise/tasks/test/e2e/install-deps b/.mise/tasks/test/e2e/install-deps new file mode 100755 index 00000000..98cf474a --- /dev/null +++ b/.mise/tasks/test/e2e/install-deps @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +#MISE description="Install playwright dependencies" +set -e + +if [[ -z "${PLAYWRIGHT_BROWSERS_PATH}" ]]; then +pnpm --filter lavender exec playwright install +fi diff --git a/.mise/tasks/test/e2e/show-report b/.mise/tasks/test/e2e/show-report new file mode 100755 index 00000000..22d0ab56 --- /dev/null +++ b/.mise/tasks/test/e2e/show-report @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Show report for Playwright results" +set -e + +pnpm --filter lavender exec playwright show-report diff --git a/.prettierignore b/.prettierignore index bf8e3f30..cb0939c1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,13 +1,9 @@ # minified files +**/i18n/catalogs/** **/i18n/locales/** # auto-generated files -packages/showcase/componentData.ts -packages/showcase/src/stories.ts +**/styled-system/** -# configuration -.vercel/** - -# built files -**/lib/cjs/** -coverage/** +# test results +**/test-results/** diff --git a/.prettierrc b/.prettierrc index 11ec0bf7..b4b7d631 100644 --- a/.prettierrc +++ b/.prettierrc @@ -2,17 +2,7 @@ "tabWidth": 2, "useTabs": false, "plugins": [ - "@pandabox/prettier-plugin", - "@trivago/prettier-plugin-sort-imports" + "prettier-plugin-organize-imports" ], - "importOrder": [ - "^solid", - "", - "^@revolt", - "^@material-design-icons", - "^\\.\\.", - "^[./]" - ], - "importOrderSeparation": true, - "importOrderSortSpecifiers": true + "organizeImportsTypeOrder": "first" } \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..1d9915bb --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch localhost", + "type": "firefox", + "request": "launch", + "reAttach": true, + "url": "http://localhost:5174", + "webRoot": "${workspaceFolder}/packages/client" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index c99c5b3c..e178298c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,17 +1,24 @@ { + // Configure Prettier eslint + "editor.defaultFormatter": "rvest.vs-code-prettier-eslint", + "editor.formatOnType": false, + "editor.formatOnPaste": true, + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "file", + // Enable ESLint auto-fixing on save + "editor.codeActionsOnSave": { + "source.fixAll": "explicit" + }, + // Exclude files from the file explorer "files.exclude": { "**/node_modules": true, "**/pnpm-lock.yaml": true, "**/tsconfig.json": false }, - "editor.codeActionsOnSave": { - "source.fixAll": "explicit" - }, // follow the style guidlines in `GUIDELINES.md` "editor.tabSize": 2, "editor.insertSpaces": true, "editor.detectIndentation": false, - "editor.formatOnSave": true, // `GUIDELINES.md` only really applies to JS/HTML. Using that in Rust kinda looks ugly. "[rust]": { "editor.tabSize": 4, @@ -23,4 +30,4 @@ "./packages/desktop/src-tauri/Cargo.toml" ], "nixEnvSelector.nixFile": "${workspaceRoot}/default.nix" -} \ No newline at end of file +} diff --git a/GUIDELINES.md b/GUIDELINES.md index d102b896..8cda236f 100644 --- a/GUIDELINES.md +++ b/GUIDELINES.md @@ -12,7 +12,7 @@ I am still working on putting stuff together, but here are some important things - Comment above all classes, constants, Solid components, constructors, methods which do not override the parent class and functions. - If you have relatively long and / or complex code, either explain what it does in the method / function comment or in-line reasonable comments throughout to make it easy to follow through. - Avoid importing external libraries in more than one component, re-export where appropriate. -- Import only types where necessary, such as `@upryzing/upryzing.js` in `@revolt/ui`. +- Import only types where necessary, such as `upryzing.js` in `@revolt/ui`. Also another major thing: **accessibility!** diff --git a/LICENSE b/LICENSE index e8f3c29d..c5d0f3c6 100644 --- a/LICENSE +++ b/LICENSE @@ -629,8 +629,8 @@ to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - Revolt Frontend - Copyright (C) 2023 Pawel Makles + Upryzing Frontend + Copyright (C) 2025 Pawel Makles This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published diff --git a/README.md b/README.md index cb1cfbc5..0b3c714c 100644 --- a/README.md +++ b/README.md @@ -23,21 +23,24 @@ cd lavender # git submodule init && git submodule update # install all packages -pnpm i --frozen-lockfile +mise install:frozen # build deps: -pnpm build:deps +mise build:deps + +# ...or build a specific dep (e.g. upryzing.js updates): +pnpm --filter upryzing.js run build -# ...or build a specific dep (e.g. @upryzing/upryzing.js updates): -# pnpm --filter @upryzing/upryzing.js run build +# customise the .env +cp packages/client/.env.example packages/client/.env # run dev server -pnpm dev:web +mise dev ``` Finally, navigate to http://local.revolt.chat:5173. -### Faster iteration with @upryzing/upryzing.js +### Faster iteration with upryzing.js To make it easier to work with `uprzying.js`, you may want to temporarily make this change: @@ -58,10 +61,10 @@ Any edits to the `uprzying.js` codebase will immediately be reflected while deve pnpm i --frozen-lockfile # build dependencies -pnpm build:deps +pnpm run build:deps # build for web -pnpm build:web +pnpm run build # ... when building for production, use this instead of :web pnpm build:prod @@ -76,7 +79,10 @@ The app currently needs the following routes: - `/login` - `/pwa` - `/dev` +- `/discover` - `/settings` +- `/invite` +- `/bot` - `/friends` - `/server` - `/channel` diff --git a/default.nix b/default.nix index 4af57f44..a6d4c6cb 100644 --- a/default.nix +++ b/default.nix @@ -1,22 +1,52 @@ +{ pkgs ? import (fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/77ef7a29d276c6d8303aece3444d61118ef71ac2.tar.gz"; + sha256 = "0pm4l48jq8plzrrrisimahxqlcpx7qqq9c99hylmf7p3zlc3phsy"; + }) {}, + + # Playwright v1.57.0 + unstablePkgs ? import (fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/145b67bd0bd4e075f981c1c2b81155d9e2982de2.tar.gz"; + sha256 = "152qwxacs6lw1dskn21985qly8ipjzwpsvicy7inzh3hhma603gg"; + }) {}, +}: + let - # Pinned nixpkgs, deterministic. Last updated: 29-10-2024. - pkgs = import (fetchTarball ("https://github.com/NixOS/nixpkgs/archive/0930fa9bab0e3877d4ab0682f805b2dc86ec5716.tar.gz")) { }; + nix-ld-libs = pkgs.buildEnv { + name = "nix-ld-libs"; + paths = with pkgs; [ + stdenv.cc.cc.lib + zlib + openssl + ]; + }; - # Rolling updates, not deterministic. - # pkgs = import (fetchTarball("channel:nixpkgs-unstable")) {}; in pkgs.mkShell { - name = "upryzingEnv"; + packages = with pkgs; [ + mise + cargo-binstall + (writeShellScriptBin "fish" '' + exec ${pkgs.fish}/bin/fish -C 'mise activate fish | source' "$@" + '') + ]; - buildInputs = [ - # Tools - pkgs.git + shellHook = '' + export NIX_LD="${pkgs.stdenv.cc.libc}/lib/ld-linux-x86-64.so.2" + export NIX_LD_LIBRARY_PATH="${nix-ld-libs}/lib" - # Node - pkgs.nodejs - pkgs.nodejs.pkgs.pnpm + export MISE_NODE_COMPILE=false + eval "$(mise activate bash)" - # mdbook - pkgs.mdbook - pkgs.mdbook-mermaid - ]; -} + export PLAYWRIGHT_BROWSERS_PATH=${unstablePkgs.playwright-driver.browsers} + export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true + + playwrightNpmVersion="$(npm show @playwright/test version)" + echo "❄️ Playwright nix version: ${unstablePkgs.playwright.version}" + echo "📦 Playwright npm version: $playwrightNpmVersion" + + if [ "${unstablePkgs.playwright.version}" != "$playwrightNpmVersion" ]; then + echo "❌ Playwright versions in nix and npm are not the same!" + else + echo "✅ Playwright versions in nix and npm are the same" + fi + ''; +} \ No newline at end of file diff --git a/doc/book.toml b/doc/book.toml index e4fd7a09..30c16bdf 100644 --- a/doc/book.toml +++ b/doc/book.toml @@ -1,19 +1,5 @@ [book] authors = [] language = "en" -multilingual = false src = "src" title = "Upryzing Frontend (Lavender)" - -[preprocessor] - -[preprocessor.mermaid] -command = "mdbook-mermaid" - -[preprocessor.katex] -after = ["links"] - -[output] - -[output.html] -additional-js = ["mermaid.min.js", "mermaid-init.js"] diff --git a/doc/mermaid-init.js b/doc/mermaid-init.js deleted file mode 100644 index 313a6e8b..00000000 --- a/doc/mermaid-init.js +++ /dev/null @@ -1 +0,0 @@ -mermaid.initialize({startOnLoad:true}); diff --git a/doc/mermaid.min.js b/doc/mermaid.min.js deleted file mode 100644 index b2c9f2b0..00000000 --- a/doc/mermaid.min.js +++ /dev/null @@ -1,1648 +0,0 @@ -/* MIT Licensed. Copyright (c) 2014 - 2022 Knut Sveidqvist */ -/* For license information please see https://github.com/mermaid-js/mermaid/blob/release/10.6.1/LICENSE */ -(function(xA,b0){typeof exports=="object"&&typeof module<"u"?module.exports=b0():typeof define=="function"&&define.amd?define(b0):(xA=typeof globalThis<"u"?globalThis:xA||self,xA.mermaid=b0())})(this,function(){"use strict";function xA(i){for(var a=[],f=1;f=It?nt:""+Array(It+1-Bt.length).join(Ot)+nt},mt={s:bt,z:function(nt){var It=-nt.utcOffset(),Ot=Math.abs(It),Bt=Math.floor(Ot/60),Et=Ot%60;return(It<=0?"+":"-")+bt(Bt,2,"0")+":"+bt(Et,2,"0")},m:function nt(It,Ot){if(It.date()1)return nt(Ct[0])}else{var xt=It.name;ft[xt]=It,Et=xt}return!Bt&&Et&&(yt=Et),Et||!Bt&&yt},X=function(nt,It){if(ut(nt))return nt.clone();var Ot=typeof It=="object"?It:{};return Ot.date=nt,Ot.args=arguments,new U(Ot)},pt=mt;pt.l=vt,pt.i=ut,pt.w=function(nt,It){return X(nt,{locale:It.$L,utc:It.$u,x:It.$x,$offset:It.$offset})};var U=function(){function nt(Ot){this.$L=vt(Ot.locale,null,!0),this.parse(Ot)}var It=nt.prototype;return It.parse=function(Ot){this.$d=function(Bt){var Et=Bt.date,Z=Bt.utc;if(Et===null)return new Date(NaN);if(pt.u(Et))return new Date;if(Et instanceof Date)return new Date(Et);if(typeof Et=="string"&&!/Z$/i.test(Et)){var Ct=Et.match(et);if(Ct){var xt=Ct[2]-1||0,Ht=(Ct[7]||"0").substring(0,3);return Z?new Date(Date.UTC(Ct[1],xt,Ct[3]||1,Ct[4]||0,Ct[5]||0,Ct[6]||0,Ht)):new Date(Ct[1],xt,Ct[3]||1,Ct[4]||0,Ct[5]||0,Ct[6]||0,Ht)}}return new Date(Et)}(Ot),this.$x=Ot.x||{},this.init()},It.init=function(){var Ot=this.$d;this.$y=Ot.getFullYear(),this.$M=Ot.getMonth(),this.$D=Ot.getDate(),this.$W=Ot.getDay(),this.$H=Ot.getHours(),this.$m=Ot.getMinutes(),this.$s=Ot.getSeconds(),this.$ms=Ot.getMilliseconds()},It.$utils=function(){return pt},It.isValid=function(){return this.$d.toString()!==W},It.isSame=function(Ot,Bt){var Et=X(Ot);return this.startOf(Bt)<=Et&&Et<=this.endOf(Bt)},It.isAfter=function(Ot,Bt){return X(Ot){},debug:(...i)=>{},info:(...i)=>{},warn:(...i)=>{},error:(...i)=>{},fatal:(...i)=>{}},Xft=function(i="fatal"){let a=p5.fatal;typeof i=="string"?(i=i.toLowerCase(),i in p5&&(a=p5[i])):typeof i=="number"&&(a=i),Ut.trace=()=>{},Ut.debug=()=>{},Ut.info=()=>{},Ut.warn=()=>{},Ut.error=()=>{},Ut.fatal=()=>{},a<=p5.fatal&&(Ut.fatal=console.error?console.error.bind(console,Q2("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Q2("FATAL"))),a<=p5.error&&(Ut.error=console.error?console.error.bind(console,Q2("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Q2("ERROR"))),a<=p5.warn&&(Ut.warn=console.warn?console.warn.bind(console,Q2("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Q2("WARN"))),a<=p5.info&&(Ut.info=console.info?console.info.bind(console,Q2("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Q2("INFO"))),a<=p5.debug&&(Ut.debug=console.debug?console.debug.bind(console,Q2("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Q2("DEBUG"))),a<=p5.trace&&(Ut.trace=console.debug?console.debug.bind(console,Q2("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Q2("TRACE")))},Q2=i=>`%c${w0().format("ss.SSS")} : ${i} : `;var Qft={};Object.defineProperty(Qft,"__esModule",{value:!0});var ik=Qft.sanitizeUrl=void 0,cxe=/^([^\w]*)(javascript|data|vbscript)/im,uxe=/&#(\w+)(^\w|;)?/g,lxe=/&(newline|tab);/gi,hxe=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,fxe=/^.+(:|:)/gim,dxe=[".","/"];function gxe(i){return dxe.indexOf(i[0])>-1}function pxe(i){return i.replace(uxe,function(a,f){return String.fromCharCode(f)})}function bxe(i){var a=pxe(i||"").replace(lxe,"").replace(hxe,"").trim();if(!a)return"about:blank";if(gxe(a))return a;var f=a.match(fxe);if(!f)return a;var p=f[0];return cxe.test(p)?"about:blank":a}ik=Qft.sanitizeUrl=bxe;function EU(i,a){return i==null||a==null?NaN:ia?1:i>=a?0:NaN}function wxe(i,a){return i==null||a==null?NaN:ai?1:a>=i?0:NaN}function Zft(i){let a,f,p;i.length!==2?(a=EU,f=(E,_)=>EU(i(E),_),p=(E,_)=>i(E)-_):(a=i===EU||i===wxe?i:vxe,f=i,p=i);function w(E,_,A=0,I=E.length){if(A>>1;f(E[B],_)<0?A=B+1:I=B}while(A>>1;f(E[B],_)<=0?A=B+1:I=B}while(AA&&p(E[B-1],_)>-p(E[B],_)?B-1:B}return{left:w,center:b,right:m}}function vxe(){return 0}function mxe(i){return i===null?NaN:+i}const yxe=Zft(EU).right;Zft(mxe).center;const xxe=yxe;class $Lt extends Map{constructor(a,f=Txe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:f}}),a!=null)for(const[p,w]of a)this.set(p,w)}get(a){return super.get(zLt(this,a))}has(a){return super.has(zLt(this,a))}set(a,f){return super.set(kxe(this,a),f)}delete(a){return super.delete(Exe(this,a))}}function zLt({_intern:i,_key:a},f){const p=a(f);return i.has(p)?i.get(p):f}function kxe({_intern:i,_key:a},f){const p=a(f);return i.has(p)?i.get(p):(i.set(p,f),f)}function Exe({_intern:i,_key:a},f){const p=a(f);return i.has(p)&&(f=i.get(p),i.delete(p)),f}function Txe(i){return i!==null&&typeof i=="object"?i.valueOf():i}const Cxe=Math.sqrt(50),_xe=Math.sqrt(10),Sxe=Math.sqrt(2);function TU(i,a,f){const p=(a-i)/Math.max(0,f),w=Math.floor(Math.log10(p)),m=p/Math.pow(10,w),b=m>=Cxe?10:m>=_xe?5:m>=Sxe?2:1;let E,_,A;return w<0?(A=Math.pow(10,-w)/b,E=Math.round(i*A),_=Math.round(a*A),E/Aa&&--_,A=-A):(A=Math.pow(10,w)*b,E=Math.round(i/A),_=Math.round(a/A),E*Aa&&--_),_0))return[];if(i===a)return[i];const p=a=w))return[];const E=m-w+1,_=new Array(E);if(p)if(b<0)for(let A=0;A=p)&&(f=p);else{let p=-1;for(let w of i)(w=a(w,++p,i))!=null&&(f=w)&&(f=w)}return f}function Mxe(i,a){let f;if(a===void 0)for(const p of i)p!=null&&(f>p||f===void 0&&p>=p)&&(f=p);else{let p=-1;for(let w of i)(w=a(w,++p,i))!=null&&(f>w||f===void 0&&w>=w)&&(f=w)}return f}function Dxe(i,a,f){i=+i,a=+a,f=(w=arguments.length)<2?(a=i,i=0,1):w<3?1:+f;for(var p=-1,w=Math.max(0,Math.ceil((a-i)/f))|0,m=new Array(w);++p+i(a)}function Nxe(i,a){return a=Math.max(0,i.bandwidth()-a*2)/2,i.round()&&(a=Math.round(a)),f=>+i(f)+a}function Bxe(){return!this.__axis}function HLt(i,a){var f=[],p=null,w=null,m=6,b=6,E=3,_=typeof window<"u"&&window.devicePixelRatio>1?0:.5,A=i===CU||i===_U?-1:1,I=i===_U||i===e1t?"x":"y",B=i===CU||i===n1t?Oxe:Pxe;function N(R){var z=p??(a.ticks?a.ticks.apply(a,f):a.domain()),W=w??(a.tickFormat?a.tickFormat.apply(a,f):Ixe),et=Math.max(m,0)+E,st=a.range(),at=+st[0]+_,bt=+st[st.length-1]+_,mt=(a.bandwidth?Nxe:Fxe)(a.copy(),_),yt=R.selection?R.selection():R,ft=yt.selectAll(".domain").data([null]),ut=yt.selectAll(".tick").data(z,a).order(),vt=ut.exit(),X=ut.enter().append("g").attr("class","tick"),pt=ut.select("line"),U=ut.select("text");ft=ft.merge(ft.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),ut=ut.merge(X),pt=pt.merge(X.append("line").attr("stroke","currentColor").attr(I+"2",A*m)),U=U.merge(X.append("text").attr("fill","currentColor").attr(I,A*et).attr("dy",i===CU?"0em":i===n1t?"0.71em":"0.32em")),R!==yt&&(ft=ft.transition(R),ut=ut.transition(R),pt=pt.transition(R),U=U.transition(R),vt=vt.transition(R).attr("opacity",qLt).attr("transform",function(Tt){return isFinite(Tt=mt(Tt))?B(Tt+_):this.getAttribute("transform")}),X.attr("opacity",qLt).attr("transform",function(Tt){var nt=this.parentNode.__axis;return B((nt&&isFinite(nt=nt(Tt))?nt:mt(Tt))+_)})),vt.remove(),ft.attr("d",i===_U||i===e1t?b?"M"+A*b+","+at+"H"+_+"V"+bt+"H"+A*b:"M"+_+","+at+"V"+bt:b?"M"+at+","+A*b+"V"+_+"H"+bt+"V"+A*b:"M"+at+","+_+"H"+bt),ut.attr("opacity",1).attr("transform",function(Tt){return B(mt(Tt)+_)}),pt.attr(I+"2",A*m),U.attr(I,A*et).text(W),yt.filter(Bxe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",i===e1t?"start":i===_U?"end":"middle"),yt.each(function(){this.__axis=mt})}return N.scale=function(R){return arguments.length?(a=R,N):a},N.ticks=function(){return f=Array.from(arguments),N},N.tickArguments=function(R){return arguments.length?(f=R==null?[]:Array.from(R),N):f.slice()},N.tickValues=function(R){return arguments.length?(p=R==null?null:Array.from(R),N):p&&p.slice()},N.tickFormat=function(R){return arguments.length?(w=R,N):w},N.tickSize=function(R){return arguments.length?(m=b=+R,N):m},N.tickSizeInner=function(R){return arguments.length?(m=+R,N):m},N.tickSizeOuter=function(R){return arguments.length?(b=+R,N):b},N.tickPadding=function(R){return arguments.length?(E=+R,N):E},N.offset=function(R){return arguments.length?(_=+R,N):_},N}function Rxe(i){return HLt(CU,i)}function jxe(i){return HLt(n1t,i)}var $xe={value:()=>{}};function VLt(){for(var i=0,a=arguments.length,f={},p;i=0&&(p=f.slice(w+1),f=f.slice(0,w)),f&&!a.hasOwnProperty(f))throw new Error("unknown type: "+f);return{type:f,name:p}})}SU.prototype=VLt.prototype={constructor:SU,on:function(i,a){var f=this._,p=zxe(i+"",f),w,m=-1,b=p.length;if(arguments.length<2){for(;++m0)for(var f=new Array(w),p=0,w,m;p=0&&(a=i.slice(0,f))!=="xmlns"&&(i=i.slice(f+1)),ULt.hasOwnProperty(a)?{space:ULt[a],local:i}:i}function Hxe(i){return function(){var a=this.ownerDocument,f=this.namespaceURI;return f===r1t&&a.documentElement.namespaceURI===r1t?a.createElement(i):a.createElementNS(f,i)}}function Vxe(i){return function(){return this.ownerDocument.createElementNS(i.space,i.local)}}function WLt(i){var a=AU(i);return(a.local?Vxe:Hxe)(a)}function Gxe(){}function i1t(i){return i==null?Gxe:function(){return this.querySelector(i)}}function Uxe(i){typeof i!="function"&&(i=i1t(i));for(var a=this._groups,f=a.length,p=new Array(f),w=0;w=bt&&(bt=at+1);!(yt=et[bt])&&++bt=0;)(b=p[w])&&(m&&b.compareDocumentPosition(m)^4&&m.parentNode.insertBefore(b,m),m=b);return this}function b6e(i){i||(i=w6e);function a(B,N){return B&&N?i(B.__data__,N.__data__):!B-!N}for(var f=this._groups,p=f.length,w=new Array(p),m=0;ma?1:i>=a?0:NaN}function v6e(){var i=arguments[0];return arguments[0]=this,i.apply(null,arguments),this}function m6e(){return Array.from(this)}function y6e(){for(var i=this._groups,a=0,f=i.length;a1?this.each((a==null?D6e:typeof a=="function"?O6e:I6e)(i,a,f??"")):kA(this.node(),i)}function kA(i,a){return i.style.getPropertyValue(a)||JLt(i).getComputedStyle(i,null).getPropertyValue(a)}function F6e(i){return function(){delete this[i]}}function N6e(i,a){return function(){this[i]=a}}function B6e(i,a){return function(){var f=a.apply(this,arguments);f==null?delete this[i]:this[i]=f}}function R6e(i,a){return arguments.length>1?this.each((a==null?F6e:typeof a=="function"?B6e:N6e)(i,a)):this.node()[i]}function tMt(i){return i.trim().split(/^|\s+/)}function s1t(i){return i.classList||new eMt(i)}function eMt(i){this._node=i,this._names=tMt(i.getAttribute("class")||"")}eMt.prototype={add:function(i){var a=this._names.indexOf(i);a<0&&(this._names.push(i),this._node.setAttribute("class",this._names.join(" ")))},remove:function(i){var a=this._names.indexOf(i);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(i){return this._names.indexOf(i)>=0}};function nMt(i,a){for(var f=s1t(i),p=-1,w=a.length;++p=0&&(f=a.slice(p+1),a=a.slice(0,p)),{type:a,name:f}})}function fke(i){return function(){var a=this.__on;if(a){for(var f=0,p=-1,w=a.length,m;f>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):f===8?IU(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):f===4?IU(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=xke.exec(i))?new v0(a[1],a[2],a[3],1):(a=kke.exec(i))?new v0(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=Eke.exec(i))?IU(a[1],a[2],a[3],a[4]):(a=Tke.exec(i))?IU(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=Cke.exec(i))?dMt(a[1],a[2]/100,a[3]/100,1):(a=_ke.exec(i))?dMt(a[1],a[2]/100,a[3]/100,a[4]):aMt.hasOwnProperty(i)?uMt(aMt[i]):i==="transparent"?new v0(NaN,NaN,NaN,0):null}function uMt(i){return new v0(i>>16&255,i>>8&255,i&255,1)}function IU(i,a,f,p){return p<=0&&(i=a=f=NaN),new v0(i,a,f,p)}function lMt(i){return i instanceof U7||(i=W7(i)),i?(i=i.rgb(),new v0(i.r,i.g,i.b,i.opacity)):new v0}function o1t(i,a,f,p){return arguments.length===1?lMt(i):new v0(i,a,f,p??1)}function v0(i,a,f,p){this.r=+i,this.g=+a,this.b=+f,this.opacity=+p}_P(v0,o1t,MU(U7,{brighter(i){return i=i==null?DU:Math.pow(DU,i),new v0(this.r*i,this.g*i,this.b*i,this.opacity)},darker(i){return i=i==null?SP:Math.pow(SP,i),new v0(this.r*i,this.g*i,this.b*i,this.opacity)},rgb(){return this},clamp(){return new v0(Y7(this.r),Y7(this.g),Y7(this.b),OU(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:hMt,formatHex:hMt,formatHex8:Lke,formatRgb:fMt,toString:fMt}));function hMt(){return`#${K7(this.r)}${K7(this.g)}${K7(this.b)}`}function Lke(){return`#${K7(this.r)}${K7(this.g)}${K7(this.b)}${K7((isNaN(this.opacity)?1:this.opacity)*255)}`}function fMt(){const i=OU(this.opacity);return`${i===1?"rgb(":"rgba("}${Y7(this.r)}, ${Y7(this.g)}, ${Y7(this.b)}${i===1?")":`, ${i})`}`}function OU(i){return isNaN(i)?1:Math.max(0,Math.min(1,i))}function Y7(i){return Math.max(0,Math.min(255,Math.round(i)||0))}function K7(i){return i=Y7(i),(i<16?"0":"")+i.toString(16)}function dMt(i,a,f,p){return p<=0?i=a=f=NaN:f<=0||f>=1?i=a=NaN:a<=0&&(i=NaN),new Xv(i,a,f,p)}function gMt(i){if(i instanceof Xv)return new Xv(i.h,i.s,i.l,i.opacity);if(i instanceof U7||(i=W7(i)),!i)return new Xv;if(i instanceof Xv)return i;i=i.rgb();var a=i.r/255,f=i.g/255,p=i.b/255,w=Math.min(a,f,p),m=Math.max(a,f,p),b=NaN,E=m-w,_=(m+w)/2;return E?(a===m?b=(f-p)/E+(f0&&_<1?0:b,new Xv(b,E,_,i.opacity)}function Mke(i,a,f,p){return arguments.length===1?gMt(i):new Xv(i,a,f,p??1)}function Xv(i,a,f,p){this.h=+i,this.s=+a,this.l=+f,this.opacity=+p}_P(Xv,Mke,MU(U7,{brighter(i){return i=i==null?DU:Math.pow(DU,i),new Xv(this.h,this.s,this.l*i,this.opacity)},darker(i){return i=i==null?SP:Math.pow(SP,i),new Xv(this.h,this.s,this.l*i,this.opacity)},rgb(){var i=this.h%360+(this.h<0)*360,a=isNaN(i)||isNaN(this.s)?0:this.s,f=this.l,p=f+(f<.5?f:1-f)*a,w=2*f-p;return new v0(c1t(i>=240?i-240:i+120,w,p),c1t(i,w,p),c1t(i<120?i+240:i-120,w,p),this.opacity)},clamp(){return new Xv(pMt(this.h),PU(this.s),PU(this.l),OU(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const i=OU(this.opacity);return`${i===1?"hsl(":"hsla("}${pMt(this.h)}, ${PU(this.s)*100}%, ${PU(this.l)*100}%${i===1?")":`, ${i})`}`}}));function pMt(i){return i=(i||0)%360,i<0?i+360:i}function PU(i){return Math.max(0,Math.min(1,i||0))}function c1t(i,a,f){return(i<60?a+(f-a)*i/60:i<180?f:i<240?a+(f-a)*(240-i)/60:a)*255}const Dke=Math.PI/180,Ike=180/Math.PI,FU=18,bMt=.96422,wMt=1,vMt=.82521,mMt=4/29,TA=6/29,yMt=3*TA*TA,Oke=TA*TA*TA;function xMt(i){if(i instanceof u3)return new u3(i.l,i.a,i.b,i.opacity);if(i instanceof b5)return kMt(i);i instanceof v0||(i=lMt(i));var a=f1t(i.r),f=f1t(i.g),p=f1t(i.b),w=u1t((.2225045*a+.7168786*f+.0606169*p)/wMt),m,b;return a===f&&f===p?m=b=w:(m=u1t((.4360747*a+.3850649*f+.1430804*p)/bMt),b=u1t((.0139322*a+.0971045*f+.7141733*p)/vMt)),new u3(116*w-16,500*(m-w),200*(w-b),i.opacity)}function Pke(i,a,f,p){return arguments.length===1?xMt(i):new u3(i,a,f,p??1)}function u3(i,a,f,p){this.l=+i,this.a=+a,this.b=+f,this.opacity=+p}_P(u3,Pke,MU(U7,{brighter(i){return new u3(this.l+FU*(i??1),this.a,this.b,this.opacity)},darker(i){return new u3(this.l-FU*(i??1),this.a,this.b,this.opacity)},rgb(){var i=(this.l+16)/116,a=isNaN(this.a)?i:i+this.a/500,f=isNaN(this.b)?i:i-this.b/200;return a=bMt*l1t(a),i=wMt*l1t(i),f=vMt*l1t(f),new v0(h1t(3.1338561*a-1.6168667*i-.4906146*f),h1t(-.9787684*a+1.9161415*i+.033454*f),h1t(.0719453*a-.2289914*i+1.4052427*f),this.opacity)}}));function u1t(i){return i>Oke?Math.pow(i,1/3):i/yMt+mMt}function l1t(i){return i>TA?i*i*i:yMt*(i-mMt)}function h1t(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function f1t(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function Fke(i){if(i instanceof b5)return new b5(i.h,i.c,i.l,i.opacity);if(i instanceof u3||(i=xMt(i)),i.a===0&&i.b===0)return new b5(NaN,0()=>i;function EMt(i,a){return function(f){return i+f*a}}function Nke(i,a,f){return i=Math.pow(i,f),a=Math.pow(a,f)-i,f=1/f,function(p){return Math.pow(i+p*a,f)}}function Bke(i,a){var f=a-i;return f?EMt(i,f>180||f<-180?f-360*Math.round(f/360):f):NU(isNaN(i)?a:i)}function Rke(i){return(i=+i)==1?LP:function(a,f){return f-a?Nke(a,f,i):NU(isNaN(a)?f:a)}}function LP(i,a){var f=a-i;return f?EMt(i,f):NU(isNaN(i)?a:i)}const BU=function i(a){var f=Rke(a);function p(w,m){var b=f((w=o1t(w)).r,(m=o1t(m)).r),E=f(w.g,m.g),_=f(w.b,m.b),A=LP(w.opacity,m.opacity);return function(I){return w.r=b(I),w.g=E(I),w.b=_(I),w.opacity=A(I),w+""}}return p.gamma=i,p}(1);function jke(i,a){a||(a=[]);var f=i?Math.min(a.length,i.length):0,p=a.slice(),w;return function(m){for(w=0;wf&&(m=a.slice(f,m),E[b]?E[b]+=m:E[++b]=m),(p=p[0])===(w=w[0])?E[b]?E[b]+=w:E[++b]=w:(E[++b]=null,_.push({i:b,x:Qv(p,w)})),f=p1t.lastIndex;return f180?I+=360:I-A>180&&(A+=360),N.push({i:B.push(w(B)+"rotate(",null,p)-2,x:Qv(A,I)})):I&&B.push(w(B)+"rotate("+I+p)}function E(A,I,B,N){A!==I?N.push({i:B.push(w(B)+"skewX(",null,p)-2,x:Qv(A,I)}):I&&B.push(w(B)+"skewX("+I+p)}function _(A,I,B,N,R,z){if(A!==B||I!==N){var W=R.push(w(R)+"scale(",null,",",null,")");z.push({i:W-4,x:Qv(A,B)},{i:W-2,x:Qv(I,N)})}else(B!==1||N!==1)&&R.push(w(R)+"scale("+B+","+N+")")}return function(A,I){var B=[],N=[];return A=i(A),I=i(I),m(A.translateX,A.translateY,I.translateX,I.translateY,B,N),b(A.rotate,I.rotate,B,N),E(A.skewX,I.skewX,B,N),_(A.scaleX,A.scaleY,I.scaleX,I.scaleY,B,N),A=I=null,function(R){for(var z=-1,W=N.length,et;++z=0&&i._call.call(void 0,a),i=i._next;--CA}function DMt(){X7=($U=OP.now())+zU,CA=MP=0;try{t8e()}finally{CA=0,n8e(),X7=0}}function e8e(){var i=OP.now(),a=i-$U;a>AMt&&(zU-=a,$U=i)}function n8e(){for(var i,a=jU,f,p=1/0;a;)a._call?(p>a._time&&(p=a._time),i=a,a=a._next):(f=a._next,a._next=null,a=i?i._next=f:jU=f);IP=i,m1t(p)}function m1t(i){if(!CA){MP&&(MP=clearTimeout(MP));var a=i-X7;a>24?(i<1/0&&(MP=setTimeout(DMt,i-OP.now()-zU)),DP&&(DP=clearInterval(DP))):(DP||($U=OP.now(),DP=setInterval(e8e,AMt)),CA=1,LMt(DMt))}}function IMt(i,a,f){var p=new qU;return a=a==null?0:+a,p.restart(w=>{p.stop(),i(w+a)},a,f),p}var r8e=VLt("start","end","cancel","interrupt"),i8e=[],OMt=0,PMt=1,y1t=2,HU=3,FMt=4,x1t=5,VU=6;function GU(i,a,f,p,w,m){var b=i.__transition;if(!b)i.__transition={};else if(f in b)return;s8e(i,f,{name:a,index:p,group:w,on:r8e,tween:i8e,time:m.time,delay:m.delay,duration:m.duration,ease:m.ease,timer:null,state:OMt})}function k1t(i,a){var f=Zv(i,a);if(f.state>OMt)throw new Error("too late; already scheduled");return f}function l3(i,a){var f=Zv(i,a);if(f.state>HU)throw new Error("too late; already running");return f}function Zv(i,a){var f=i.__transition;if(!f||!(f=f[a]))throw new Error("transition not found");return f}function s8e(i,a,f){var p=i.__transition,w;p[a]=f,f.timer=MMt(m,0,f.time);function m(A){f.state=PMt,f.timer.restart(b,f.delay,f.time),f.delay<=A&&b(A-f.delay)}function b(A){var I,B,N,R;if(f.state!==PMt)return _();for(I in p)if(R=p[I],R.name===f.name){if(R.state===HU)return IMt(b);R.state===FMt?(R.state=VU,R.timer.stop(),R.on.call("interrupt",i,i.__data__,R.index,R.group),delete p[I]):+Iy1t&&p.state=0&&(a=a.slice(0,f)),!a||a==="start"})}function N8e(i,a,f){var p,w,m=F8e(a)?k1t:l3;return function(){var b=m(this,i),E=b.on;E!==p&&(w=(p=E).copy()).on(a,f),b.on=w}}function B8e(i,a){var f=this._id;return arguments.length<2?Zv(this.node(),f).on.on(i):this.each(N8e(f,i,a))}function R8e(i){return function(){var a=this.parentNode;for(var f in this.__transition)if(+f!==i)return;a&&a.removeChild(this)}}function j8e(){return this.on("end.remove",R8e(this._id))}function $8e(i){var a=this._name,f=this._id;typeof i!="function"&&(i=i1t(i));for(var p=this._groups,w=p.length,m=new Array(w),b=0;b=0))throw new Error(`invalid digits: ${i}`);if(a>15)return jMt;const f=10**a;return function(p){this._+=p[0];for(let w=1,m=p.length;wQ7)if(!(Math.abs(B*_-A*I)>Q7)||!m)this._append`L${this._x1=a},${this._y1=f}`;else{let R=p-b,z=w-E,W=_*_+A*A,et=R*R+z*z,st=Math.sqrt(W),at=Math.sqrt(N),bt=m*Math.tan((T1t-Math.acos((W+N-et)/(2*st*at)))/2),mt=bt/at,yt=bt/st;Math.abs(mt-1)>Q7&&this._append`L${a+mt*I},${f+mt*B}`,this._append`A${m},${m},0,0,${+(B*R>I*z)},${this._x1=a+yt*_},${this._y1=f+yt*A}`}}arc(a,f,p,w,m,b){if(a=+a,f=+f,p=+p,b=!!b,p<0)throw new Error(`negative radius: ${p}`);let E=p*Math.cos(w),_=p*Math.sin(w),A=a+E,I=f+_,B=1^b,N=b?w-m:m-w;this._x1===null?this._append`M${A},${I}`:(Math.abs(this._x1-A)>Q7||Math.abs(this._y1-I)>Q7)&&this._append`L${A},${I}`,p&&(N<0&&(N=N%C1t+C1t),N>hEe?this._append`A${p},${p},0,1,${B},${a-E},${f-_}A${p},${p},0,1,${B},${this._x1=A},${this._y1=I}`:N>Q7&&this._append`A${p},${p},0,${+(N>=T1t)},${B},${this._x1=a+p*Math.cos(m)},${this._y1=f+p*Math.sin(m)}`)}rect(a,f,p,w){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+f}h${p=+p}v${+w}h${-p}Z`}toString(){return this._}};function gEe(i){if(!i.ok)throw new Error(i.status+" "+i.statusText);return i.text()}function pEe(i,a){return fetch(i,a).then(gEe)}function bEe(i){return(a,f)=>pEe(a,f).then(p=>new DOMParser().parseFromString(p,i))}var wEe=bEe("image/svg+xml");function vEe(i){return Math.abs(i=Math.round(i))>=1e21?i.toLocaleString("en").replace(/,/g,""):i.toString(10)}function UU(i,a){if((f=(i=a?i.toExponential(a-1):i.toExponential()).indexOf("e"))<0)return null;var f,p=i.slice(0,f);return[p.length>1?p[0]+p.slice(2):p,+i.slice(f+1)]}function _A(i){return i=UU(Math.abs(i)),i?i[1]:NaN}function mEe(i,a){return function(f,p){for(var w=f.length,m=[],b=0,E=i[0],_=0;w>0&&E>0&&(_+E+1>p&&(E=Math.max(1,p-_)),m.push(f.substring(w-=E,w+E)),!((_+=E+1)>p));)E=i[b=(b+1)%i.length];return m.reverse().join(a)}}function yEe(i){return function(a){return a.replace(/[0-9]/g,function(f){return i[+f]})}}var xEe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function WU(i){if(!(a=xEe.exec(i)))throw new Error("invalid format: "+i);var a;return new _1t({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}WU.prototype=_1t.prototype;function _1t(i){this.fill=i.fill===void 0?" ":i.fill+"",this.align=i.align===void 0?">":i.align+"",this.sign=i.sign===void 0?"-":i.sign+"",this.symbol=i.symbol===void 0?"":i.symbol+"",this.zero=!!i.zero,this.width=i.width===void 0?void 0:+i.width,this.comma=!!i.comma,this.precision=i.precision===void 0?void 0:+i.precision,this.trim=!!i.trim,this.type=i.type===void 0?"":i.type+""}_1t.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function kEe(i){t:for(var a=i.length,f=1,p=-1,w;f0&&(p=0);break}return p>0?i.slice(0,p)+i.slice(w+1):i}var $Mt;function EEe(i,a){var f=UU(i,a);if(!f)return i+"";var p=f[0],w=f[1],m=w-($Mt=Math.max(-8,Math.min(8,Math.floor(w/3)))*3)+1,b=p.length;return m===b?p:m>b?p+new Array(m-b+1).join("0"):m>0?p.slice(0,m)+"."+p.slice(m):"0."+new Array(1-m).join("0")+UU(i,Math.max(0,a+m-1))[0]}function zMt(i,a){var f=UU(i,a);if(!f)return i+"";var p=f[0],w=f[1];return w<0?"0."+new Array(-w).join("0")+p:p.length>w+1?p.slice(0,w+1)+"."+p.slice(w+1):p+new Array(w-p.length+2).join("0")}const qMt={"%":(i,a)=>(i*100).toFixed(a),b:i=>Math.round(i).toString(2),c:i=>i+"",d:vEe,e:(i,a)=>i.toExponential(a),f:(i,a)=>i.toFixed(a),g:(i,a)=>i.toPrecision(a),o:i=>Math.round(i).toString(8),p:(i,a)=>zMt(i*100,a),r:zMt,s:EEe,X:i=>Math.round(i).toString(16).toUpperCase(),x:i=>Math.round(i).toString(16)};function HMt(i){return i}var VMt=Array.prototype.map,GMt=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function TEe(i){var a=i.grouping===void 0||i.thousands===void 0?HMt:mEe(VMt.call(i.grouping,Number),i.thousands+""),f=i.currency===void 0?"":i.currency[0]+"",p=i.currency===void 0?"":i.currency[1]+"",w=i.decimal===void 0?".":i.decimal+"",m=i.numerals===void 0?HMt:yEe(VMt.call(i.numerals,String)),b=i.percent===void 0?"%":i.percent+"",E=i.minus===void 0?"−":i.minus+"",_=i.nan===void 0?"NaN":i.nan+"";function A(B){B=WU(B);var N=B.fill,R=B.align,z=B.sign,W=B.symbol,et=B.zero,st=B.width,at=B.comma,bt=B.precision,mt=B.trim,yt=B.type;yt==="n"?(at=!0,yt="g"):qMt[yt]||(bt===void 0&&(bt=12),mt=!0,yt="g"),(et||N==="0"&&R==="=")&&(et=!0,N="0",R="=");var ft=W==="$"?f:W==="#"&&/[boxX]/.test(yt)?"0"+yt.toLowerCase():"",ut=W==="$"?p:/[%p]/.test(yt)?b:"",vt=qMt[yt],X=/[defgprs%]/.test(yt);bt=bt===void 0?6:/[gprs]/.test(yt)?Math.max(1,Math.min(21,bt)):Math.max(0,Math.min(20,bt));function pt(U){var Tt=ft,nt=ut,It,Ot,Bt;if(yt==="c")nt=vt(U)+nt,U="";else{U=+U;var Et=U<0||1/U<0;if(U=isNaN(U)?_:vt(Math.abs(U),bt),mt&&(U=kEe(U)),Et&&+U==0&&z!=="+"&&(Et=!1),Tt=(Et?z==="("?z:E:z==="-"||z==="("?"":z)+Tt,nt=(yt==="s"?GMt[8+$Mt/3]:"")+nt+(Et&&z==="("?")":""),X){for(It=-1,Ot=U.length;++ItBt||Bt>57){nt=(Bt===46?w+U.slice(It+1):U.slice(It))+nt,U=U.slice(0,It);break}}}at&&!et&&(U=a(U,1/0));var Z=Tt.length+U.length+nt.length,Ct=Z>1)+Tt+U+nt+Ct.slice(Z);break;default:U=Ct+Tt+U+nt;break}return m(U)}return pt.toString=function(){return B+""},pt}function I(B,N){var R=A((B=WU(B),B.type="f",B)),z=Math.max(-8,Math.min(8,Math.floor(_A(N)/3)))*3,W=Math.pow(10,-z),et=GMt[8+z/3];return function(st){return R(W*st)+et}}return{format:A,formatPrefix:I}}var YU,UMt,WMt;CEe({thousands:",",grouping:[3],currency:["$",""]});function CEe(i){return YU=TEe(i),UMt=YU.format,WMt=YU.formatPrefix,YU}function _Ee(i){return Math.max(0,-_A(Math.abs(i)))}function SEe(i,a){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(_A(a)/3)))*3-_A(Math.abs(i)))}function AEe(i,a){return i=Math.abs(i),a=Math.abs(a)-i,Math.max(0,_A(a)-_A(i))+1}function KU(i,a){switch(arguments.length){case 0:break;case 1:this.range(i);break;default:this.range(a).domain(i);break}return this}const YMt=Symbol("implicit");function XU(){var i=new $Lt,a=[],f=[],p=YMt;function w(m){let b=i.get(m);if(b===void 0){if(p!==YMt)return p;i.set(m,b=a.push(m)-1)}return f[b%f.length]}return w.domain=function(m){if(!arguments.length)return a.slice();a=[],i=new $Lt;for(const b of m)i.has(b)||i.set(b,a.push(b)-1);return w},w.range=function(m){return arguments.length?(f=Array.from(m),w):f.slice()},w.unknown=function(m){return arguments.length?(p=m,w):p},w.copy=function(){return XU(a,f).unknown(p)},KU.apply(w,arguments),w}function S1t(){var i=XU().unknown(void 0),a=i.domain,f=i.range,p=0,w=1,m,b,E=!1,_=0,A=0,I=.5;delete i.unknown;function B(){var N=a().length,R=wa&&(f=i,i=a,a=f),function(p){return Math.max(i,Math.min(a,p))}}function IEe(i,a,f){var p=i[0],w=i[1],m=a[0],b=a[1];return w2?OEe:IEe,_=A=null,B}function B(N){return N==null||isNaN(N=+N)?m:(_||(_=E(i.map(p),a,f)))(p(b(N)))}return B.invert=function(N){return b(w((A||(A=E(a,i.map(p),Qv)))(N)))},B.domain=function(N){return arguments.length?(i=Array.from(N,MEe),I()):i.slice()},B.range=function(N){return arguments.length?(a=Array.from(N),I()):a.slice()},B.rangeRound=function(N){return a=Array.from(N),f=Uke,I()},B.clamp=function(N){return arguments.length?(b=N?!0:SA,I()):b!==SA},B.interpolate=function(N){return arguments.length?(f=N,I()):f},B.unknown=function(N){return arguments.length?(m=N,B):m},function(N,R){return p=N,w=R,I()}}function QMt(){return PEe()(SA,SA)}function FEe(i,a,f,p){var w=t1t(i,a,f),m;switch(p=WU(p??",f"),p.type){case"s":{var b=Math.max(Math.abs(i),Math.abs(a));return p.precision==null&&!isNaN(m=SEe(w,b))&&(p.precision=m),WMt(p,b)}case"":case"e":case"g":case"p":case"r":{p.precision==null&&!isNaN(m=AEe(w,Math.max(Math.abs(i),Math.abs(a))))&&(p.precision=m-(p.type==="e"));break}case"f":case"%":{p.precision==null&&!isNaN(m=_Ee(w))&&(p.precision=m-(p.type==="%")*2);break}}return UMt(p)}function NEe(i){var a=i.domain;return i.ticks=function(f){var p=a();return Axe(p[0],p[p.length-1],f??10)},i.tickFormat=function(f,p){var w=a();return FEe(w[0],w[w.length-1],f??10,p)},i.nice=function(f){f==null&&(f=10);var p=a(),w=0,m=p.length-1,b=p[w],E=p[m],_,A,I=10;for(E0;){if(A=Jft(b,E,f),A===_)return p[w]=b,p[m]=E,a(p);if(A>0)b=Math.floor(b/A)*A,E=Math.ceil(E/A)*A;else if(A<0)b=Math.ceil(b*A)/A,E=Math.floor(E*A)/A;else break;_=A}return i},i}function AA(){var i=QMt();return i.copy=function(){return XMt(i,AA())},KU.apply(i,arguments),NEe(i)}function BEe(i,a){i=i.slice();var f=0,p=i.length-1,w=i[f],m=i[p],b;return m(i(m=new Date(+m)),m),w.ceil=m=>(i(m=new Date(m-1)),a(m,1),i(m),m),w.round=m=>{const b=w(m),E=w.ceil(m);return m-b(a(m=new Date(+m),b==null?1:Math.floor(b)),m),w.range=(m,b,E)=>{const _=[];if(m=w.ceil(m),E=E==null?1:Math.floor(E),!(m0))return _;let A;do _.push(A=new Date(+m)),a(m,E),i(m);while(Aa1(b=>{if(b>=b)for(;i(b),!m(b);)b.setTime(b-1)},(b,E)=>{if(b>=b)if(E<0)for(;++E<=0;)for(;a(b,-1),!m(b););else for(;--E>=0;)for(;a(b,1),!m(b););}),f&&(w.count=(m,b)=>(L1t.setTime(+m),M1t.setTime(+b),i(L1t),i(M1t),Math.floor(f(L1t,M1t))),w.every=m=>(m=Math.floor(m),!isFinite(m)||!(m>0)?null:m>1?w.filter(p?b=>p(b)%m===0:b=>w.count(0,b)%m===0):w)),w}const LA=a1(()=>{},(i,a)=>{i.setTime(+i+a)},(i,a)=>a-i);LA.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a1(a=>{a.setTime(Math.floor(a/i)*i)},(a,f)=>{a.setTime(+a+f*i)},(a,f)=>(f-a)/i):LA),LA.range;const m5=1e3,Z2=m5*60,y5=Z2*60,x5=y5*24,D1t=x5*7,ZMt=x5*30,I1t=x5*365,sk=a1(i=>{i.setTime(i-i.getMilliseconds())},(i,a)=>{i.setTime(+i+a*m5)},(i,a)=>(a-i)/m5,i=>i.getUTCSeconds());sk.range;const PP=a1(i=>{i.setTime(i-i.getMilliseconds()-i.getSeconds()*m5)},(i,a)=>{i.setTime(+i+a*Z2)},(i,a)=>(a-i)/Z2,i=>i.getMinutes());PP.range,a1(i=>{i.setUTCSeconds(0,0)},(i,a)=>{i.setTime(+i+a*Z2)},(i,a)=>(a-i)/Z2,i=>i.getUTCMinutes()).range;const FP=a1(i=>{i.setTime(i-i.getMilliseconds()-i.getSeconds()*m5-i.getMinutes()*Z2)},(i,a)=>{i.setTime(+i+a*y5)},(i,a)=>(a-i)/y5,i=>i.getHours());FP.range,a1(i=>{i.setUTCMinutes(0,0,0)},(i,a)=>{i.setTime(+i+a*y5)},(i,a)=>(a-i)/y5,i=>i.getUTCHours()).range;const Z7=a1(i=>i.setHours(0,0,0,0),(i,a)=>i.setDate(i.getDate()+a),(i,a)=>(a-i-(a.getTimezoneOffset()-i.getTimezoneOffset())*Z2)/x5,i=>i.getDate()-1);Z7.range;const O1t=a1(i=>{i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCDate(i.getUTCDate()+a)},(i,a)=>(a-i)/x5,i=>i.getUTCDate()-1);O1t.range,a1(i=>{i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCDate(i.getUTCDate()+a)},(i,a)=>(a-i)/x5,i=>Math.floor(i/x5)).range;function J7(i){return a1(a=>{a.setDate(a.getDate()-(a.getDay()+7-i)%7),a.setHours(0,0,0,0)},(a,f)=>{a.setDate(a.getDate()+f*7)},(a,f)=>(f-a-(f.getTimezoneOffset()-a.getTimezoneOffset())*Z2)/D1t)}const NP=J7(0),BP=J7(1),JMt=J7(2),tDt=J7(3),tT=J7(4),eDt=J7(5),nDt=J7(6);NP.range,BP.range,JMt.range,tDt.range,tT.range,eDt.range,nDt.range;function eT(i){return a1(a=>{a.setUTCDate(a.getUTCDate()-(a.getUTCDay()+7-i)%7),a.setUTCHours(0,0,0,0)},(a,f)=>{a.setUTCDate(a.getUTCDate()+f*7)},(a,f)=>(f-a)/D1t)}const rDt=eT(0),QU=eT(1),REe=eT(2),jEe=eT(3),MA=eT(4),$Ee=eT(5),zEe=eT(6);rDt.range,QU.range,REe.range,jEe.range,MA.range,$Ee.range,zEe.range;const RP=a1(i=>{i.setDate(1),i.setHours(0,0,0,0)},(i,a)=>{i.setMonth(i.getMonth()+a)},(i,a)=>a.getMonth()-i.getMonth()+(a.getFullYear()-i.getFullYear())*12,i=>i.getMonth());RP.range,a1(i=>{i.setUTCDate(1),i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCMonth(i.getUTCMonth()+a)},(i,a)=>a.getUTCMonth()-i.getUTCMonth()+(a.getUTCFullYear()-i.getUTCFullYear())*12,i=>i.getUTCMonth()).range;const k5=a1(i=>{i.setMonth(0,1),i.setHours(0,0,0,0)},(i,a)=>{i.setFullYear(i.getFullYear()+a)},(i,a)=>a.getFullYear()-i.getFullYear(),i=>i.getFullYear());k5.every=i=>!isFinite(i=Math.floor(i))||!(i>0)?null:a1(a=>{a.setFullYear(Math.floor(a.getFullYear()/i)*i),a.setMonth(0,1),a.setHours(0,0,0,0)},(a,f)=>{a.setFullYear(a.getFullYear()+f*i)}),k5.range;const nT=a1(i=>{i.setUTCMonth(0,1),i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCFullYear(i.getUTCFullYear()+a)},(i,a)=>a.getUTCFullYear()-i.getUTCFullYear(),i=>i.getUTCFullYear());nT.every=i=>!isFinite(i=Math.floor(i))||!(i>0)?null:a1(a=>{a.setUTCFullYear(Math.floor(a.getUTCFullYear()/i)*i),a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0)},(a,f)=>{a.setUTCFullYear(a.getUTCFullYear()+f*i)}),nT.range;function qEe(i,a,f,p,w,m){const b=[[sk,1,m5],[sk,5,5*m5],[sk,15,15*m5],[sk,30,30*m5],[m,1,Z2],[m,5,5*Z2],[m,15,15*Z2],[m,30,30*Z2],[w,1,y5],[w,3,3*y5],[w,6,6*y5],[w,12,12*y5],[p,1,x5],[p,2,2*x5],[f,1,D1t],[a,1,ZMt],[a,3,3*ZMt],[i,1,I1t]];function E(A,I,B){const N=Iet).right(b,N);if(R===b.length)return i.every(t1t(A/I1t,I/I1t,B));if(R===0)return LA.every(Math.max(t1t(A,I,B),1));const[z,W]=b[N/b[R-1][2]53)return null;"w"in re||(re.w=1),"Z"in re?(Pe=F1t(jP(re.y,0,1)),te=Pe.getUTCDay(),Pe=te>4||te===0?QU.ceil(Pe):QU(Pe),Pe=O1t.offset(Pe,(re.V-1)*7),re.y=Pe.getUTCFullYear(),re.m=Pe.getUTCMonth(),re.d=Pe.getUTCDate()+(re.w+6)%7):(Pe=P1t(jP(re.y,0,1)),te=Pe.getDay(),Pe=te>4||te===0?BP.ceil(Pe):BP(Pe),Pe=Z7.offset(Pe,(re.V-1)*7),re.y=Pe.getFullYear(),re.m=Pe.getMonth(),re.d=Pe.getDate()+(re.w+6)%7)}else("W"in re||"U"in re)&&("w"in re||(re.w="u"in re?re.u%7:"W"in re?1:0),te="Z"in re?F1t(jP(re.y,0,1)).getUTCDay():P1t(jP(re.y,0,1)).getDay(),re.m=0,re.d="W"in re?(re.w+6)%7+re.W*7-(te+5)%7:re.w+re.U*7-(te+6)%7);return"Z"in re?(re.H+=re.Z/100|0,re.M+=re.Z%100,F1t(re)):P1t(re)}}function vt(ce,ke,zt,re){for(var se=0,Pe=ke.length,te=zt.length,Me,de;se=te)return-1;if(Me=ke.charCodeAt(se++),Me===37){if(Me=ke.charAt(se++),de=yt[Me in iDt?ke.charAt(se++):Me],!de||(re=de(ce,zt,re))<0)return-1}else if(Me!=zt.charCodeAt(re++))return-1}return re}function X(ce,ke,zt){var re=A.exec(ke.slice(zt));return re?(ce.p=I.get(re[0].toLowerCase()),zt+re[0].length):-1}function pt(ce,ke,zt){var re=R.exec(ke.slice(zt));return re?(ce.w=z.get(re[0].toLowerCase()),zt+re[0].length):-1}function U(ce,ke,zt){var re=B.exec(ke.slice(zt));return re?(ce.w=N.get(re[0].toLowerCase()),zt+re[0].length):-1}function Tt(ce,ke,zt){var re=st.exec(ke.slice(zt));return re?(ce.m=at.get(re[0].toLowerCase()),zt+re[0].length):-1}function nt(ce,ke,zt){var re=W.exec(ke.slice(zt));return re?(ce.m=et.get(re[0].toLowerCase()),zt+re[0].length):-1}function It(ce,ke,zt){return vt(ce,a,ke,zt)}function Ot(ce,ke,zt){return vt(ce,f,ke,zt)}function Bt(ce,ke,zt){return vt(ce,p,ke,zt)}function Et(ce){return b[ce.getDay()]}function Z(ce){return m[ce.getDay()]}function Ct(ce){return _[ce.getMonth()]}function xt(ce){return E[ce.getMonth()]}function Ht(ce){return w[+(ce.getHours()>=12)]}function Le(ce){return 1+~~(ce.getMonth()/3)}function Ft(ce){return b[ce.getUTCDay()]}function gn(ce){return m[ce.getUTCDay()]}function Se(ce){return _[ce.getUTCMonth()]}function me(ce){return E[ce.getUTCMonth()]}function Ve(ce){return w[+(ce.getUTCHours()>=12)]}function Ye(ce){return 1+~~(ce.getUTCMonth()/3)}return{format:function(ce){var ke=ft(ce+="",bt);return ke.toString=function(){return ce},ke},parse:function(ce){var ke=ut(ce+="",!1);return ke.toString=function(){return ce},ke},utcFormat:function(ce){var ke=ft(ce+="",mt);return ke.toString=function(){return ce},ke},utcParse:function(ce){var ke=ut(ce+="",!0);return ke.toString=function(){return ce},ke}}}var iDt={"-":"",_:" ",0:"0"},X1=/^\s*\d+/,UEe=/^%/,WEe=/[\\^$*+?|[\]().{}]/g;function Ic(i,a,f){var p=i<0?"-":"",w=(p?-i:i)+"",m=w.length;return p+(m[a.toLowerCase(),f]))}function KEe(i,a,f){var p=X1.exec(a.slice(f,f+1));return p?(i.w=+p[0],f+p[0].length):-1}function XEe(i,a,f){var p=X1.exec(a.slice(f,f+1));return p?(i.u=+p[0],f+p[0].length):-1}function QEe(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.U=+p[0],f+p[0].length):-1}function ZEe(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.V=+p[0],f+p[0].length):-1}function JEe(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.W=+p[0],f+p[0].length):-1}function sDt(i,a,f){var p=X1.exec(a.slice(f,f+4));return p?(i.y=+p[0],f+p[0].length):-1}function aDt(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.y=+p[0]+(+p[0]>68?1900:2e3),f+p[0].length):-1}function t7e(i,a,f){var p=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(a.slice(f,f+6));return p?(i.Z=p[1]?0:-(p[2]+(p[3]||"00")),f+p[0].length):-1}function e7e(i,a,f){var p=X1.exec(a.slice(f,f+1));return p?(i.q=p[0]*3-3,f+p[0].length):-1}function n7e(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.m=p[0]-1,f+p[0].length):-1}function oDt(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.d=+p[0],f+p[0].length):-1}function r7e(i,a,f){var p=X1.exec(a.slice(f,f+3));return p?(i.m=0,i.d=+p[0],f+p[0].length):-1}function cDt(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.H=+p[0],f+p[0].length):-1}function i7e(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.M=+p[0],f+p[0].length):-1}function s7e(i,a,f){var p=X1.exec(a.slice(f,f+2));return p?(i.S=+p[0],f+p[0].length):-1}function a7e(i,a,f){var p=X1.exec(a.slice(f,f+3));return p?(i.L=+p[0],f+p[0].length):-1}function o7e(i,a,f){var p=X1.exec(a.slice(f,f+6));return p?(i.L=Math.floor(p[0]/1e3),f+p[0].length):-1}function c7e(i,a,f){var p=UEe.exec(a.slice(f,f+1));return p?f+p[0].length:-1}function u7e(i,a,f){var p=X1.exec(a.slice(f));return p?(i.Q=+p[0],f+p[0].length):-1}function l7e(i,a,f){var p=X1.exec(a.slice(f));return p?(i.s=+p[0],f+p[0].length):-1}function uDt(i,a){return Ic(i.getDate(),a,2)}function h7e(i,a){return Ic(i.getHours(),a,2)}function f7e(i,a){return Ic(i.getHours()%12||12,a,2)}function d7e(i,a){return Ic(1+Z7.count(k5(i),i),a,3)}function lDt(i,a){return Ic(i.getMilliseconds(),a,3)}function g7e(i,a){return lDt(i,a)+"000"}function p7e(i,a){return Ic(i.getMonth()+1,a,2)}function b7e(i,a){return Ic(i.getMinutes(),a,2)}function w7e(i,a){return Ic(i.getSeconds(),a,2)}function v7e(i){var a=i.getDay();return a===0?7:a}function m7e(i,a){return Ic(NP.count(k5(i)-1,i),a,2)}function hDt(i){var a=i.getDay();return a>=4||a===0?tT(i):tT.ceil(i)}function y7e(i,a){return i=hDt(i),Ic(tT.count(k5(i),i)+(k5(i).getDay()===4),a,2)}function x7e(i){return i.getDay()}function k7e(i,a){return Ic(BP.count(k5(i)-1,i),a,2)}function E7e(i,a){return Ic(i.getFullYear()%100,a,2)}function T7e(i,a){return i=hDt(i),Ic(i.getFullYear()%100,a,2)}function C7e(i,a){return Ic(i.getFullYear()%1e4,a,4)}function _7e(i,a){var f=i.getDay();return i=f>=4||f===0?tT(i):tT.ceil(i),Ic(i.getFullYear()%1e4,a,4)}function S7e(i){var a=i.getTimezoneOffset();return(a>0?"-":(a*=-1,"+"))+Ic(a/60|0,"0",2)+Ic(a%60,"0",2)}function fDt(i,a){return Ic(i.getUTCDate(),a,2)}function A7e(i,a){return Ic(i.getUTCHours(),a,2)}function L7e(i,a){return Ic(i.getUTCHours()%12||12,a,2)}function M7e(i,a){return Ic(1+O1t.count(nT(i),i),a,3)}function dDt(i,a){return Ic(i.getUTCMilliseconds(),a,3)}function D7e(i,a){return dDt(i,a)+"000"}function I7e(i,a){return Ic(i.getUTCMonth()+1,a,2)}function O7e(i,a){return Ic(i.getUTCMinutes(),a,2)}function P7e(i,a){return Ic(i.getUTCSeconds(),a,2)}function F7e(i){var a=i.getUTCDay();return a===0?7:a}function N7e(i,a){return Ic(rDt.count(nT(i)-1,i),a,2)}function gDt(i){var a=i.getUTCDay();return a>=4||a===0?MA(i):MA.ceil(i)}function B7e(i,a){return i=gDt(i),Ic(MA.count(nT(i),i)+(nT(i).getUTCDay()===4),a,2)}function R7e(i){return i.getUTCDay()}function j7e(i,a){return Ic(QU.count(nT(i)-1,i),a,2)}function $7e(i,a){return Ic(i.getUTCFullYear()%100,a,2)}function z7e(i,a){return i=gDt(i),Ic(i.getUTCFullYear()%100,a,2)}function q7e(i,a){return Ic(i.getUTCFullYear()%1e4,a,4)}function H7e(i,a){var f=i.getUTCDay();return i=f>=4||f===0?MA(i):MA.ceil(i),Ic(i.getUTCFullYear()%1e4,a,4)}function V7e(){return"+0000"}function pDt(){return"%"}function bDt(i){return+i}function wDt(i){return Math.floor(+i/1e3)}var DA,ZU;G7e({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function G7e(i){return DA=GEe(i),ZU=DA.format,DA.parse,DA.utcFormat,DA.utcParse,DA}function U7e(i){return new Date(i)}function W7e(i){return i instanceof Date?+i:+new Date(+i)}function vDt(i,a,f,p,w,m,b,E,_,A){var I=QMt(),B=I.invert,N=I.domain,R=A(".%L"),z=A(":%S"),W=A("%I:%M"),et=A("%I %p"),st=A("%a %d"),at=A("%b %d"),bt=A("%B"),mt=A("%Y");function yt(ft){return(_(ft)1?0:i<-1?qP:Math.acos(i)}function yDt(i){return i>=1?JU:i<=-1?-JU:Math.asin(i)}function xDt(i){let a=3;return i.digits=function(f){if(!arguments.length)return a;if(f==null)a=null;else{const p=Math.floor(f);if(!(p>=0))throw new RangeError(`invalid digits: ${f}`);a=p}return i},()=>new dEe(a)}function J7e(i){return i.innerRadius}function tTe(i){return i.outerRadius}function eTe(i){return i.startAngle}function nTe(i){return i.endAngle}function rTe(i){return i&&i.padAngle}function iTe(i,a,f,p,w,m,b,E){var _=f-i,A=p-a,I=b-w,B=E-m,N=B*_-I*A;if(!(N*NIt*It+Ot*Ot&&(vt=pt,X=U),{cx:vt,cy:X,x01:-I,y01:-B,x11:vt*(w/yt-1),y11:X*(w/yt-1)}}function OA(){var i=J7e,a=tTe,f=Qh(0),p=null,w=eTe,m=nTe,b=rTe,E=null,_=xDt(A);function A(){var I,B,N=+i.apply(this,arguments),R=+a.apply(this,arguments),z=w.apply(this,arguments)-JU,W=m.apply(this,arguments)-JU,et=mDt(W-z),st=W>z;if(E||(E=I=_()),Ry0))E.moveTo(0,0);else if(et>tW-y0)E.moveTo(R*rT(z),R*h3(z)),E.arc(0,0,R,z,W,!st),N>y0&&(E.moveTo(N*rT(W),N*h3(W)),E.arc(0,0,N,W,z,st));else{var at=z,bt=W,mt=z,yt=W,ft=et,ut=et,vt=b.apply(this,arguments)/2,X=vt>y0&&(p?+p.apply(this,arguments):IA(N*N+R*R)),pt=N1t(mDt(R-N)/2,+f.apply(this,arguments)),U=pt,Tt=pt,nt,It;if(X>y0){var Ot=yDt(X/N*h3(vt)),Bt=yDt(X/R*h3(vt));(ft-=Ot*2)>y0?(Ot*=st?1:-1,mt+=Ot,yt-=Ot):(ft=0,mt=yt=(z+W)/2),(ut-=Bt*2)>y0?(Bt*=st?1:-1,at+=Bt,bt-=Bt):(ut=0,at=bt=(z+W)/2)}var Et=R*rT(at),Z=R*h3(at),Ct=N*rT(yt),xt=N*h3(yt);if(pt>y0){var Ht=R*rT(bt),Le=R*h3(bt),Ft=N*rT(mt),gn=N*h3(mt),Se;if(ety0?Tt>y0?(nt=eW(Ft,gn,Et,Z,R,Tt,st),It=eW(Ht,Le,Ct,xt,R,Tt,st),E.moveTo(nt.cx+nt.x01,nt.cy+nt.y01),Tty0)||!(ft>y0)?E.lineTo(Ct,xt):U>y0?(nt=eW(Ct,xt,Ht,Le,N,-U,st),It=eW(Et,Z,Ft,gn,N,-U,st),E.lineTo(nt.cx+nt.x01,nt.cy+nt.y01),Ui?1:a>=i?0:NaN}function cTe(i){return i}function uTe(){var i=cTe,a=oTe,f=null,p=Qh(0),w=Qh(tW),m=Qh(0);function b(E){var _,A=(E=kDt(E)).length,I,B,N=0,R=new Array(A),z=new Array(A),W=+p.apply(this,arguments),et=Math.min(tW,Math.max(-tW,w.apply(this,arguments)-W)),st,at=Math.min(Math.abs(et)/A,m.apply(this,arguments)),bt=at*(et<0?-1:1),mt;for(_=0;_0&&(N+=mt);for(a!=null?R.sort(function(yt,ft){return a(z[yt],z[ft])}):f!=null&&R.sort(function(yt,ft){return f(E[yt],E[ft])}),_=0,B=N?(et-A*bt)/N:0;_0?mt*B:0)+bt,z[I]={data:E[I],index:_,value:mt,startAngle:W,endAngle:st,padAngle:at};return z}return b.value=function(E){return arguments.length?(i=typeof E=="function"?E:Qh(+E),b):i},b.sortValues=function(E){return arguments.length?(a=E,f=null,b):a},b.sort=function(E){return arguments.length?(f=E,a=null,b):f},b.startAngle=function(E){return arguments.length?(p=typeof E=="function"?E:Qh(+E),b):p},b.endAngle=function(E){return arguments.length?(w=typeof E=="function"?E:Qh(+E),b):w},b.padAngle=function(E){return arguments.length?(m=typeof E=="function"?E:Qh(+E),b):m},b}class TDt{constructor(a,f){this._context=a,this._x=f}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(a,f){switch(a=+a,f=+f,this._point){case 0:{this._point=1,this._line?this._context.lineTo(a,f):this._context.moveTo(a,f);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+a)/2,this._y0,this._x0,f,a,f):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+f)/2,a,this._y0,a,f);break}}this._x0=a,this._y0=f}}function lTe(i){return new TDt(i,!0)}function hTe(i){return new TDt(i,!1)}function ak(){}function nW(i,a,f){i._context.bezierCurveTo((2*i._x0+i._x1)/3,(2*i._y0+i._y1)/3,(i._x0+2*i._x1)/3,(i._y0+2*i._y1)/3,(i._x0+4*i._x1+a)/6,(i._y0+4*i._y1+f)/6)}function rW(i){this._context=i}rW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:nW(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:nW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function HP(i){return new rW(i)}function CDt(i){this._context=i}CDt.prototype={areaStart:ak,areaEnd:ak,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x2=i,this._y2=a;break;case 1:this._point=2,this._x3=i,this._y3=a;break;case 2:this._point=3,this._x4=i,this._y4=a,this._context.moveTo((this._x0+4*this._x1+i)/6,(this._y0+4*this._y1+a)/6);break;default:nW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function fTe(i){return new CDt(i)}function _Dt(i){this._context=i}_Dt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var f=(this._x0+4*this._x1+i)/6,p=(this._y0+4*this._y1+a)/6;this._line?this._context.lineTo(f,p):this._context.moveTo(f,p);break;case 3:this._point=4;default:nW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function dTe(i){return new _Dt(i)}function SDt(i,a){this._basis=new rW(i),this._beta=a}SDt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var i=this._x,a=this._y,f=i.length-1;if(f>0)for(var p=i[0],w=a[0],m=i[f]-p,b=a[f]-w,E=-1,_;++E<=f;)_=E/f,this._basis.point(this._beta*i[E]+(1-this._beta)*(p+_*m),this._beta*a[E]+(1-this._beta)*(w+_*b));this._x=this._y=null,this._basis.lineEnd()},point:function(i,a){this._x.push(+i),this._y.push(+a)}};const gTe=function i(a){function f(p){return a===1?new rW(p):new SDt(p,a)}return f.beta=function(p){return i(+p)},f}(.85);function iW(i,a,f){i._context.bezierCurveTo(i._x1+i._k*(i._x2-i._x0),i._y1+i._k*(i._y2-i._y0),i._x2+i._k*(i._x1-a),i._y2+i._k*(i._y1-f),i._x2,i._y2)}function B1t(i,a){this._context=i,this._k=(1-a)/6}B1t.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:iW(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2,this._x1=i,this._y1=a;break;case 2:this._point=3;default:iW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const pTe=function i(a){function f(p){return new B1t(p,a)}return f.tension=function(p){return i(+p)},f}(0);function R1t(i,a){this._context=i,this._k=(1-a)/6}R1t.prototype={areaStart:ak,areaEnd:ak,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:iW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const bTe=function i(a){function f(p){return new R1t(p,a)}return f.tension=function(p){return i(+p)},f}(0);function j1t(i,a){this._context=i,this._k=(1-a)/6}j1t.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:iW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const wTe=function i(a){function f(p){return new j1t(p,a)}return f.tension=function(p){return i(+p)},f}(0);function $1t(i,a,f){var p=i._x1,w=i._y1,m=i._x2,b=i._y2;if(i._l01_a>y0){var E=2*i._l01_2a+3*i._l01_a*i._l12_a+i._l12_2a,_=3*i._l01_a*(i._l01_a+i._l12_a);p=(p*E-i._x0*i._l12_2a+i._x2*i._l01_2a)/_,w=(w*E-i._y0*i._l12_2a+i._y2*i._l01_2a)/_}if(i._l23_a>y0){var A=2*i._l23_2a+3*i._l23_a*i._l12_a+i._l12_2a,I=3*i._l23_a*(i._l23_a+i._l12_a);m=(m*A+i._x1*i._l23_2a-a*i._l12_2a)/I,b=(b*A+i._y1*i._l23_2a-f*i._l12_2a)/I}i._context.bezierCurveTo(p,w,m,b,i._x2,i._y2)}function ADt(i,a){this._context=i,this._alpha=a}ADt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,p=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+p*p,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3;default:$1t(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const vTe=function i(a){function f(p){return a?new ADt(p,a):new B1t(p,0)}return f.alpha=function(p){return i(+p)},f}(.5);function LDt(i,a){this._context=i,this._alpha=a}LDt.prototype={areaStart:ak,areaEnd:ak,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,p=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+p*p,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:$1t(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const mTe=function i(a){function f(p){return a?new LDt(p,a):new R1t(p,0)}return f.alpha=function(p){return i(+p)},f}(.5);function MDt(i,a){this._context=i,this._alpha=a}MDt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,p=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+p*p,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:$1t(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const yTe=function i(a){function f(p){return a?new MDt(p,a):new j1t(p,0)}return f.alpha=function(p){return i(+p)},f}(.5);function DDt(i){this._context=i}DDt.prototype={areaStart:ak,areaEnd:ak,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(i,a){i=+i,a=+a,this._point?this._context.lineTo(i,a):(this._point=1,this._context.moveTo(i,a))}};function xTe(i){return new DDt(i)}function IDt(i){return i<0?-1:1}function ODt(i,a,f){var p=i._x1-i._x0,w=a-i._x1,m=(i._y1-i._y0)/(p||w<0&&-0),b=(f-i._y1)/(w||p<0&&-0),E=(m*w+b*p)/(p+w);return(IDt(m)+IDt(b))*Math.min(Math.abs(m),Math.abs(b),.5*Math.abs(E))||0}function PDt(i,a){var f=i._x1-i._x0;return f?(3*(i._y1-i._y0)/f-a)/2:a}function z1t(i,a,f){var p=i._x0,w=i._y0,m=i._x1,b=i._y1,E=(m-p)/3;i._context.bezierCurveTo(p+E,w+E*a,m-E,b-E*f,m,b)}function sW(i){this._context=i}sW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:z1t(this,this._t0,PDt(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){var f=NaN;if(i=+i,a=+a,!(i===this._x1&&a===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,z1t(this,PDt(this,f=ODt(this,i,a)),f);break;default:z1t(this,this._t0,f=ODt(this,i,a));break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a,this._t0=f}}};function FDt(i){this._context=new NDt(i)}(FDt.prototype=Object.create(sW.prototype)).point=function(i,a){sW.prototype.point.call(this,a,i)};function NDt(i){this._context=i}NDt.prototype={moveTo:function(i,a){this._context.moveTo(a,i)},closePath:function(){this._context.closePath()},lineTo:function(i,a){this._context.lineTo(a,i)},bezierCurveTo:function(i,a,f,p,w,m){this._context.bezierCurveTo(a,i,p,f,m,w)}};function kTe(i){return new sW(i)}function ETe(i){return new FDt(i)}function BDt(i){this._context=i}BDt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var i=this._x,a=this._y,f=i.length;if(f)if(this._line?this._context.lineTo(i[0],a[0]):this._context.moveTo(i[0],a[0]),f===2)this._context.lineTo(i[1],a[1]);else for(var p=RDt(i),w=RDt(a),m=0,b=1;b=0;--a)w[a]=(b[a]-w[a+1])/m[a];for(m[f-1]=(i[f]+w[f-1])/2,a=0;a=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,a),this._context.lineTo(i,a);else{var f=this._x*(1-this._t)+i*this._t;this._context.lineTo(f,this._y),this._context.lineTo(f,a)}break}}this._x=i,this._y=a}};function CTe(i){return new aW(i,.5)}function _Te(i){return new aW(i,0)}function STe(i){return new aW(i,1)}function VP(i,a,f){this.k=i,this.x=a,this.y=f}VP.prototype={constructor:VP,scale:function(i){return i===1?this:new VP(this.k*i,this.x,this.y)},translate:function(i,a){return i===0&a===0?this:new VP(this.k,this.x+this.k*i,this.y+this.k*a)},apply:function(i){return[i[0]*this.k+this.x,i[1]*this.k+this.y]},applyX:function(i){return i*this.k+this.x},applyY:function(i){return i*this.k+this.y},invert:function(i){return[(i[0]-this.x)/this.k,(i[1]-this.y)/this.k]},invertX:function(i){return(i-this.x)/this.k},invertY:function(i){return(i-this.y)/this.k},rescaleX:function(i){return i.copy().domain(i.range().map(this.invertX,this).map(i.invert,i))},rescaleY:function(i){return i.copy().domain(i.range().map(this.invertY,this).map(i.invert,i))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},VP.prototype;/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */const{entries:jDt,setPrototypeOf:$Dt,isFrozen:ATe,getPrototypeOf:LTe,getOwnPropertyDescriptor:MTe}=Object;let{freeze:ug,seal:Jv,create:DTe}=Object,{apply:q1t,construct:H1t}=typeof Reflect<"u"&&Reflect;q1t||(q1t=function(a,f,p){return a.apply(f,p)}),ug||(ug=function(a){return a}),Jv||(Jv=function(a){return a}),H1t||(H1t=function(a,f){return new a(...f)});const ITe=J2(Array.prototype.forEach),zDt=J2(Array.prototype.pop),GP=J2(Array.prototype.push),oW=J2(String.prototype.toLowerCase),V1t=J2(String.prototype.toString),OTe=J2(String.prototype.match),tm=J2(String.prototype.replace),PTe=J2(String.prototype.indexOf),FTe=J2(String.prototype.trim),Pb=J2(RegExp.prototype.test),UP=NTe(TypeError);function J2(i){return function(a){for(var f=arguments.length,p=new Array(f>1?f-1:0),w=1;w/gm),zTe=Jv(/\${[\w\W]*}/gm),qTe=Jv(/^data-[\-\w.\u00B7-\uFFFF]/),HTe=Jv(/^aria-[\-\w]+$/),UDt=Jv(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),VTe=Jv(/^(?:\w+script|data):/i),GTe=Jv(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),WDt=Jv(/^html$/i);var YDt=Object.freeze({__proto__:null,MUSTACHE_EXPR:jTe,ERB_EXPR:$Te,TMPLIT_EXPR:zTe,DATA_ATTR:qTe,ARIA_ATTR:HTe,IS_ALLOWED_URI:UDt,IS_SCRIPT_OR_DATA:VTe,ATTR_WHITESPACE:GTe,DOCTYPE_NAME:WDt});const UTe=()=>typeof window>"u"?null:window,WTe=function(a,f){if(typeof a!="object"||typeof a.createPolicy!="function")return null;let p=null;const w="data-tt-policy-suffix";f&&f.hasAttribute(w)&&(p=f.getAttribute(w));const m="dompurify"+(p?"#"+p:"");try{return a.createPolicy(m,{createHTML(b){return b},createScriptURL(b){return b}})}catch{return console.warn("TrustedTypes policy "+m+" could not be created."),null}};function KDt(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:UTe();const a=Bi=>KDt(Bi);if(a.version="3.0.5",a.removed=[],!i||!i.document||i.document.nodeType!==9)return a.isSupported=!1,a;const f=i.document,p=f.currentScript;let{document:w}=i;const{DocumentFragment:m,HTMLTemplateElement:b,Node:E,Element:_,NodeFilter:A,NamedNodeMap:I=i.NamedNodeMap||i.MozNamedAttrMap,HTMLFormElement:B,DOMParser:N,trustedTypes:R}=i,z=_.prototype,W=cW(z,"cloneNode"),et=cW(z,"nextSibling"),st=cW(z,"childNodes"),at=cW(z,"parentNode");if(typeof b=="function"){const Bi=w.createElement("template");Bi.content&&Bi.content.ownerDocument&&(w=Bi.content.ownerDocument)}let bt,mt="";const{implementation:yt,createNodeIterator:ft,createDocumentFragment:ut,getElementsByTagName:vt}=w,{importNode:X}=f;let pt={};a.isSupported=typeof jDt=="function"&&typeof at=="function"&&yt&&yt.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:U,ERB_EXPR:Tt,TMPLIT_EXPR:nt,DATA_ATTR:It,ARIA_ATTR:Ot,IS_SCRIPT_OR_DATA:Bt,ATTR_WHITESPACE:Et}=YDt;let{IS_ALLOWED_URI:Z}=YDt,Ct=null;const xt=mo({},[...qDt,...G1t,...U1t,...W1t,...HDt]);let Ht=null;const Le=mo({},[...VDt,...Y1t,...GDt,...uW]);let Ft=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),gn=null,Se=null,me=!0,Ve=!0,Ye=!1,ce=!0,ke=!1,zt=!1,re=!1,se=!1,Pe=!1,te=!1,Me=!1,de=!0,on=!1;const ni="user-content-";let Ks=!0,ws=!1,fo={},Xi=null;const Er=mo({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Xn=null;const di=mo({},["audio","video","img","source","image","track"]);let Ee=null;const Kn=mo({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),He="http://www.w3.org/1998/Math/MathML",Ti="http://www.w3.org/2000/svg",pn="http://www.w3.org/1999/xhtml";let Es=pn,qa=!1,Ma=null;const Gs=mo({},[He,Ti,pn],V1t);let Po;const vs=["application/xhtml+xml","text/html"],ru="text/html";let zs,Du=null;const pm=w.createElement("form"),uw=function(cn){return cn instanceof RegExp||cn instanceof Function},Wu=function(cn){if(!(Du&&Du===cn)){if((!cn||typeof cn!="object")&&(cn={}),cn=PA(cn),Po=vs.indexOf(cn.PARSER_MEDIA_TYPE)===-1?Po=ru:Po=cn.PARSER_MEDIA_TYPE,zs=Po==="application/xhtml+xml"?V1t:oW,Ct="ALLOWED_TAGS"in cn?mo({},cn.ALLOWED_TAGS,zs):xt,Ht="ALLOWED_ATTR"in cn?mo({},cn.ALLOWED_ATTR,zs):Le,Ma="ALLOWED_NAMESPACES"in cn?mo({},cn.ALLOWED_NAMESPACES,V1t):Gs,Ee="ADD_URI_SAFE_ATTR"in cn?mo(PA(Kn),cn.ADD_URI_SAFE_ATTR,zs):Kn,Xn="ADD_DATA_URI_TAGS"in cn?mo(PA(di),cn.ADD_DATA_URI_TAGS,zs):di,Xi="FORBID_CONTENTS"in cn?mo({},cn.FORBID_CONTENTS,zs):Er,gn="FORBID_TAGS"in cn?mo({},cn.FORBID_TAGS,zs):{},Se="FORBID_ATTR"in cn?mo({},cn.FORBID_ATTR,zs):{},fo="USE_PROFILES"in cn?cn.USE_PROFILES:!1,me=cn.ALLOW_ARIA_ATTR!==!1,Ve=cn.ALLOW_DATA_ATTR!==!1,Ye=cn.ALLOW_UNKNOWN_PROTOCOLS||!1,ce=cn.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ke=cn.SAFE_FOR_TEMPLATES||!1,zt=cn.WHOLE_DOCUMENT||!1,Pe=cn.RETURN_DOM||!1,te=cn.RETURN_DOM_FRAGMENT||!1,Me=cn.RETURN_TRUSTED_TYPE||!1,se=cn.FORCE_BODY||!1,de=cn.SANITIZE_DOM!==!1,on=cn.SANITIZE_NAMED_PROPS||!1,Ks=cn.KEEP_CONTENT!==!1,ws=cn.IN_PLACE||!1,Z=cn.ALLOWED_URI_REGEXP||UDt,Es=cn.NAMESPACE||pn,Ft=cn.CUSTOM_ELEMENT_HANDLING||{},cn.CUSTOM_ELEMENT_HANDLING&&uw(cn.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ft.tagNameCheck=cn.CUSTOM_ELEMENT_HANDLING.tagNameCheck),cn.CUSTOM_ELEMENT_HANDLING&&uw(cn.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ft.attributeNameCheck=cn.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),cn.CUSTOM_ELEMENT_HANDLING&&typeof cn.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Ft.allowCustomizedBuiltInElements=cn.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ke&&(Ve=!1),te&&(Pe=!0),fo&&(Ct=mo({},[...HDt]),Ht=[],fo.html===!0&&(mo(Ct,qDt),mo(Ht,VDt)),fo.svg===!0&&(mo(Ct,G1t),mo(Ht,Y1t),mo(Ht,uW)),fo.svgFilters===!0&&(mo(Ct,U1t),mo(Ht,Y1t),mo(Ht,uW)),fo.mathMl===!0&&(mo(Ct,W1t),mo(Ht,GDt),mo(Ht,uW))),cn.ADD_TAGS&&(Ct===xt&&(Ct=PA(Ct)),mo(Ct,cn.ADD_TAGS,zs)),cn.ADD_ATTR&&(Ht===Le&&(Ht=PA(Ht)),mo(Ht,cn.ADD_ATTR,zs)),cn.ADD_URI_SAFE_ATTR&&mo(Ee,cn.ADD_URI_SAFE_ATTR,zs),cn.FORBID_CONTENTS&&(Xi===Er&&(Xi=PA(Xi)),mo(Xi,cn.FORBID_CONTENTS,zs)),Ks&&(Ct["#text"]=!0),zt&&mo(Ct,["html","head","body"]),Ct.table&&(mo(Ct,["tbody"]),delete gn.tbody),cn.TRUSTED_TYPES_POLICY){if(typeof cn.TRUSTED_TYPES_POLICY.createHTML!="function")throw UP('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof cn.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw UP('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');bt=cn.TRUSTED_TYPES_POLICY,mt=bt.createHTML("")}else bt===void 0&&(bt=WTe(R,p)),bt!==null&&typeof mt=="string"&&(mt=bt.createHTML(""));ug&&ug(cn),Du=cn}},th=mo({},["mi","mo","mn","ms","mtext"]),Fa=mo({},["foreignobject","desc","title","annotation-xml"]),Ml=mo({},["title","style","font","a","script"]),ha=mo({},G1t);mo(ha,U1t),mo(ha,BTe);const bc=mo({},W1t);mo(bc,RTe);const Cc=function(cn){let kr=at(cn);(!kr||!kr.tagName)&&(kr={namespaceURI:Es,tagName:"template"});const Ei=oW(cn.tagName),Jo=oW(kr.tagName);return Ma[cn.namespaceURI]?cn.namespaceURI===Ti?kr.namespaceURI===pn?Ei==="svg":kr.namespaceURI===He?Ei==="svg"&&(Jo==="annotation-xml"||th[Jo]):!!ha[Ei]:cn.namespaceURI===He?kr.namespaceURI===pn?Ei==="math":kr.namespaceURI===Ti?Ei==="math"&&Fa[Jo]:!!bc[Ei]:cn.namespaceURI===pn?kr.namespaceURI===Ti&&!Fa[Jo]||kr.namespaceURI===He&&!th[Jo]?!1:!bc[Ei]&&(Ml[Ei]||!ha[Ei]):!!(Po==="application/xhtml+xml"&&Ma[cn.namespaceURI]):!1},pa=function(cn){GP(a.removed,{element:cn});try{cn.parentNode.removeChild(cn)}catch{cn.remove()}},Da=function(cn,kr){try{GP(a.removed,{attribute:kr.getAttributeNode(cn),from:kr})}catch{GP(a.removed,{attribute:null,from:kr})}if(kr.removeAttribute(cn),cn==="is"&&!Ht[cn])if(Pe||te)try{pa(kr)}catch{}else try{kr.setAttribute(cn,"")}catch{}},Ha=function(cn){let kr,Ei;if(se)cn=""+cn;else{const rf=OTe(cn,/^[\r\n\t ]+/);Ei=rf&&rf[0]}Po==="application/xhtml+xml"&&Es===pn&&(cn=''+cn+"");const Jo=bt?bt.createHTML(cn):cn;if(Es===pn)try{kr=new N().parseFromString(Jo,Po)}catch{}if(!kr||!kr.documentElement){kr=yt.createDocument(Es,"template",null);try{kr.documentElement.innerHTML=qa?mt:Jo}catch{}}const wc=kr.body||kr.documentElement;return cn&&Ei&&wc.insertBefore(w.createTextNode(Ei),wc.childNodes[0]||null),Es===pn?vt.call(kr,zt?"html":"body")[0]:zt?kr.documentElement:wc},Dl=function(cn){return ft.call(cn.ownerDocument||cn,cn,A.SHOW_ELEMENT|A.SHOW_COMMENT|A.SHOW_TEXT,null,!1)},_c=function(cn){return cn instanceof B&&(typeof cn.nodeName!="string"||typeof cn.textContent!="string"||typeof cn.removeChild!="function"||!(cn.attributes instanceof I)||typeof cn.removeAttribute!="function"||typeof cn.setAttribute!="function"||typeof cn.namespaceURI!="string"||typeof cn.insertBefore!="function"||typeof cn.hasChildNodes!="function")},lw=function(cn){return typeof E=="object"?cn instanceof E:cn&&typeof cn=="object"&&typeof cn.nodeType=="number"&&typeof cn.nodeName=="string"},eh=function(cn,kr,Ei){pt[cn]&&ITe(pt[cn],Jo=>{Jo.call(a,kr,Ei,Du)})},ed=function(cn){let kr;if(eh("beforeSanitizeElements",cn,null),_c(cn))return pa(cn),!0;const Ei=zs(cn.nodeName);if(eh("uponSanitizeElement",cn,{tagName:Ei,allowedTags:Ct}),cn.hasChildNodes()&&!lw(cn.firstElementChild)&&(!lw(cn.content)||!lw(cn.content.firstElementChild))&&Pb(/<[/\w]/g,cn.innerHTML)&&Pb(/<[/\w]/g,cn.textContent))return pa(cn),!0;if(!Ct[Ei]||gn[Ei]){if(!gn[Ei]&&nd(Ei)&&(Ft.tagNameCheck instanceof RegExp&&Pb(Ft.tagNameCheck,Ei)||Ft.tagNameCheck instanceof Function&&Ft.tagNameCheck(Ei)))return!1;if(Ks&&!Xi[Ei]){const Jo=at(cn)||cn.parentNode,wc=st(cn)||cn.childNodes;if(wc&&Jo){const rf=wc.length;for(let Oc=rf-1;Oc>=0;--Oc)Jo.insertBefore(W(wc[Oc],!0),et(cn))}}return pa(cn),!0}return cn instanceof _&&!Cc(cn)||(Ei==="noscript"||Ei==="noembed"||Ei==="noframes")&&Pb(/<\/no(script|embed|frames)/i,cn.innerHTML)?(pa(cn),!0):(ke&&cn.nodeType===3&&(kr=cn.textContent,kr=tm(kr,U," "),kr=tm(kr,Tt," "),kr=tm(kr,nt," "),cn.textContent!==kr&&(GP(a.removed,{element:cn.cloneNode()}),cn.textContent=kr)),eh("afterSanitizeElements",cn,null),!1)},jd=function(cn,kr,Ei){if(de&&(kr==="id"||kr==="name")&&(Ei in w||Ei in pm))return!1;if(!(Ve&&!Se[kr]&&Pb(It,kr))){if(!(me&&Pb(Ot,kr))){if(!Ht[kr]||Se[kr]){if(!(nd(cn)&&(Ft.tagNameCheck instanceof RegExp&&Pb(Ft.tagNameCheck,cn)||Ft.tagNameCheck instanceof Function&&Ft.tagNameCheck(cn))&&(Ft.attributeNameCheck instanceof RegExp&&Pb(Ft.attributeNameCheck,kr)||Ft.attributeNameCheck instanceof Function&&Ft.attributeNameCheck(kr))||kr==="is"&&Ft.allowCustomizedBuiltInElements&&(Ft.tagNameCheck instanceof RegExp&&Pb(Ft.tagNameCheck,Ei)||Ft.tagNameCheck instanceof Function&&Ft.tagNameCheck(Ei))))return!1}else if(!Ee[kr]){if(!Pb(Z,tm(Ei,Et,""))){if(!((kr==="src"||kr==="xlink:href"||kr==="href")&&cn!=="script"&&PTe(Ei,"data:")===0&&Xn[cn])){if(!(Ye&&!Pb(Bt,tm(Ei,Et,"")))){if(Ei)return!1}}}}}}return!0},nd=function(cn){return cn.indexOf("-")>0},$d=function(cn){let kr,Ei,Jo,wc;eh("beforeSanitizeAttributes",cn,null);const{attributes:rf}=cn;if(!rf)return;const Oc={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ht};for(wc=rf.length;wc--;){kr=rf[wc];const{name:sf,namespaceURI:af}=kr;if(Ei=sf==="value"?kr.value:FTe(kr.value),Jo=zs(sf),Oc.attrName=Jo,Oc.attrValue=Ei,Oc.keepAttr=!0,Oc.forceKeepAttr=void 0,eh("uponSanitizeAttribute",cn,Oc),Ei=Oc.attrValue,Oc.forceKeepAttr||(Da(sf,cn),!Oc.keepAttr))continue;if(!ce&&Pb(/\/>/i,Ei)){Da(sf,cn);continue}ke&&(Ei=tm(Ei,U," "),Ei=tm(Ei,Tt," "),Ei=tm(Ei,nt," "));const Qi=zs(cn.nodeName);if(jd(Qi,Jo,Ei)){if(on&&(Jo==="id"||Jo==="name")&&(Da(sf,cn),Ei=ni+Ei),bt&&typeof R=="object"&&typeof R.getAttributeType=="function"&&!af)switch(R.getAttributeType(Qi,Jo)){case"TrustedHTML":{Ei=bt.createHTML(Ei);break}case"TrustedScriptURL":{Ei=bt.createScriptURL(Ei);break}}try{af?cn.setAttributeNS(af,sf,Ei):cn.setAttribute(sf,Ei),zDt(a.removed)}catch{}}}eh("afterSanitizeAttributes",cn,null)},A0=function Bi(cn){let kr;const Ei=Dl(cn);for(eh("beforeSanitizeShadowDOM",cn,null);kr=Ei.nextNode();)eh("uponSanitizeShadowNode",kr,null),!ed(kr)&&(kr.content instanceof m&&Bi(kr.content),$d(kr));eh("afterSanitizeShadowDOM",cn,null)};return a.sanitize=function(Bi){let cn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},kr,Ei,Jo,wc;if(qa=!Bi,qa&&(Bi=""),typeof Bi!="string"&&!lw(Bi))if(typeof Bi.toString=="function"){if(Bi=Bi.toString(),typeof Bi!="string")throw UP("dirty is not a string, aborting")}else throw UP("toString is not a function");if(!a.isSupported)return Bi;if(re||Wu(cn),a.removed=[],typeof Bi=="string"&&(ws=!1),ws){if(Bi.nodeName){const sf=zs(Bi.nodeName);if(!Ct[sf]||gn[sf])throw UP("root node is forbidden and cannot be sanitized in-place")}}else if(Bi instanceof E)kr=Ha(""),Ei=kr.ownerDocument.importNode(Bi,!0),Ei.nodeType===1&&Ei.nodeName==="BODY"||Ei.nodeName==="HTML"?kr=Ei:kr.appendChild(Ei);else{if(!Pe&&!ke&&!zt&&Bi.indexOf("<")===-1)return bt&&Me?bt.createHTML(Bi):Bi;if(kr=Ha(Bi),!kr)return Pe?null:Me?mt:""}kr&&se&&pa(kr.firstChild);const rf=Dl(ws?Bi:kr);for(;Jo=rf.nextNode();)ed(Jo)||(Jo.content instanceof m&&A0(Jo.content),$d(Jo));if(ws)return Bi;if(Pe){if(te)for(wc=ut.call(kr.ownerDocument);kr.firstChild;)wc.appendChild(kr.firstChild);else wc=kr;return(Ht.shadowroot||Ht.shadowrootmode)&&(wc=X.call(f,wc,!0)),wc}let Oc=zt?kr.outerHTML:kr.innerHTML;return zt&&Ct["!doctype"]&&kr.ownerDocument&&kr.ownerDocument.doctype&&kr.ownerDocument.doctype.name&&Pb(WDt,kr.ownerDocument.doctype.name)&&(Oc=" -`+Oc),ke&&(Oc=tm(Oc,U," "),Oc=tm(Oc,Tt," "),Oc=tm(Oc,nt," ")),bt&&Me?bt.createHTML(Oc):Oc},a.setConfig=function(Bi){Wu(Bi),re=!0},a.clearConfig=function(){Du=null,re=!1},a.isValidAttribute=function(Bi,cn,kr){Du||Wu({});const Ei=zs(Bi),Jo=zs(cn);return jd(Ei,Jo,kr)},a.addHook=function(Bi,cn){typeof cn=="function"&&(pt[Bi]=pt[Bi]||[],GP(pt[Bi],cn))},a.removeHook=function(Bi){if(pt[Bi])return zDt(pt[Bi])},a.removeHooks=function(Bi){pt[Bi]&&(pt[Bi]=[])},a.removeAllHooks=function(){pt={}},a}var lW=KDt();const WP=//gi,YTe=i=>i?ZDt(i).replace(/\\n/g,"#br#").split("#br#"):[""],XDt=i=>lW.sanitize(i),QDt=(i,a)=>{var f;if(((f=a.flowchart)==null?void 0:f.htmlLabels)!==!1){const p=a.securityLevel;p==="antiscript"||p==="strict"?i=XDt(i):p!=="loose"&&(i=ZDt(i),i=i.replace(//g,">"),i=i.replace(/=/g,"="),i=ZTe(i))}return i},Q1=(i,a)=>i&&(a.dompurifyConfig?i=lW.sanitize(QDt(i,a),a.dompurifyConfig).toString():i=lW.sanitize(QDt(i,a),{FORBID_TAGS:["style"]}).toString(),i),KTe=(i,a)=>typeof i=="string"?Q1(i,a):i.flat().map(f=>Q1(f,a)),XTe=i=>WP.test(i),QTe=i=>i.split(WP),ZTe=i=>i.replace(/#br#/g,"
"),ZDt=i=>i.replace(WP,"#br#"),JTe=i=>{let a="";return i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replaceAll(/\(/g,"\\("),a=a.replaceAll(/\)/g,"\\)")),a},o1=i=>!(i===!1||["false","null","0"].includes(String(i).trim().toLowerCase())),tCe=function(...i){const a=i.filter(f=>!isNaN(f));return Math.max(...a)},eCe=function(...i){const a=i.filter(f=>!isNaN(f));return Math.min(...a)},YP=function(i){const a=i.split(/(,)/),f=[];for(let p=0;p0&&p+1Math.max(0,i.split(a).length-1),nCe=(i,a)=>{const f=K1t(i,"~"),p=K1t(a,"~");return f===1&&p===1},rCe=i=>{const a=K1t(i,"~");let f=!1;if(a<=1)return i;a%2!==0&&i.startsWith("~")&&(i=i.substring(1),f=!0);const p=[...i];let w=p.indexOf("~"),m=p.lastIndexOf("~");for(;w!==-1&&m!==-1&&w!==m;)p[w]="<",p[m]=">",w=p.indexOf("~"),m=p.lastIndexOf("~");return f&&p.unshift("~"),p.join("")},Kr={getRows:YTe,sanitizeText:Q1,sanitizeTextOrArray:KTe,hasBreaks:XTe,splitBreaks:QTe,lineBreakRegex:WP,removeScript:XDt,getUrl:JTe,evaluate:o1,getMax:tCe,getMin:eCe},hW={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const a=i/255;return i>.03928?Math.pow((a+.055)/1.055,2.4):a/12.92},hue2rgb:(i,a,f)=>(f<0&&(f+=1),f>1&&(f-=1),f<1/6?i+(a-i)*6*f:f<1/2?a:f<2/3?i+(a-i)*(2/3-f)*6:i),hsl2rgb:({h:i,s:a,l:f},p)=>{if(!a)return f*2.55;i/=360,a/=100,f/=100;const w=f<.5?f*(1+a):f+a-f*a,m=2*f-w;switch(p){case"r":return hW.hue2rgb(m,w,i+1/3)*255;case"g":return hW.hue2rgb(m,w,i)*255;case"b":return hW.hue2rgb(m,w,i-1/3)*255}},rgb2hsl:({r:i,g:a,b:f},p)=>{i/=255,a/=255,f/=255;const w=Math.max(i,a,f),m=Math.min(i,a,f),b=(w+m)/2;if(p==="l")return b*100;if(w===m)return 0;const E=w-m,_=b>.5?E/(2-w-m):E/(w+m);if(p==="s")return _*100;switch(w){case i:return((a-f)/E+(aa>f?Math.min(a,Math.max(f,i)):Math.min(f,Math.max(a,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const a=Math.round(i).toString(16);return a.length>1?a:`0${a}`}}},ok={};for(let i=0;i<=255;i++)ok[i]=ga.unit.dec2hex(i);const x0={ALL:0,RGB:1,HSL:2};class iCe{constructor(){this.type=x0.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=x0.ALL}is(a){return this.type===a}}const sCe=iCe;class aCe{constructor(a,f){this.color=f,this.changed=!1,this.data=a,this.type=new sCe}set(a,f){return this.color=f,this.changed=!1,this.data=a,this.type.type=x0.ALL,this}_ensureHSL(){const a=this.data,{h:f,s:p,l:w}=a;f===void 0&&(a.h=ga.channel.rgb2hsl(a,"h")),p===void 0&&(a.s=ga.channel.rgb2hsl(a,"s")),w===void 0&&(a.l=ga.channel.rgb2hsl(a,"l"))}_ensureRGB(){const a=this.data,{r:f,g:p,b:w}=a;f===void 0&&(a.r=ga.channel.hsl2rgb(a,"r")),p===void 0&&(a.g=ga.channel.hsl2rgb(a,"g")),w===void 0&&(a.b=ga.channel.hsl2rgb(a,"b"))}get r(){const a=this.data,f=a.r;return!this.type.is(x0.HSL)&&f!==void 0?f:(this._ensureHSL(),ga.channel.hsl2rgb(a,"r"))}get g(){const a=this.data,f=a.g;return!this.type.is(x0.HSL)&&f!==void 0?f:(this._ensureHSL(),ga.channel.hsl2rgb(a,"g"))}get b(){const a=this.data,f=a.b;return!this.type.is(x0.HSL)&&f!==void 0?f:(this._ensureHSL(),ga.channel.hsl2rgb(a,"b"))}get h(){const a=this.data,f=a.h;return!this.type.is(x0.RGB)&&f!==void 0?f:(this._ensureRGB(),ga.channel.rgb2hsl(a,"h"))}get s(){const a=this.data,f=a.s;return!this.type.is(x0.RGB)&&f!==void 0?f:(this._ensureRGB(),ga.channel.rgb2hsl(a,"s"))}get l(){const a=this.data,f=a.l;return!this.type.is(x0.RGB)&&f!==void 0?f:(this._ensureRGB(),ga.channel.rgb2hsl(a,"l"))}get a(){return this.data.a}set r(a){this.type.set(x0.RGB),this.changed=!0,this.data.r=a}set g(a){this.type.set(x0.RGB),this.changed=!0,this.data.g=a}set b(a){this.type.set(x0.RGB),this.changed=!0,this.data.b=a}set h(a){this.type.set(x0.HSL),this.changed=!0,this.data.h=a}set s(a){this.type.set(x0.HSL),this.changed=!0,this.data.s=a}set l(a){this.type.set(x0.HSL),this.changed=!0,this.data.l=a}set a(a){this.changed=!0,this.data.a=a}}const oCe=aCe,fW=new oCe({r:0,g:0,b:0,a:0},"transparent"),JDt={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:i=>{if(i.charCodeAt(0)!==35)return;const a=i.match(JDt.re);if(!a)return;const f=a[1],p=parseInt(f,16),w=f.length,m=w%4===0,b=w>4,E=b?1:17,_=b?8:4,A=m?0:-1,I=b?255:15;return fW.set({r:(p>>_*(A+3)&I)*E,g:(p>>_*(A+2)&I)*E,b:(p>>_*(A+1)&I)*E,a:m?(p&I)*E/255:1},i)},stringify:i=>{const{r:a,g:f,b:p,a:w}=i;return w<1?`#${ok[Math.round(a)]}${ok[Math.round(f)]}${ok[Math.round(p)]}${ok[Math.round(w*255)]}`:`#${ok[Math.round(a)]}${ok[Math.round(f)]}${ok[Math.round(p)]}`}},KP=JDt,dW={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:i=>{const a=i.match(dW.hueRe);if(a){const[,f,p]=a;switch(p){case"grad":return ga.channel.clamp.h(parseFloat(f)*.9);case"rad":return ga.channel.clamp.h(parseFloat(f)*180/Math.PI);case"turn":return ga.channel.clamp.h(parseFloat(f)*360)}}return ga.channel.clamp.h(parseFloat(i))},parse:i=>{const a=i.charCodeAt(0);if(a!==104&&a!==72)return;const f=i.match(dW.re);if(!f)return;const[,p,w,m,b,E]=f;return fW.set({h:dW._hue2deg(p),s:ga.channel.clamp.s(parseFloat(w)),l:ga.channel.clamp.l(parseFloat(m)),a:b?ga.channel.clamp.a(E?parseFloat(b)/100:parseFloat(b)):1},i)},stringify:i=>{const{h:a,s:f,l:p,a:w}=i;return w<1?`hsla(${ga.lang.round(a)}, ${ga.lang.round(f)}%, ${ga.lang.round(p)}%, ${w})`:`hsl(${ga.lang.round(a)}, ${ga.lang.round(f)}%, ${ga.lang.round(p)}%)`}},gW=dW,pW={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:i=>{i=i.toLowerCase();const a=pW.colors[i];if(a)return KP.parse(a)},stringify:i=>{const a=KP.stringify(i);for(const f in pW.colors)if(pW.colors[f]===a)return f}},tIt=pW,eIt={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:i=>{const a=i.charCodeAt(0);if(a!==114&&a!==82)return;const f=i.match(eIt.re);if(!f)return;const[,p,w,m,b,E,_,A,I]=f;return fW.set({r:ga.channel.clamp.r(w?parseFloat(p)*2.55:parseFloat(p)),g:ga.channel.clamp.g(b?parseFloat(m)*2.55:parseFloat(m)),b:ga.channel.clamp.b(_?parseFloat(E)*2.55:parseFloat(E)),a:A?ga.channel.clamp.a(I?parseFloat(A)/100:parseFloat(A)):1},i)},stringify:i=>{const{r:a,g:f,b:p,a:w}=i;return w<1?`rgba(${ga.lang.round(a)}, ${ga.lang.round(f)}, ${ga.lang.round(p)}, ${ga.lang.round(w)})`:`rgb(${ga.lang.round(a)}, ${ga.lang.round(f)}, ${ga.lang.round(p)})`}},bW=eIt,em={format:{keyword:tIt,hex:KP,rgb:bW,rgba:bW,hsl:gW,hsla:gW},parse:i=>{if(typeof i!="string")return i;const a=KP.parse(i)||bW.parse(i)||gW.parse(i)||tIt.parse(i);if(a)return a;throw new Error(`Unsupported color format: "${i}"`)},stringify:i=>!i.changed&&i.color?i.color:i.type.is(x0.HSL)||i.data.r===void 0?gW.stringify(i):i.a<1||!Number.isInteger(i.r)||!Number.isInteger(i.g)||!Number.isInteger(i.b)?bW.stringify(i):KP.stringify(i)},nIt=(i,a)=>{const f=em.parse(i);for(const p in a)f[p]=ga.channel.clamp[p](a[p]);return em.stringify(f)},FA=(i,a,f=0,p=1)=>{if(typeof i!="number")return nIt(i,{a});const w=fW.set({r:ga.channel.clamp.r(i),g:ga.channel.clamp.g(a),b:ga.channel.clamp.b(f),a:ga.channel.clamp.a(p)});return em.stringify(w)},cCe=(i,a)=>ga.lang.round(em.parse(i)[a]),uCe=i=>{const{r:a,g:f,b:p}=em.parse(i),w=.2126*ga.channel.toLinear(a)+.7152*ga.channel.toLinear(f)+.0722*ga.channel.toLinear(p);return ga.lang.round(w)},lCe=i=>uCe(i)>=.5,iT=i=>!lCe(i),rIt=(i,a,f)=>{const p=em.parse(i),w=p[a],m=ga.channel.clamp[a](w+f);return w!==m&&(p[a]=m),em.stringify(p)},bs=(i,a)=>rIt(i,"l",a),$s=(i,a)=>rIt(i,"l",-a),xn=(i,a)=>{const f=em.parse(i),p={};for(const w in a)a[w]&&(p[w]=f[w]+a[w]);return nIt(i,p)},hCe=(i,a,f=50)=>{const{r:p,g:w,b:m,a:b}=em.parse(i),{r:E,g:_,b:A,a:I}=em.parse(a),B=f/100,N=B*2-1,R=b-I,W=((N*R===-1?N:(N+R)/(1+N*R))+1)/2,et=1-W,st=p*W+E*et,at=w*W+_*et,bt=m*W+A*et,mt=b*B+I*(1-B);return FA(st,at,bt,mt)},Di=(i,a=100)=>{const f=em.parse(i);return f.r=255-f.r,f.g=255-f.g,f.b=255-f.b,hCe(f,i,a)},lg=(i,a)=>a?xn(i,{s:-40,l:10}):xn(i,{s:-40,l:-10}),wW="#ffffff",vW="#f2f2f2";let fCe=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var f,p,w,m,b,E,_,A,I,B,N;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||xn(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||xn(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||lg(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||lg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||lg(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||lg(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Di(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Di(this.tertiaryColor),this.lineColor=this.lineColor||Di(this.background),this.arrowheadColor=this.arrowheadColor||Di(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?$s(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||$s(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Di(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||bs(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||xn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||xn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||xn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||xn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||xn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||xn(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||xn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||xn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||xn(this.primaryColor,{h:330}),this.darkMode)for(let R=0;R{this[p]=a[p]}),this.updateColors(),f.forEach(p=>{this[p]=a[p]})}};const dCe=i=>{const a=new fCe;return a.calculate(i),a};let gCe=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=bs(this.primaryColor,16),this.tertiaryColor=xn(this.primaryColor,{h:-160}),this.primaryBorderColor=Di(this.background),this.secondaryBorderColor=lg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=lg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Di(this.primaryColor),this.secondaryTextColor=Di(this.secondaryColor),this.tertiaryTextColor=Di(this.tertiaryColor),this.lineColor=Di(this.background),this.textColor=Di(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=bs(Di("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=FA(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=$s("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=$s(this.sectionBkgColor,10),this.taskBorderColor=FA(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=FA(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var a,f,p,w,m,b,E,_,A,I,B;this.secondBkg=bs(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=bs(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=bs(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=xn(this.primaryColor,{h:64}),this.fillType3=xn(this.secondaryColor,{h:64}),this.fillType4=xn(this.primaryColor,{h:-64}),this.fillType5=xn(this.secondaryColor,{h:-64}),this.fillType6=xn(this.primaryColor,{h:128}),this.fillType7=xn(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||xn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||xn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||xn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||xn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||xn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||xn(this.primaryColor,{h:210}),this.cScale9=this.cScale9||xn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||xn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||xn(this.primaryColor,{h:330});for(let N=0;N{this[p]=a[p]}),this.updateColors(),f.forEach(p=>{this[p]=a[p]})}};const pCe=i=>{const a=new gCe;return a.calculate(i),a};let bCe=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=xn(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=xn(this.primaryColor,{h:-160}),this.primaryBorderColor=lg(this.primaryColor,this.darkMode),this.secondaryBorderColor=lg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=lg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Di(this.primaryColor),this.secondaryTextColor=Di(this.secondaryColor),this.tertiaryTextColor=Di(this.tertiaryColor),this.lineColor=Di(this.background),this.textColor=Di(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=FA(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var a,f,p,w,m,b,E,_,A,I,B;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||xn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||xn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||xn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||xn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||xn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||xn(this.primaryColor,{h:210}),this.cScale9=this.cScale9||xn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||xn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||xn(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||$s(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||$s(this.tertiaryColor,40);for(let N=0;N{this[p]=a[p]}),this.updateColors(),f.forEach(p=>{this[p]=a[p]})}};const X1t=i=>{const a=new bCe;return a.calculate(i),a};let wCe=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=bs("#cde498",10),this.primaryBorderColor=lg(this.primaryColor,this.darkMode),this.secondaryBorderColor=lg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=lg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Di(this.primaryColor),this.secondaryTextColor=Di(this.secondaryColor),this.tertiaryTextColor=Di(this.primaryColor),this.lineColor=Di(this.background),this.textColor=Di(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var a,f,p,w,m,b,E,_,A,I,B;this.actorBorder=$s(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||xn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||xn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||xn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||xn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||xn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||xn(this.primaryColor,{h:210}),this.cScale9=this.cScale9||xn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||xn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||xn(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||$s(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||$s(this.tertiaryColor,40);for(let N=0;N{this[p]=a[p]}),this.updateColors(),f.forEach(p=>{this[p]=a[p]})}};const vCe=i=>{const a=new wCe;return a.calculate(i),a};class mCe{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=bs(this.contrast,55),this.background="#ffffff",this.tertiaryColor=xn(this.primaryColor,{h:-160}),this.primaryBorderColor=lg(this.primaryColor,this.darkMode),this.secondaryBorderColor=lg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=lg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Di(this.primaryColor),this.secondaryTextColor=Di(this.secondaryColor),this.tertiaryTextColor=Di(this.tertiaryColor),this.lineColor=Di(this.background),this.textColor=Di(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var a,f,p,w,m,b,E,_,A,I,B;this.secondBkg=bs(this.contrast,55),this.border2=this.contrast,this.actorBorder=bs(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let N=0;N{this[p]=a[p]}),this.updateColors(),f.forEach(p=>{this[p]=a[p]})}}const T5={base:{getThemeVariables:dCe},dark:{getThemeVariables:pCe},default:{getThemeVariables:X1t},forest:{getThemeVariables:vCe},neutral:{getThemeVariables:i=>{const a=new mCe;return a.calculate(i),a}}},C5={flowchart:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},theme:"default",maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,fontSize:16},iIt={...C5,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:T5.default.getThemeVariables(),sequence:{...C5.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...C5.gantt,tickInterval:void 0,useWidth:void 0},c4:{...C5.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...C5.pie,useWidth:984},xyChart:{...C5.xyChart,useWidth:void 0},requirement:{...C5.requirement,useWidth:void 0},gitGraph:{...C5.gitGraph,useMaxWidth:!1},sankey:{...C5.sankey,useMaxWidth:!1}},sIt=(i,a="")=>Object.keys(i).reduce((f,p)=>Array.isArray(i[p])?f:typeof i[p]=="object"&&i[p]!==null?[...f,a+p,...sIt(i[p],"")]:[...f,a+p],[]),yCe=new Set(sIt(iIt,"")),Zh=iIt,mW=i=>{if(Ut.debug("sanitizeDirective called with",i),!(typeof i!="object"||i==null)){if(Array.isArray(i)){i.forEach(a=>mW(a));return}for(const a of Object.keys(i)){if(Ut.debug("Checking key",a),a.startsWith("__")||a.includes("proto")||a.includes("constr")||!yCe.has(a)||i[a]==null){Ut.debug("sanitize deleting key: ",a),delete i[a];continue}if(typeof i[a]=="object"){Ut.debug("sanitizing object",a),mW(i[a]);continue}const f=["themeCSS","fontFamily","altFontFamily"];for(const p of f)a.includes(p)&&(Ut.debug("sanitizing css option",a),i[a]=xCe(i[a]))}if(i.themeVariables)for(const a of Object.keys(i.themeVariables)){const f=i.themeVariables[a];f!=null&&f.match&&!f.match(/^[\d "#%(),.;A-Za-z]+$/)&&(i.themeVariables[a]="")}Ut.debug("After sanitization",i)}},xCe=i=>{let a=0,f=0;for(const p of i){if(a{for(const{id:a,detector:f,loader:p}of i)uIt(a,f,p)},uIt=(i,a,f)=>{NA[i]?Ut.error(`Detector with key ${i} already exists`):NA[i]={detector:a,loader:f},Ut.debug(`Detector with key ${i} added${f?" with loader":""}`)},ECe=i=>NA[i].loader,Q1t=(i,a,{depth:f=2,clobber:p=!1}={})=>{const w={depth:f,clobber:p};return Array.isArray(a)&&!Array.isArray(i)?(a.forEach(m=>Q1t(i,m,w)),i):Array.isArray(a)&&Array.isArray(i)?(a.forEach(m=>{i.includes(m)||i.push(m)}),i):i===void 0||f<=0?i!=null&&typeof i=="object"&&typeof a=="object"?Object.assign(i,a):a:(a!==void 0&&typeof i=="object"&&typeof a=="object"&&Object.keys(a).forEach(m=>{typeof a[m]=="object"&&(i[m]===void 0||typeof i[m]=="object")?(i[m]===void 0&&(i[m]=Array.isArray(a[m])?[]:{}),i[m]=Q1t(i[m],a[m],{depth:f-1,clobber:p})):(p||typeof i[m]!="object"&&typeof a[m]!="object")&&(i[m]=a[m])}),i)},Z1=Q1t;var TCe=typeof global=="object"&&global&&global.Object===Object&&global;const lIt=TCe;var CCe=typeof self=="object"&&self&&self.Object===Object&&self,_Ce=lIt||CCe||Function("return this")();const nm=_Ce;var SCe=nm.Symbol;const tw=SCe;var hIt=Object.prototype,ACe=hIt.hasOwnProperty,LCe=hIt.toString,QP=tw?tw.toStringTag:void 0;function MCe(i){var a=ACe.call(i,QP),f=i[QP];try{i[QP]=void 0;var p=!0}catch{}var w=LCe.call(i);return p&&(a?i[QP]=f:delete i[QP]),w}var DCe=Object.prototype,ICe=DCe.toString;function OCe(i){return ICe.call(i)}var PCe="[object Null]",FCe="[object Undefined]",fIt=tw?tw.toStringTag:void 0;function sT(i){return i==null?i===void 0?FCe:PCe:fIt&&fIt in Object(i)?MCe(i):OCe(i)}function Fb(i){var a=typeof i;return i!=null&&(a=="object"||a=="function")}var NCe="[object AsyncFunction]",BCe="[object Function]",RCe="[object GeneratorFunction]",jCe="[object Proxy]";function BA(i){if(!Fb(i))return!1;var a=sT(i);return a==BCe||a==RCe||a==NCe||a==jCe}var $Ce=nm["__core-js_shared__"];const Z1t=$Ce;var dIt=function(){var i=/[^.]+$/.exec(Z1t&&Z1t.keys&&Z1t.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function zCe(i){return!!dIt&&dIt in i}var qCe=Function.prototype,HCe=qCe.toString;function aT(i){if(i!=null){try{return HCe.call(i)}catch{}try{return i+""}catch{}}return""}var VCe=/[\\^$.*+?()[\]{}|]/g,GCe=/^\[object .+?Constructor\]$/,UCe=Function.prototype,WCe=Object.prototype,YCe=UCe.toString,KCe=WCe.hasOwnProperty,XCe=RegExp("^"+YCe.call(KCe).replace(VCe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function QCe(i){if(!Fb(i)||zCe(i))return!1;var a=BA(i)?XCe:GCe;return a.test(aT(i))}function ZCe(i,a){return i==null?void 0:i[a]}function oT(i,a){var f=ZCe(i,a);return QCe(f)?f:void 0}var JCe=oT(Object,"create");const ZP=JCe;function t9e(){this.__data__=ZP?ZP(null):{},this.size=0}function e9e(i){var a=this.has(i)&&delete this.__data__[i];return this.size-=a?1:0,a}var n9e="__lodash_hash_undefined__",r9e=Object.prototype,i9e=r9e.hasOwnProperty;function s9e(i){var a=this.__data__;if(ZP){var f=a[i];return f===n9e?void 0:f}return i9e.call(a,i)?a[i]:void 0}var a9e=Object.prototype,o9e=a9e.hasOwnProperty;function c9e(i){var a=this.__data__;return ZP?a[i]!==void 0:o9e.call(a,i)}var u9e="__lodash_hash_undefined__";function l9e(i,a){var f=this.__data__;return this.size+=this.has(i)?0:1,f[i]=ZP&&a===void 0?u9e:a,this}function cT(i){var a=-1,f=i==null?0:i.length;for(this.clear();++a-1}function w9e(i,a){var f=this.__data__,p=xW(f,i);return p<0?(++this.size,f.push([i,a])):f[p][1]=a,this}function _5(i){var a=-1,f=i==null?0:i.length;for(this.clear();++a-1&&i%1==0&&i<=U9e}function ck(i){return i!=null&&rdt(i.length)&&!BA(i)}function _It(i){return f3(i)&&ck(i)}function W9e(){return!1}var SIt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,AIt=SIt&&typeof module=="object"&&module&&!module.nodeType&&module,Y9e=AIt&&AIt.exports===SIt,LIt=Y9e?nm.Buffer:void 0,K9e=LIt?LIt.isBuffer:void 0,X9e=K9e||W9e;const zA=X9e;var Q9e="[object Object]",Z9e=Function.prototype,J9e=Object.prototype,MIt=Z9e.toString,t_e=J9e.hasOwnProperty,e_e=MIt.call(Object);function DIt(i){if(!f3(i)||sT(i)!=Q9e)return!1;var a=ndt(i);if(a===null)return!0;var f=t_e.call(a,"constructor")&&a.constructor;return typeof f=="function"&&f instanceof f&&MIt.call(f)==e_e}var n_e="[object Arguments]",r_e="[object Array]",i_e="[object Boolean]",s_e="[object Date]",a_e="[object Error]",o_e="[object Function]",c_e="[object Map]",u_e="[object Number]",l_e="[object Object]",h_e="[object RegExp]",f_e="[object Set]",d_e="[object String]",g_e="[object WeakMap]",p_e="[object ArrayBuffer]",b_e="[object DataView]",w_e="[object Float32Array]",v_e="[object Float64Array]",m_e="[object Int8Array]",y_e="[object Int16Array]",x_e="[object Int32Array]",k_e="[object Uint8Array]",E_e="[object Uint8ClampedArray]",T_e="[object Uint16Array]",C_e="[object Uint32Array]",bl={};bl[w_e]=bl[v_e]=bl[m_e]=bl[y_e]=bl[x_e]=bl[k_e]=bl[E_e]=bl[T_e]=bl[C_e]=!0,bl[n_e]=bl[r_e]=bl[p_e]=bl[i_e]=bl[b_e]=bl[s_e]=bl[a_e]=bl[o_e]=bl[c_e]=bl[u_e]=bl[l_e]=bl[h_e]=bl[f_e]=bl[d_e]=bl[g_e]=!1;function __e(i){return f3(i)&&rdt(i.length)&&!!bl[sT(i)]}function SW(i){return function(a){return i(a)}}var IIt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tF=IIt&&typeof module=="object"&&module&&!module.nodeType&&module,S_e=tF&&tF.exports===IIt,idt=S_e&&lIt.process,A_e=function(){try{var i=tF&&tF.require&&tF.require("util").types;return i||idt&&idt.binding&&idt.binding("util")}catch{}}();const qA=A_e;var OIt=qA&&qA.isTypedArray,L_e=OIt?SW(OIt):__e;const AW=L_e;function sdt(i,a){if(!(a==="constructor"&&typeof i[a]=="function")&&a!="__proto__")return i[a]}var M_e=Object.prototype,D_e=M_e.hasOwnProperty;function LW(i,a,f){var p=i[a];(!(D_e.call(i,a)&&RA(p,f))||f===void 0&&!(a in i))&&TW(i,a,f)}function eF(i,a,f,p){var w=!f;f||(f={});for(var m=-1,b=a.length;++m-1&&i%1==0&&i0){if(++a>=U_e)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}var X_e=K_e(G_e);const RIt=X_e;function DW(i,a){return RIt(BIt(i,a,lT),i+"")}function nF(i,a,f){if(!Fb(f))return!1;var p=typeof a;return(p=="number"?ck(f)&&MW(a,f.length):p=="string"&&a in f)?RA(f[a],i):!1}function Q_e(i){return DW(function(a,f){var p=-1,w=f.length,m=w>1?f[w-1]:void 0,b=w>2?f[2]:void 0;for(m=i.length>3&&typeof m=="function"?(w--,m):void 0,b&&nF(f[0],f[1],b)&&(m=w<3?void 0:m,w=1),a=Object(a);++pE.args);mW(b),p=Z1(p,[...b])}else p=f.args;if(!p)return;let w=yW(i,a);const m="config";return p[m]!==void 0&&(w==="flowchart-v2"&&(w="flowchart"),p[w]=p[m],delete p[m]),p},$It=function(i,a=null){try{const f=new RegExp(`[%]{2}(?![{]${tSe.source})(?=[}][%]{2}).* -`,"ig");i=i.trim().replace(f,"").replace(/'/gm,'"'),Ut.debug(`Detecting diagram directive${a!==null?" type:"+a:""} based on the text:${i}`);let p;const w=[];for(;(p=XP.exec(i))!==null;)if(p.index===XP.lastIndex&&XP.lastIndex++,p&&!a||a&&p[1]&&p[1].match(a)||a&&p[2]&&p[2].match(a)){const m=p[1]?p[1]:p[2],b=p[3]?p[3].trim():p[4]?JSON.parse(p[4].trim()):null;w.push({type:m,args:b})}return w.length===0?{type:i,args:null}:w.length===1?w[0]:w}catch(f){return Ut.error(`ERROR: ${f.message} - Unable to parse directive type: '${a}' based on the text: '${i}'`),{type:void 0,args:null}}},nSe=function(i){return i.replace(XP,"")},rSe=function(i,a){for(const[f,p]of a.entries())if(p.match(i))return f;return-1};function ew(i,a){if(!i)return a;const f=`curve${i.charAt(0).toUpperCase()+i.slice(1)}`;return J_e[f]??a}function iSe(i,a){const f=i.trim();if(f)return a.securityLevel!=="loose"?ik(f):f}const sSe=(i,...a)=>{const f=i.split("."),p=f.length-1,w=f[p];let m=window;for(let b=0;b{f+=zIt(w,a),a=w});const p=f/2;return adt(i,p)}function oSe(i){return i.length===1?i[0]:aSe(i)}const qIt=(i,a=2)=>{const f=Math.pow(10,a);return Math.round(i*f)/f},adt=(i,a)=>{let f,p=a;for(const w of i){if(f){const m=zIt(w,f);if(m=1)return{x:w.x,y:w.y};if(b>0&&b<1)return{x:qIt((1-b)*f.x+b*w.x,5),y:qIt((1-b)*f.y+b*w.y,5)}}}f=w}throw new Error("Could not find a suitable point for the given distance")},cSe=(i,a,f)=>{Ut.info(`our points ${JSON.stringify(a)}`),a[0]!==f&&(a=a.reverse());const w=adt(a,25),m=i?10:5,b=Math.atan2(a[0].y-w.y,a[0].x-w.x),E={x:0,y:0};return E.x=Math.sin(b)*m+(a[0].x+w.x)/2,E.y=-Math.cos(b)*m+(a[0].y+w.y)/2,E};function uSe(i,a,f){const p=structuredClone(f);Ut.info("our points",p),a!=="start_left"&&a!=="start_right"&&p.reverse();const w=25+i,m=adt(p,w),b=10+i*.5,E=Math.atan2(p[0].y-m.y,p[0].x-m.x),_={x:0,y:0};return a==="start_left"?(_.x=Math.sin(E+Math.PI)*b+(p[0].x+m.x)/2,_.y=-Math.cos(E+Math.PI)*b+(p[0].y+m.y)/2):a==="end_right"?(_.x=Math.sin(E-Math.PI)*b+(p[0].x+m.x)/2-5,_.y=-Math.cos(E-Math.PI)*b+(p[0].y+m.y)/2-5):a==="end_left"?(_.x=Math.sin(E)*b+(p[0].x+m.x)/2-5,_.y=-Math.cos(E)*b+(p[0].y+m.y)/2-5):(_.x=Math.sin(E)*b+(p[0].x+m.x)/2,_.y=-Math.cos(E)*b+(p[0].y+m.y)/2),_}function im(i){let a="",f="";for(const p of i)p!==void 0&&(p.startsWith("color:")||p.startsWith("text-align:")?f=f+p+";":a=a+p+";");return{style:a,labelStyle:f}}let HIt=0;const VIt=()=>(HIt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+HIt);function lSe(i){let a="";const f="0123456789abcdef",p=f.length;for(let w=0;wlSe(i.length),hSe=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},fSe=function(i,a){const f=a.text.replace(Kr.lineBreakRegex," "),[,p]=VA(a.fontSize),w=i.append("text");w.attr("x",a.x),w.attr("y",a.y),w.style("text-anchor",a.anchor),w.style("font-family",a.fontFamily),w.style("font-size",p),w.style("font-weight",a.fontWeight),w.attr("fill",a.fill),a.class!==void 0&&w.attr("class",a.class);const m=w.append("tspan");return m.attr("x",a.x+a.textMargin*2),m.attr("fill",a.fill),m.text(f),w},UIt=jA((i,a,f)=>{if(!i||(f=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},f),Kr.lineBreakRegex.test(i)))return i;const p=i.split(" "),w=[];let m="";return p.forEach((b,E)=>{const _=d3(`${b} `,f),A=d3(m,f);if(_>a){const{hyphenatedStrings:N,remainingWord:R}=dSe(b,a,"-",f);w.push(m,...N),m=R}else A+_>=a?(w.push(m),m=b):m=[m,b].filter(Boolean).join(" ");E+1===p.length&&w.push(m)}),w.filter(b=>b!=="").join(f.joinWith)},(i,a,f)=>`${i}${a}${f.fontSize}${f.fontWeight}${f.fontFamily}${f.joinWith}`),dSe=jA((i,a,f="-",p)=>{p=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},p);const w=[...i],m=[];let b="";return w.forEach((E,_)=>{const A=`${b}${E}`;if(d3(A,p)>=a){const B=_+1,N=w.length===B,R=`${A}${f}`;m.push(N?A:R),b=""}else b=A}),{hyphenatedStrings:m,remainingWord:b}},(i,a,f="-",p)=>`${i}${a}${f}${p.fontSize}${p.fontWeight}${p.fontFamily}`);function odt(i,a){return cdt(i,a).height}function d3(i,a){return cdt(i,a).width}const cdt=jA((i,a)=>{const{fontSize:f=12,fontFamily:p="Arial",fontWeight:w=400}=a;if(!i)return{width:0,height:0};const[,m]=VA(f),b=["sans-serif",p],E=i.split(Kr.lineBreakRegex),_=[],A=yr("body");if(!A.remove)return{width:0,height:0,lineHeight:0};const I=A.append("svg");for(const N of b){let R=0;const z={width:0,height:0,lineHeight:0};for(const W of E){const et=hSe();et.text=W||jIt;const st=fSe(I,et).style("font-size",m).style("font-weight",w).style("font-family",N),at=(st._groups||st)[0][0].getBBox();if(at.width===0&&at.height===0)throw new Error("svg element not in render tree");z.width=Math.round(Math.max(z.width,at.width)),R=Math.round(at.height),z.height+=R,z.lineHeight=Math.round(Math.max(z.lineHeight,R))}_.push(z)}I.remove();const B=isNaN(_[1].height)||isNaN(_[1].width)||isNaN(_[1].lineHeight)||_[0].height>_[1].height&&_[0].width>_[1].width&&_[0].lineHeight>_[1].lineHeight?0:1;return _[B]},(i,a)=>`${i}${a.fontSize}${a.fontWeight}${a.fontFamily}`);class gSe{constructor(a=!1,f){this.count=0,this.count=f?f.length:0,this.next=a?()=>this.count++:()=>Date.now()}}let OW;const pSe=function(i){return OW=OW||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),OW.innerHTML=i,unescape(OW.textContent)};function WIt(i){return"str"in i}const bSe=(i,a,f,p)=>{var m;if(!p)return;const w=(m=i.node())==null?void 0:m.getBBox();w&&i.append("text").text(p).attr("x",w.x+w.width/2).attr("y",-f).attr("class",a)},VA=i=>{if(typeof i=="number")return[i,i+"px"];const a=parseInt(i??"",10);return Number.isNaN(a)?[void 0,void 0]:i===String(a)?[a,i+"px"]:[a,i]};function rF(i,a){return IW({},i,a)}const $a={assignWithDepth:Z1,wrapLabel:UIt,calculateTextHeight:odt,calculateTextWidth:d3,calculateTextDimensions:cdt,cleanAndMerge:rF,detectInit:eSe,detectDirective:$It,isSubstringInArray:rSe,interpolateToCurve:ew,calcLabelPosition:oSe,calcCardinalityPosition:cSe,calcTerminalLabelPosition:uSe,formatUrl:iSe,getStylesFromArray:im,generateId:VIt,random:GIt,runFunc:sSe,entityDecode:pSe,insertTitle:bSe,parseFontSize:VA,InitIDGenerator:gSe};var YIt="comm",KIt="rule",XIt="decl",wSe="@import",vSe="@keyframes",mSe=Math.abs,udt=String.fromCharCode;function QIt(i){return i.trim()}function ldt(i,a,f){return i.replace(a,f)}function ySe(i,a){return i.indexOf(a)}function iF(i,a){return i.charCodeAt(a)|0}function sF(i,a,f){return i.slice(a,f)}function uk(i){return i.length}function ZIt(i){return i.length}function PW(i,a){return a.push(i),i}var FW=1,GA=1,JIt=0,nw=0,Of=0,UA="";function hdt(i,a,f,p,w,m,b){return{value:i,root:a,parent:f,type:p,props:w,children:m,line:FW,column:GA,length:b,return:""}}function xSe(){return Of}function kSe(){return Of=nw>0?iF(UA,--nw):0,GA--,Of===10&&(GA=1,FW--),Of}function sm(){return Of=nw2||fdt(Of)>3?"":" "}function _Se(i,a){for(;--a&&sm()&&!(Of<48||Of>102||Of>57&&Of<65||Of>70&&Of<97););return BW(i,NW()+(a<6&&hT()==32&&sm()==32))}function gdt(i){for(;sm();)switch(Of){case i:return nw;case 34:case 39:i!==34&&i!==39&&gdt(Of);break;case 40:i===41&&gdt(i);break;case 92:sm();break}return nw}function SSe(i,a){for(;sm()&&i+Of!==47+10;)if(i+Of===42+42&&hT()===47)break;return"/*"+BW(a,nw-1)+"*"+udt(i===47?i:sm())}function ASe(i){for(;!fdt(hT());)sm();return BW(i,nw)}function LSe(i){return TSe(RW("",null,null,null,[""],i=ESe(i),0,[0],i))}function RW(i,a,f,p,w,m,b,E,_){for(var A=0,I=0,B=b,N=0,R=0,z=0,W=1,et=1,st=1,at=0,bt="",mt=w,yt=m,ft=p,ut=bt;et;)switch(z=at,at=sm()){case 40:if(z!=108&&iF(ut,B-1)==58){ySe(ut+=ldt(ddt(at),"&","&\f"),"&\f")!=-1&&(st=-1);break}case 34:case 39:case 91:ut+=ddt(at);break;case 9:case 10:case 13:case 32:ut+=CSe(z);break;case 92:ut+=_Se(NW()-1,7);continue;case 47:switch(hT()){case 42:case 47:PW(MSe(SSe(sm(),NW()),a,f),_);break;default:ut+="/"}break;case 123*W:E[A++]=uk(ut)*st;case 125*W:case 59:case 0:switch(at){case 0:case 125:et=0;case 59+I:R>0&&uk(ut)-B&&PW(R>32?eOt(ut+";",p,f,B-1):eOt(ldt(ut," ","")+";",p,f,B-2),_);break;case 59:ut+=";";default:if(PW(ft=tOt(ut,a,f,A,I,w,E,bt,mt=[],yt=[],B),m),at===123)if(I===0)RW(ut,a,ft,ft,mt,m,B,E,yt);else switch(N===99&&iF(ut,3)===110?100:N){case 100:case 109:case 115:RW(i,ft,ft,p&&PW(tOt(i,ft,ft,0,0,w,E,bt,w,mt=[],B),yt),w,yt,B,E,p?mt:yt);break;default:RW(ut,ft,ft,ft,[""],yt,0,E,yt)}}A=I=R=0,W=st=1,bt=ut="",B=b;break;case 58:B=1+uk(ut),R=z;default:if(W<1){if(at==123)--W;else if(at==125&&W++==0&&kSe()==125)continue}switch(ut+=udt(at),at*W){case 38:st=I>0?1:(ut+="\f",-1);break;case 44:E[A++]=(uk(ut)-1)*st,st=1;break;case 64:hT()===45&&(ut+=ddt(sm())),N=hT(),I=B=uk(bt=ut+=ASe(NW())),at++;break;case 45:z===45&&uk(ut)==2&&(W=0)}}return m}function tOt(i,a,f,p,w,m,b,E,_,A,I){for(var B=w-1,N=w===0?m:[""],R=ZIt(N),z=0,W=0,et=0;z0?N[st]+" "+at:ldt(at,/&\f/g,N[st])))&&(_[et++]=bt);return hdt(i,a,f,w===0?KIt:E,_,A,I)}function MSe(i,a,f){return hdt(i,a,f,YIt,udt(xSe()),sF(i,2,-2),0)}function eOt(i,a,f,p){return hdt(i,a,f,XIt,sF(i,0,p),sF(i,p+1,-1),p)}function pdt(i,a){for(var f="",p=ZIt(i),w=0;w{let f=Z1({},i),p={};for(const w of a)aOt(w),p=Z1(p,w);if(f=Z1(f,p),p.theme&&p.theme in T5){const w=Z1({},rOt),m=Z1(w.themeVariables||{},p.themeVariables);f.theme&&f.theme in T5&&(f.themeVariables=T5[f.theme].getThemeVariables(m))}return aF=f,cOt(aF),aF},ISe=i=>(fp=Z1({},WA),fp=Z1(fp,i),i.theme&&T5[i.theme]&&(fp.themeVariables=T5[i.theme].getThemeVariables(i.themeVariables)),jW(fp,YA),fp),OSe=i=>{rOt=Z1({},i)},PSe=i=>(fp=Z1(fp,i),jW(fp,YA),fp),iOt=()=>Z1({},fp),sOt=i=>(cOt(i),Z1(aF,i),Fd()),Fd=()=>Z1({},aF),aOt=i=>{i&&(["secure",...fp.secure??[]].forEach(a=>{Object.hasOwn(i,a)&&(Ut.debug(`Denied attempt to modify a secure key ${a}`,i[a]),delete i[a])}),Object.keys(i).forEach(a=>{a.startsWith("__")&&delete i[a]}),Object.keys(i).forEach(a=>{typeof i[a]=="string"&&(i[a].includes("<")||i[a].includes(">")||i[a].includes("url(data:"))&&delete i[a],typeof i[a]=="object"&&aOt(i[a])}))},FSe=i=>{mW(i),i.fontFamily&&(!i.themeVariables||!i.themeVariables.fontFamily)&&(i.themeVariables={fontFamily:i.fontFamily}),YA.push(i),jW(fp,YA)},$W=(i=fp)=>{YA=[],jW(i,YA)},NSe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},oOt={},BSe=i=>{oOt[i]||(Ut.warn(NSe[i]),oOt[i]=!0)},cOt=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&BSe("LAZY_LOAD_DEPRECATED")},uOt="c4",RSe={id:uOt,detector:i=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>nIe);return{id:uOt,diagram:i}}},lOt="flowchart",jSe={id:lOt,detector:(i,a)=>{var f,p;return((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="dagre-wrapper"||((p=a==null?void 0:a.flowchart)==null?void 0:p.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>cze);return{id:lOt,diagram:i}}},hOt="flowchart-v2",$Se={id:hOt,detector:(i,a)=>{var f,p,w;return((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="dagre-d3"||((p=a==null?void 0:a.flowchart)==null?void 0:p.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)&&((w=a==null?void 0:a.flowchart)==null?void 0:w.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>uze);return{id:hOt,diagram:i}}},fOt="er",zSe={id:fOt,detector:i=>/^\s*erDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Fze);return{id:fOt,diagram:i}}},dOt="gitGraph",qSe={id:dOt,detector:i=>/^\s*gitGraph/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>aqe);return{id:dOt,diagram:i}}},gOt="gantt",HSe={id:gOt,detector:i=>/^\s*gantt/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Kqe);return{id:gOt,diagram:i}}},pOt="info",VSe={id:pOt,detector:i=>/^\s*info/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Qqe);return{id:pOt,diagram:i}}},bOt="pie",GSe={id:bOt,detector:i=>/^\s*pie/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>rHe);return{id:bOt,diagram:i}}},wOt="quadrantChart",USe={id:wOt,detector:i=>/^\s*quadrantChart/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>mHe);return{id:wOt,diagram:i}}},vOt="xychart",WSe={id:vOt,detector:i=>/^\s*xychart-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>HHe);return{id:vOt,diagram:i}}},mOt="requirement",YSe={id:mOt,detector:i=>/^\s*requirement(Diagram)?/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>JHe);return{id:mOt,diagram:i}}},yOt="sequence",KSe={id:yOt,detector:i=>/^\s*sequenceDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>iGe);return{id:yOt,diagram:i}}},xOt="class",XSe={id:xOt,detector:(i,a)=>{var f;return((f=a==null?void 0:a.class)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>AGe);return{id:xOt,diagram:i}}},kOt="classDiagram",QSe={id:kOt,detector:(i,a)=>{var f;return/^\s*classDiagram/.test(i)&&((f=a==null?void 0:a.class)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>PGe);return{id:kOt,diagram:i}}},EOt="state",ZSe={id:EOt,detector:(i,a)=>{var f;return((f=a==null?void 0:a.state)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>xUe);return{id:EOt,diagram:i}}},TOt="stateDiagram",JSe={id:TOt,detector:(i,a)=>{var f;return!!(/^\s*stateDiagram-v2/.test(i)||/^\s*stateDiagram/.test(i)&&((f=a==null?void 0:a.state)==null?void 0:f.defaultRenderer)==="dagre-wrapper")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>$Ue);return{id:TOt,diagram:i}}},COt="journey",tAe={id:COt,detector:i=>/^\s*journey/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>sWe);return{id:COt,diagram:i}}},eAe=function(i,a){for(let f of a)i.attr(f[0],f[1])},nAe=function(i,a,f){let p=new Map;return f?(p.set("width","100%"),p.set("style",`max-width: ${a}px;`)):(p.set("height",i),p.set("width",a)),p},k0=function(i,a,f,p){const w=nAe(a,f,p);eAe(i,w)},fT=function(i,a,f,p){const w=a.node().getBBox(),m=w.width,b=w.height;Ut.info(`SVG bounds: ${m}x${b}`,w);let E=0,_=0;Ut.info(`Graph bounds: ${E}x${_}`,i),E=m+f*2,_=b+f*2,Ut.info(`Calculated bounds: ${E}x${_}`),k0(a,_,E,p);const A=`${w.x-f} ${w.y-f} ${w.width+2*f} ${w.height+2*f}`;a.attr("viewBox",A)},zW={},rAe=(i,a,f)=>{let p="";return i in zW&&zW[i]?p=zW[i](f):Ut.warn(`No theme found for ${i}`),` & { - font-family: ${f.fontFamily}; - font-size: ${f.fontSize}; - fill: ${f.textColor} - } - - /* Classes common for multiple diagrams */ - - & .error-icon { - fill: ${f.errorBkgColor}; - } - & .error-text { - fill: ${f.errorTextColor}; - stroke: ${f.errorTextColor}; - } - - & .edge-thickness-normal { - stroke-width: 2px; - } - & .edge-thickness-thick { - stroke-width: 3.5px - } - & .edge-pattern-solid { - stroke-dasharray: 0; - } - - & .edge-pattern-dashed{ - stroke-dasharray: 3; - } - .edge-pattern-dotted { - stroke-dasharray: 2; - } - - & .marker { - fill: ${f.lineColor}; - stroke: ${f.lineColor}; - } - & .marker.cross { - stroke: ${f.lineColor}; - } - - & svg { - font-family: ${f.fontFamily}; - font-size: ${f.fontSize}; - } - - ${p} - - ${a} -`},iAe=(i,a)=>{a!==void 0&&(zW[i]=a)},sAe=rAe;let bdt="",wdt="",vdt="";const mdt=i=>Q1(i,Fd()),hg=()=>{bdt="",vdt="",wdt=""},E0=i=>{bdt=mdt(i).replace(/^\s+/g,"")},fg=()=>bdt,dg=i=>{vdt=mdt(i).replace(/\n\s+/g,` -`)},gg=()=>vdt,Nb=i=>{wdt=mdt(i)},pg=()=>wdt,_Ot=Object.freeze(Object.defineProperty({__proto__:null,clear:hg,getAccDescription:gg,getAccTitle:fg,getDiagramTitle:pg,setAccDescription:dg,setAccTitle:E0,setDiagramTitle:Nb},Symbol.toStringTag,{value:"Module"})),aAe=Ut,oAe=Xft,Oe=Fd,cAe=sOt,SOt=WA,uAe=i=>Q1(i,Oe()),AOt=fT,lAe=()=>_Ot,qW={},HW=(i,a,f)=>{var p;if(qW[i])throw new Error(`Diagram ${i} already registered.`);qW[i]=a,f&&uIt(i,f),iAe(i,a.styles),(p=a.injectUtils)==null||p.call(a,aAe,oAe,Oe,uAe,AOt,lAe(),()=>{})},ydt=i=>{if(i in qW)return qW[i];throw new hAe(i)};class hAe extends Error{constructor(a){super(`Diagram ${a} not found.`)}}const VW=i=>{var w;const{securityLevel:a}=Oe();let f=yr("body");if(a==="sandbox"){const b=((w=yr(`#i${i}`).node())==null?void 0:w.contentDocument)??document;f=yr(b.body)}return f.select(`#${i}`)},LOt={draw:(i,a,f)=>{Ut.debug(`renering svg for syntax error -`);const p=VW(a);p.attr("viewBox","0 0 2412 512"),k0(p,100,512,!0);const w=p.append("g");w.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),w.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),w.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),w.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),w.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),w.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),w.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),w.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${f}`)}},fAe=LOt,dAe={db:{},renderer:LOt,parser:{parser:{yy:{}},parse:()=>{}}},MOt="flowchart-elk",gAe={id:MOt,detector:(i,a)=>{var f;return!!(/^\s*flowchart-elk/.test(i)||/^\s*flowchart|graph/.test(i)&&((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>xWe);return{id:MOt,diagram:i}}},DOt="timeline",pAe={id:DOt,detector:i=>/^\s*timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>$We);return{id:DOt,diagram:i}}},IOt="mindmap",bAe={id:IOt,detector:i=>/^\s*mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>bYe);return{id:IOt,diagram:i}}},OOt="sankey",wAe={id:OOt,detector:i=>/^\s*sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>UYe);return{id:OOt,diagram:i}}};let POt=!1;const xdt=()=>{POt||(POt=!0,HW("error",dAe,i=>i.toLowerCase().trim()==="error"),HW("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),cIt(RSe,QSe,XSe,zSe,HSe,VSe,GSe,YSe,KSe,gAe,$Se,jSe,bAe,pAe,qSe,JSe,ZSe,tAe,USe,wAe,WSe))};class FOt{constructor(a,f={}){this.text=a,this.metadata=f,this.type="graph",this.text+=` -`;const p=Fd();try{this.type=yW(a,p)}catch(m){this.type="error",this.detectError=m}const w=ydt(this.type);Ut.debug("Type "+this.type),this.db=w.db,this.renderer=w.renderer,this.parser=w.parser,this.parser.parser.yy=this.db,this.init=w.init,this.parse()}parse(){var f,p,w,m,b;if(this.detectError)throw this.detectError;(p=(f=this.db).clear)==null||p.call(f);const a=Fd();(w=this.init)==null||w.call(this,a),this.metadata.title&&((b=(m=this.db).setDiagramTitle)==null||b.call(m,this.metadata.title)),this.parser.parse(this.text)}async render(a,f){await this.renderer.draw(this.text,a,f,this)}getParser(){return this.parser}getType(){return this.type}}const kdt=async(i,a={})=>{const f=yW(i,Fd());try{ydt(f)}catch{const w=ECe(f);if(!w)throw new oIt(`Diagram ${f} not found.`);const{id:m,diagram:b}=await w();HW(m,b)}return new FOt(i,a)};let Edt=[];const vAe=i=>{Edt.push(i)},mAe=()=>{Edt.forEach(i=>{i()}),Edt=[]};var yAe=kIt(Object.keys,Object);const xAe=yAe;var kAe=Object.prototype,EAe=kAe.hasOwnProperty;function NOt(i){if(!_W(i))return xAe(i);var a=[];for(var f in Object(i))EAe.call(i,f)&&f!="constructor"&&a.push(f);return a}var TAe=oT(nm,"DataView");const Tdt=TAe;var CAe=oT(nm,"Promise");const Cdt=CAe;var _Ae=oT(nm,"Set");const KA=_Ae;var SAe=oT(nm,"WeakMap");const _dt=SAe;var BOt="[object Map]",AAe="[object Object]",ROt="[object Promise]",jOt="[object Set]",$Ot="[object WeakMap]",zOt="[object DataView]",LAe=aT(Tdt),MAe=aT(JP),DAe=aT(Cdt),IAe=aT(KA),OAe=aT(_dt),dT=sT;(Tdt&&dT(new Tdt(new ArrayBuffer(1)))!=zOt||JP&&dT(new JP)!=BOt||Cdt&&dT(Cdt.resolve())!=ROt||KA&&dT(new KA)!=jOt||_dt&&dT(new _dt)!=$Ot)&&(dT=function(i){var a=sT(i),f=a==AAe?i.constructor:void 0,p=f?aT(f):"";if(p)switch(p){case LAe:return zOt;case MAe:return BOt;case DAe:return ROt;case IAe:return jOt;case OAe:return $Ot}return a});const XA=dT;var PAe="[object Map]",FAe="[object Set]",NAe=Object.prototype,BAe=NAe.hasOwnProperty;function oF(i){if(i==null)return!0;if(ck(i)&&(If(i)||typeof i=="string"||typeof i.splice=="function"||zA(i)||AW(i)||$A(i)))return!i.length;var a=XA(i);if(a==PAe||a==FAe)return!i.size;if(_W(i))return!NOt(i).length;for(var f in i)if(BAe.call(i,f))return!1;return!0}const RAe="graphics-document document";function jAe(i,a){i.attr("role",RAe),a!==""&&i.attr("aria-roledescription",a)}function $Ae(i,a,f,p){if(i.insert!==void 0){if(f){const w=`chart-desc-${p}`;i.attr("aria-describedby",w),i.insert("desc",":first-child").attr("id",w).text(f)}if(a){const w=`chart-title-${p}`;i.attr("aria-labelledby",w),i.insert("title",":first-child").attr("id",w).text(a)}}}const zAe=i=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function qOt(i){return typeof i>"u"||i===null}function qAe(i){return typeof i=="object"&&i!==null}function HAe(i){return Array.isArray(i)?i:qOt(i)?[]:[i]}function VAe(i,a){var f,p,w,m;if(a)for(m=Object.keys(a),f=0,p=m.length;fE&&(m=" ... ",a=p-E+m.length),f-p>E&&(b=" ...",f=p+E-b.length),{str:m+i.slice(a,f).replace(/\t/g,"→")+b,pos:p-a+m.length}}function Adt(i,a){return bg.repeat(" ",a-i.length)+i}function JAe(i,a){if(a=Object.create(a||null),!i.buffer)return null;a.maxLength||(a.maxLength=79),typeof a.indent!="number"&&(a.indent=1),typeof a.linesBefore!="number"&&(a.linesBefore=3),typeof a.linesAfter!="number"&&(a.linesAfter=2);for(var f=/\r?\n|\r|\0/g,p=[0],w=[],m,b=-1;m=f.exec(i.buffer);)w.push(m.index),p.push(m.index+m[0].length),i.position<=m.index&&b<0&&(b=p.length-2);b<0&&(b=p.length-1);var E="",_,A,I=Math.min(i.line+a.linesAfter,w.length).toString().length,B=a.maxLength-(a.indent+I+3);for(_=1;_<=a.linesBefore&&!(b-_<0);_++)A=Sdt(i.buffer,p[b-_],w[b-_],i.position-(p[b]-p[b-_]),B),E=bg.repeat(" ",a.indent)+Adt((i.line-_+1).toString(),I)+" | "+A.str+` -`+E;for(A=Sdt(i.buffer,p[b],w[b],i.position,B),E+=bg.repeat(" ",a.indent)+Adt((i.line+1).toString(),I)+" | "+A.str+` -`,E+=bg.repeat("-",a.indent+I+3+A.pos)+`^ -`,_=1;_<=a.linesAfter&&!(b+_>=w.length);_++)A=Sdt(i.buffer,p[b+_],w[b+_],i.position-(p[b]-p[b+_]),B),E+=bg.repeat(" ",a.indent)+Adt((i.line+_+1).toString(),I)+" | "+A.str+` -`;return E.replace(/\n$/,"")}var tLe=JAe,eLe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],nLe=["scalar","sequence","mapping"];function rLe(i){var a={};return i!==null&&Object.keys(i).forEach(function(f){i[f].forEach(function(p){a[String(p)]=f})}),a}function iLe(i,a){if(a=a||{},Object.keys(a).forEach(function(f){if(eLe.indexOf(f)===-1)throw new A5('Unknown option "'+f+'" is met in definition of "'+i+'" YAML type.')}),this.options=a,this.tag=i,this.kind=a.kind||null,this.resolve=a.resolve||function(){return!0},this.construct=a.construct||function(f){return f},this.instanceOf=a.instanceOf||null,this.predicate=a.predicate||null,this.represent=a.represent||null,this.representName=a.representName||null,this.defaultStyle=a.defaultStyle||null,this.multi=a.multi||!1,this.styleAliases=rLe(a.styleAliases||null),nLe.indexOf(this.kind)===-1)throw new A5('Unknown kind "'+this.kind+'" is specified for "'+i+'" YAML type.')}var T0=iLe;function VOt(i,a){var f=[];return i[a].forEach(function(p){var w=f.length;f.forEach(function(m,b){m.tag===p.tag&&m.kind===p.kind&&m.multi===p.multi&&(w=b)}),f[w]=p}),f}function sLe(){var i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},a,f;function p(w){w.multi?(i.multi[w.kind].push(w),i.multi.fallback.push(w)):i[w.kind][w.tag]=i.fallback[w.tag]=w}for(a=0,f=arguments.length;a=0?"0b"+i.toString(2):"-0b"+i.toString(2).slice(1)},octal:function(i){return i>=0?"0o"+i.toString(8):"-0o"+i.toString(8).slice(1)},decimal:function(i){return i.toString(10)},hexadecimal:function(i){return i>=0?"0x"+i.toString(16).toUpperCase():"-0x"+i.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),_Le=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function SLe(i){return!(i===null||!_Le.test(i)||i[i.length-1]==="_")}function ALe(i){var a,f;return a=i.replace(/_/g,"").toLowerCase(),f=a[0]==="-"?-1:1,"+-".indexOf(a[0])>=0&&(a=a.slice(1)),a===".inf"?f===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:a===".nan"?NaN:f*parseFloat(a,10)}var LLe=/^[-+]?[0-9]+e/;function MLe(i,a){var f;if(isNaN(i))switch(a){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===i)switch(a){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===i)switch(a){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(bg.isNegativeZero(i))return"-0.0";return f=i.toString(10),LLe.test(f)?f.replace("e",".e"):f}function DLe(i){return Object.prototype.toString.call(i)==="[object Number]"&&(i%1!==0||bg.isNegativeZero(i))}var ILe=new T0("tag:yaml.org,2002:float",{kind:"scalar",resolve:SLe,construct:ALe,predicate:DLe,represent:MLe,defaultStyle:"lowercase"}),GOt=lLe.extend({implicit:[gLe,vLe,CLe,ILe]}),OLe=GOt,UOt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),WOt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function PLe(i){return i===null?!1:UOt.exec(i)!==null||WOt.exec(i)!==null}function FLe(i){var a,f,p,w,m,b,E,_=0,A=null,I,B,N;if(a=UOt.exec(i),a===null&&(a=WOt.exec(i)),a===null)throw new Error("Date resolve error");if(f=+a[1],p=+a[2]-1,w=+a[3],!a[4])return new Date(Date.UTC(f,p,w));if(m=+a[4],b=+a[5],E=+a[6],a[7]){for(_=a[7].slice(0,3);_.length<3;)_+="0";_=+_}return a[9]&&(I=+a[10],B=+(a[11]||0),A=(I*60+B)*6e4,a[9]==="-"&&(A=-A)),N=new Date(Date.UTC(f,p,w,m,b,E,_)),A&&N.setTime(N.getTime()-A),N}function NLe(i){return i.toISOString()}var BLe=new T0("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:PLe,construct:FLe,instanceOf:Date,represent:NLe});function RLe(i){return i==="<<"||i===null}var jLe=new T0("tag:yaml.org,2002:merge",{kind:"scalar",resolve:RLe}),Mdt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function $Le(i){if(i===null)return!1;var a,f,p=0,w=i.length,m=Mdt;for(f=0;f64)){if(a<0)return!1;p+=6}return p%8===0}function zLe(i){var a,f,p=i.replace(/[\r\n=]/g,""),w=p.length,m=Mdt,b=0,E=[];for(a=0;a>16&255),E.push(b>>8&255),E.push(b&255)),b=b<<6|m.indexOf(p.charAt(a));return f=w%4*6,f===0?(E.push(b>>16&255),E.push(b>>8&255),E.push(b&255)):f===18?(E.push(b>>10&255),E.push(b>>2&255)):f===12&&E.push(b>>4&255),new Uint8Array(E)}function qLe(i){var a="",f=0,p,w,m=i.length,b=Mdt;for(p=0;p>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]),f=(f<<8)+i[p];return w=m%3,w===0?(a+=b[f>>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]):w===2?(a+=b[f>>10&63],a+=b[f>>4&63],a+=b[f<<2&63],a+=b[64]):w===1&&(a+=b[f>>2&63],a+=b[f<<4&63],a+=b[64],a+=b[64]),a}function HLe(i){return Object.prototype.toString.call(i)==="[object Uint8Array]"}var VLe=new T0("tag:yaml.org,2002:binary",{kind:"scalar",resolve:$Le,construct:zLe,predicate:HLe,represent:qLe}),GLe=Object.prototype.hasOwnProperty,ULe=Object.prototype.toString;function WLe(i){if(i===null)return!0;var a=[],f,p,w,m,b,E=i;for(f=0,p=E.length;f>10)+55296,(i-65536&1023)+56320)}for(var ePt=new Array(256),nPt=new Array(256),ZA=0;ZA<256;ZA++)ePt[ZA]=tPt(ZA)?1:0,nPt[ZA]=tPt(ZA);function dMe(i,a){this.input=i,this.filename=a.filename||null,this.schema=a.schema||iMe,this.onWarning=a.onWarning||null,this.legacy=a.legacy||!1,this.json=a.json||!1,this.listener=a.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function rPt(i,a){var f={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return f.snippet=tLe(f),new A5(a,f)}function Ss(i,a){throw rPt(i,a)}function WW(i,a){i.onWarning&&i.onWarning.call(null,rPt(i,a))}var iPt={YAML:function(a,f,p){var w,m,b;a.version!==null&&Ss(a,"duplication of %YAML directive"),p.length!==1&&Ss(a,"YAML directive accepts exactly one argument"),w=/^([0-9]+)\.([0-9]+)$/.exec(p[0]),w===null&&Ss(a,"ill-formed argument of the YAML directive"),m=parseInt(w[1],10),b=parseInt(w[2],10),m!==1&&Ss(a,"unacceptable YAML version of the document"),a.version=p[0],a.checkLineBreaks=b<2,b!==1&&b!==2&&WW(a,"unsupported YAML version of the document")},TAG:function(a,f,p){var w,m;p.length!==2&&Ss(a,"TAG directive accepts exactly two arguments"),w=p[0],m=p[1],QOt.test(w)||Ss(a,"ill-formed tag handle (first argument) of the TAG directive"),lk.call(a.tagMap,w)&&Ss(a,'there is a previously declared suffix for "'+w+'" tag handle'),ZOt.test(m)||Ss(a,"ill-formed tag prefix (second argument) of the TAG directive");try{m=decodeURIComponent(m)}catch{Ss(a,"tag prefix is malformed: "+m)}a.tagMap[w]=m}};function hk(i,a,f,p){var w,m,b,E;if(a1&&(i.result+=bg.repeat(` -`,a-1))}function gMe(i,a,f){var p,w,m,b,E,_,A,I,B=i.kind,N=i.result,R;if(R=i.input.charCodeAt(i.position),dp(R)||QA(R)||R===35||R===38||R===42||R===33||R===124||R===62||R===39||R===34||R===37||R===64||R===96||(R===63||R===45)&&(w=i.input.charCodeAt(i.position+1),dp(w)||f&&QA(w)))return!1;for(i.kind="scalar",i.result="",m=b=i.position,E=!1;R!==0;){if(R===58){if(w=i.input.charCodeAt(i.position+1),dp(w)||f&&QA(w))break}else if(R===35){if(p=i.input.charCodeAt(i.position-1),dp(p))break}else{if(i.position===i.lineStart&&YW(i)||f&&QA(R))break;if(g3(R))if(_=i.line,A=i.lineStart,I=i.lineIndent,Pf(i,!1,-1),i.lineIndent>=a){E=!0,R=i.input.charCodeAt(i.position);continue}else{i.position=b,i.line=_,i.lineStart=A,i.lineIndent=I;break}}E&&(hk(i,m,b,!1),Odt(i,i.line-_),m=b=i.position,E=!1),gT(R)||(b=i.position+1),R=i.input.charCodeAt(++i.position)}return hk(i,m,b,!1),i.result?!0:(i.kind=B,i.result=N,!1)}function pMe(i,a){var f,p,w;if(f=i.input.charCodeAt(i.position),f!==39)return!1;for(i.kind="scalar",i.result="",i.position++,p=w=i.position;(f=i.input.charCodeAt(i.position))!==0;)if(f===39)if(hk(i,p,i.position,!0),f=i.input.charCodeAt(++i.position),f===39)p=i.position,i.position++,w=i.position;else return!0;else g3(f)?(hk(i,p,w,!0),Odt(i,Pf(i,!1,a)),p=w=i.position):i.position===i.lineStart&&YW(i)?Ss(i,"unexpected end of the document within a single quoted scalar"):(i.position++,w=i.position);Ss(i,"unexpected end of the stream within a single quoted scalar")}function bMe(i,a){var f,p,w,m,b,E;if(E=i.input.charCodeAt(i.position),E!==34)return!1;for(i.kind="scalar",i.result="",i.position++,f=p=i.position;(E=i.input.charCodeAt(i.position))!==0;){if(E===34)return hk(i,f,i.position,!0),i.position++,!0;if(E===92){if(hk(i,f,i.position,!0),E=i.input.charCodeAt(++i.position),g3(E))Pf(i,!1,a);else if(E<256&&ePt[E])i.result+=nPt[E],i.position++;else if((b=lMe(E))>0){for(w=b,m=0;w>0;w--)E=i.input.charCodeAt(++i.position),(b=uMe(E))>=0?m=(m<<4)+b:Ss(i,"expected hexadecimal character");i.result+=fMe(m),i.position++}else Ss(i,"unknown escape sequence");f=p=i.position}else g3(E)?(hk(i,f,p,!0),Odt(i,Pf(i,!1,a)),f=p=i.position):i.position===i.lineStart&&YW(i)?Ss(i,"unexpected end of the document within a double quoted scalar"):(i.position++,p=i.position)}Ss(i,"unexpected end of the stream within a double quoted scalar")}function wMe(i,a){var f=!0,p,w,m,b=i.tag,E,_=i.anchor,A,I,B,N,R,z=Object.create(null),W,et,st,at;if(at=i.input.charCodeAt(i.position),at===91)I=93,R=!1,E=[];else if(at===123)I=125,R=!0,E={};else return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=E),at=i.input.charCodeAt(++i.position);at!==0;){if(Pf(i,!0,a),at=i.input.charCodeAt(i.position),at===I)return i.position++,i.tag=b,i.anchor=_,i.kind=R?"mapping":"sequence",i.result=E,!0;f?at===44&&Ss(i,"expected the node content, but found ','"):Ss(i,"missed comma between flow collection entries"),et=W=st=null,B=N=!1,at===63&&(A=i.input.charCodeAt(i.position+1),dp(A)&&(B=N=!0,i.position++,Pf(i,!0,a))),p=i.line,w=i.lineStart,m=i.position,tL(i,a,GW,!1,!0),et=i.tag,W=i.result,Pf(i,!0,a),at=i.input.charCodeAt(i.position),(N||i.line===p)&&at===58&&(B=!0,at=i.input.charCodeAt(++i.position),Pf(i,!0,a),tL(i,a,GW,!1,!0),st=i.result),R?JA(i,E,z,et,W,st,p,w,m):B?E.push(JA(i,null,z,et,W,st,p,w,m)):E.push(W),Pf(i,!0,a),at=i.input.charCodeAt(i.position),at===44?(f=!0,at=i.input.charCodeAt(++i.position)):f=!1}Ss(i,"unexpected end of the stream within a flow collection")}function vMe(i,a){var f,p,w=Ddt,m=!1,b=!1,E=a,_=0,A=!1,I,B;if(B=i.input.charCodeAt(i.position),B===124)p=!1;else if(B===62)p=!0;else return!1;for(i.kind="scalar",i.result="";B!==0;)if(B=i.input.charCodeAt(++i.position),B===43||B===45)Ddt===w?w=B===43?XOt:sMe:Ss(i,"repeat of a chomping mode identifier");else if((I=hMe(B))>=0)I===0?Ss(i,"bad explicit indentation width of a block scalar; it cannot be less than one"):b?Ss(i,"repeat of an indentation width identifier"):(E=a+I-1,b=!0);else break;if(gT(B)){do B=i.input.charCodeAt(++i.position);while(gT(B));if(B===35)do B=i.input.charCodeAt(++i.position);while(!g3(B)&&B!==0)}for(;B!==0;){for(Idt(i),i.lineIndent=0,B=i.input.charCodeAt(i.position);(!b||i.lineIndentE&&(E=i.lineIndent),g3(B)){_++;continue}if(i.lineIndenta)&&_!==0)Ss(i,"bad indentation of a sequence entry");else if(i.lineIndenta)&&(et&&(b=i.line,E=i.lineStart,_=i.position),tL(i,a,UW,!0,w)&&(et?z=i.result:W=i.result),et||(JA(i,B,N,R,z,W,b,E,_),R=z=W=null),Pf(i,!0,-1),at=i.input.charCodeAt(i.position)),(i.line===m||i.lineIndent>a)&&at!==0)Ss(i,"bad indentation of a mapping entry");else if(i.lineIndenta?_=1:i.lineIndent===a?_=0:i.lineIndenta?_=1:i.lineIndent===a?_=0:i.lineIndent tag; it should be "scalar", not "'+i.kind+'"'),B=0,N=i.implicitTypes.length;B"),i.result!==null&&z.kind!==i.kind&&Ss(i,"unacceptable node kind for !<"+i.tag+'> tag; it should be "'+z.kind+'", not "'+i.kind+'"'),z.resolve(i.result,i.tag)?(i.result=z.construct(i.result,i.tag),i.anchor!==null&&(i.anchorMap[i.anchor]=i.result)):Ss(i,"cannot resolve a node with !<"+i.tag+"> explicit tag")}return i.listener!==null&&i.listener("close",i),i.tag!==null||i.anchor!==null||I}function EMe(i){var a=i.position,f,p,w,m=!1,b;for(i.version=null,i.checkLineBreaks=i.legacy,i.tagMap=Object.create(null),i.anchorMap=Object.create(null);(b=i.input.charCodeAt(i.position))!==0&&(Pf(i,!0,-1),b=i.input.charCodeAt(i.position),!(i.lineIndent>0||b!==37));){for(m=!0,b=i.input.charCodeAt(++i.position),f=i.position;b!==0&&!dp(b);)b=i.input.charCodeAt(++i.position);for(p=i.input.slice(f,i.position),w=[],p.length<1&&Ss(i,"directive name must not be less than one character in length");b!==0;){for(;gT(b);)b=i.input.charCodeAt(++i.position);if(b===35){do b=i.input.charCodeAt(++i.position);while(b!==0&&!g3(b));break}if(g3(b))break;for(f=i.position;b!==0&&!dp(b);)b=i.input.charCodeAt(++i.position);w.push(i.input.slice(f,i.position))}b!==0&&Idt(i),lk.call(iPt,p)?iPt[p](i,p,w):WW(i,'unknown document directive "'+p+'"')}if(Pf(i,!0,-1),i.lineIndent===0&&i.input.charCodeAt(i.position)===45&&i.input.charCodeAt(i.position+1)===45&&i.input.charCodeAt(i.position+2)===45?(i.position+=3,Pf(i,!0,-1)):m&&Ss(i,"directives end mark is expected"),tL(i,i.lineIndent-1,UW,!1,!0),Pf(i,!0,-1),i.checkLineBreaks&&oMe.test(i.input.slice(a,i.position))&&WW(i,"non-ASCII line breaks are interpreted as content"),i.documents.push(i.result),i.position===i.lineStart&&YW(i)){i.input.charCodeAt(i.position)===46&&(i.position+=3,Pf(i,!0,-1));return}if(i.position"u"&&(f=a,a=null);var p=oPt(i,f);if(typeof a!="function")return p;for(var w=0,m=p.length;wi.replace(/\r\n?/g,` -`).replace(/<(\w+)([^>]*)>/g,(a,f,p)=>"<"+f+p.replace(/="([^"]*)"/g,"='$1'")+">"),OMe=i=>{const{text:a,metadata:f}=DMe(i),{displayMode:p,title:w,config:m={}}=f;return p&&(m.gantt||(m.gantt={}),m.gantt.displayMode=p),{title:w,config:m,text:a}},PMe=i=>{const a=$a.detectInit(i)??{},f=$a.detectDirective(i,"wrap");return Array.isArray(f)?a.wrap=f.some(({type:p})=>{}):(f==null?void 0:f.type)==="wrap"&&(a.wrap=!0),{text:nSe(i),directive:a}};function FMe(i){const a=IMe(i),f=OMe(a),p=PMe(f.text),w=rF(f.config,p.directive);return i=zAe(p.text),{code:i,title:f.title,config:w}}const NMe=5e4,BMe="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",RMe="sandbox",jMe="loose",$Me="http://www.w3.org/2000/svg",zMe="http://www.w3.org/1999/xlink",qMe="http://www.w3.org/1999/xhtml",HMe="100%",VMe="100%",GMe="border:0;margin:0;",UMe="margin:0",WMe="allow-top-navigation-by-user-activation allow-popups",YMe='The "iframe" tag is not supported by your browser.',KMe=["foreignobject"],XMe=["dominant-baseline"];function cPt(i){const a=FMe(i);return $W(),FSe(a.config??{}),a}async function QMe(i,a){xdt(),i=cPt(i).code;try{await kdt(i)}catch(f){if(a!=null&&a.suppressErrors)return!1;throw f}return!0}const ZMe=function(i){let a=i;return a=a.replace(/style.*:\S*#.*;/g,function(f){return f.substring(0,f.length-1)}),a=a.replace(/classDef.*:\S*#.*;/g,function(f){return f.substring(0,f.length-1)}),a=a.replace(/#\w+;/g,function(f){const p=f.substring(1,f.length-1);return/^\+?\d+$/.test(p)?"fl°°"+p+"¶ß":"fl°"+p+"¶ß"}),a},uF=function(i){return i.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},uPt=(i,a,f=[])=>` -.${i} ${a} { ${f.join(" !important; ")} !important; }`,JMe=(i,a={})=>{var p;let f="";if(i.themeCSS!==void 0&&(f+=` -${i.themeCSS}`),i.fontFamily!==void 0&&(f+=` -:root { --mermaid-font-family: ${i.fontFamily}}`),i.altFontFamily!==void 0&&(f+=` -:root { --mermaid-alt-font-family: ${i.altFontFamily}}`),!oF(a)){const E=i.htmlLabels||((p=i.flowchart)==null?void 0:p.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const _ in a){const A=a[_];oF(A.styles)||E.forEach(I=>{f+=uPt(A.id,I,A.styles)}),oF(A.textStyles)||(f+=uPt(A.id,"tspan",A.textStyles))}}return f},tDe=(i,a,f,p)=>{const w=JMe(i,f),m=sAe(a,w,i.themeVariables);return pdt(LSe(`${p}{${m}}`),DSe)},eDe=(i="",a,f)=>{let p=i;return!f&&!a&&(p=p.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),p=uF(p),p=p.replace(/
/g,"
"),p},nDe=(i="",a)=>{var w,m;const f=(m=(w=a==null?void 0:a.viewBox)==null?void 0:w.baseVal)!=null&&m.height?a.viewBox.baseVal.height+"px":VMe,p=btoa(''+i+"");return``},lPt=(i,a,f,p,w)=>{const m=i.append("div");m.attr("id",f),p&&m.attr("style",p);const b=m.append("svg").attr("id",a).attr("width","100%").attr("xmlns",$Me);return w&&b.attr("xmlns:xlink",w),b.append("g"),i};function hPt(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const rDe=(i,a,f,p)=>{var w,m,b;(w=i.getElementById(a))==null||w.remove(),(m=i.getElementById(f))==null||m.remove(),(b=i.getElementById(p))==null||b.remove()},iDe=async function(i,a,f){var nt,It,Ot,Bt,Et,Z;xdt();const p=cPt(a);a=p.code;const w=Fd();Ut.debug(w),a.length>((w==null?void 0:w.maxTextSize)??NMe)&&(a=BMe);const m="#"+i,b="i"+i,E="#"+b,_="d"+i,A="#"+_;let I=yr("body");const B=w.securityLevel===RMe,N=w.securityLevel===jMe,R=w.fontFamily;if(f!==void 0){if(f&&(f.innerHTML=""),B){const Ct=hPt(yr(f),b);I=yr(Ct.nodes()[0].contentDocument.body),I.node().style.margin=0}else I=yr(f);lPt(I,i,_,`font-family: ${R}`,zMe)}else{if(rDe(document,i,_,b),B){const Ct=hPt(yr("body"),b);I=yr(Ct.nodes()[0].contentDocument.body),I.node().style.margin=0}else I=yr("body");lPt(I,i,_)}a=ZMe(a);let z,W;try{z=await kdt(a,{title:p.title})}catch(Ct){z=new FOt("error"),W=Ct}const et=I.select(A).node(),st=z.type,at=et.firstChild,bt=at.firstChild,mt=(It=(nt=z.renderer).getClasses)==null?void 0:It.call(nt,a,z),yt=tDe(w,st,mt,m),ft=document.createElement("style");ft.innerHTML=yt,at.insertBefore(ft,bt);try{await z.renderer.draw(a,i,nOt,z)}catch(Ct){throw fAe.draw(a,i,nOt),Ct}const ut=I.select(`${A} svg`),vt=(Bt=(Ot=z.db).getAccTitle)==null?void 0:Bt.call(Ot),X=(Z=(Et=z.db).getAccDescription)==null?void 0:Z.call(Et);aDe(st,ut,vt,X),I.select(`[id="${i}"]`).selectAll("foreignobject > *").attr("xmlns",qMe);let pt=I.select(A).node().innerHTML;if(Ut.debug("config.arrowMarkerAbsolute",w.arrowMarkerAbsolute),pt=eDe(pt,B,o1(w.arrowMarkerAbsolute)),B){const Ct=I.select(A+" svg").node();pt=nDe(pt,Ct)}else N||(pt=lW.sanitize(pt,{ADD_TAGS:KMe,ADD_ATTR:XMe}));if(mAe(),W)throw W;const Tt=yr(B?E:A).node();return Tt&&"remove"in Tt&&Tt.remove(),{svg:pt,bindFunctions:z.db.bindFunctions}};function sDe(i={}){var f;i!=null&&i.fontFamily&&!((f=i.themeVariables)!=null&&f.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),OSe(i),i!=null&&i.theme&&i.theme in T5?i.themeVariables=T5[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=T5.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?ISe(i):iOt();Xft(a.logLevel),xdt()}function aDe(i,a,f,p){jAe(a,i),$Ae(a,f,p,a.attr("id"))}const pT=Object.freeze({render:iDe,parse:QMe,getDiagramFromText:kdt,initialize:sDe,getConfig:Fd,setConfig:sOt,getSiteConfig:iOt,updateSiteConfig:PSe,reset:()=>{$W()},globalReset:()=>{$W(WA)},defaultConfig:WA});Xft(Fd().logLevel),$W(Fd());const oDe=async()=>{Ut.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries(NA).map(async([f,{detector:p,loader:w}])=>{if(w)try{ydt(f)}catch{try{const{diagram:b,id:E}=await w();HW(E,b,p)}catch(b){throw Ut.error(`Failed to load external diagram with key ${f}. Removing from detectors.`),delete NA[f],b}}}))).filter(f=>f.status==="rejected");if(a.length>0){Ut.error(`Failed to load ${a.length} external diagrams`);for(const f of a)Ut.error(f);throw new Error(`Failed to load ${a.length} external diagrams`)}},cDe=(i,a,f)=>{Ut.warn(i),WIt(i)?(f&&f(i.str,i.hash),a.push({...i,message:i.str,error:i})):(f&&f(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},fPt=async function(i={querySelector:".mermaid"}){try{await uDe(i)}catch(a){if(WIt(a)&&Ut.error(a.str),Bb.parseError&&Bb.parseError(a),!i.suppressErrors)throw Ut.error("Use the suppressErrors option to suppress these errors"),a}},uDe=async function({postRenderCallback:i,querySelector:a,nodes:f}={querySelector:".mermaid"}){const p=pT.getConfig();Ut.debug(`${i?"":"No "}Callback function found`);let w;if(f)w=f;else if(a)w=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");Ut.debug(`Found ${w.length} diagrams`),(p==null?void 0:p.startOnLoad)!==void 0&&(Ut.debug("Start On Load: "+(p==null?void 0:p.startOnLoad)),pT.updateSiteConfig({startOnLoad:p==null?void 0:p.startOnLoad}));const m=new $a.InitIDGenerator(p.deterministicIds,p.deterministicIDSeed);let b;const E=[];for(const _ of Array.from(w)){Ut.info("Rendering diagram: "+_.id);/*! Check if previously processed */if(_.getAttribute("data-processed"))continue;_.setAttribute("data-processed","true");const A=`mermaid-${m.next()}`;b=_.innerHTML,b=xA($a.entityDecode(b)).trim().replace(//gi,"
");const I=$a.detectInit(b);I&&Ut.debug("Detected early reinit: ",I);try{const{svg:B,bindFunctions:N}=await bPt(A,b,_);_.innerHTML=B,i&&await i(A),N&&N(_)}catch(B){cDe(B,E,Bb.parseError)}}if(E.length>0)throw E[0]},dPt=function(i){pT.initialize(i)},lDe=async function(i,a,f){Ut.warn("mermaid.init is deprecated. Please use run instead."),i&&dPt(i);const p={postRenderCallback:f,querySelector:".mermaid"};typeof a=="string"?p.querySelector=a:a&&(a instanceof HTMLElement?p.nodes=[a]:p.nodes=a),await fPt(p)},hDe=async(i,{lazyLoad:a=!0}={})=>{cIt(...i),a===!1&&await oDe()},gPt=function(){if(Bb.startOnLoad){const{startOnLoad:i}=pT.getConfig();i&&Bb.run().catch(a=>Ut.error("Mermaid failed to initialize",a))}};if(typeof document<"u"){/*! - * Wait for document loaded before starting the execution - */window.addEventListener("load",gPt,!1)}const fDe=function(i){Bb.parseError=i},KW=[];let Pdt=!1;const pPt=async()=>{if(!Pdt){for(Pdt=!0;KW.length>0;){const i=KW.shift();if(i)try{await i()}catch(a){Ut.error("Error executing queue",a)}}Pdt=!1}},dDe=async(i,a)=>new Promise((f,p)=>{const w=()=>new Promise((m,b)=>{pT.parse(i,a).then(E=>{m(E),f(E)},E=>{var _;Ut.error("Error parsing",E),(_=Bb.parseError)==null||_.call(Bb,E),b(E),p(E)})});KW.push(w),pPt().catch(p)}),bPt=(i,a,f)=>new Promise((p,w)=>{const m=()=>new Promise((b,E)=>{pT.render(i,a,f).then(_=>{b(_),p(_)},_=>{var A;Ut.error("Error parsing",_),(A=Bb.parseError)==null||A.call(Bb,_),E(_),w(_)})});KW.push(m),pPt().catch(w)}),Bb={startOnLoad:!0,mermaidAPI:pT,parse:dDe,render:bPt,init:lDe,run:fPt,registerExternalDiagrams:hDe,initialize:dPt,parseError:void 0,contentLoaded:gPt,setParseErrorHandler:fDe,detectType:yW};var XW=function(){var i=function(Xi,Er,Xn,di){for(Xn=Xn||{},di=Xi.length;di--;Xn[Xi[di]]=Er);return Xn},a=[1,24],f=[1,25],p=[1,26],w=[1,27],m=[1,28],b=[1,63],E=[1,64],_=[1,65],A=[1,66],I=[1,67],B=[1,68],N=[1,69],R=[1,29],z=[1,30],W=[1,31],et=[1,32],st=[1,33],at=[1,34],bt=[1,35],mt=[1,36],yt=[1,37],ft=[1,38],ut=[1,39],vt=[1,40],X=[1,41],pt=[1,42],U=[1,43],Tt=[1,44],nt=[1,45],It=[1,46],Ot=[1,47],Bt=[1,48],Et=[1,50],Z=[1,51],Ct=[1,52],xt=[1,53],Ht=[1,54],Le=[1,55],Ft=[1,56],gn=[1,57],Se=[1,58],me=[1,59],Ve=[1,60],Ye=[14,42],ce=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],ke=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],zt=[1,82],re=[1,83],se=[1,84],Pe=[1,85],te=[12,14,42],Me=[12,14,33,42],de=[12,14,33,42,76,77,79,80],on=[12,33],ni=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ks={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(Er,Xn,di,Ee,Kn,He,Ti){var pn=He.length-1;switch(Kn){case 3:Ee.setDirection("TB");break;case 4:Ee.setDirection("BT");break;case 5:Ee.setDirection("RL");break;case 6:Ee.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:Ee.setC4Type(He[pn-3]);break;case 19:Ee.setTitle(He[pn].substring(6)),this.$=He[pn].substring(6);break;case 20:Ee.setAccDescription(He[pn].substring(15)),this.$=He[pn].substring(15);break;case 21:this.$=He[pn].trim(),Ee.setTitle(this.$);break;case 22:case 23:this.$=He[pn].trim(),Ee.setAccDescription(this.$);break;case 28:case 29:He[pn].splice(2,0,"ENTERPRISE"),Ee.addPersonOrSystemBoundary(...He[pn]),this.$=He[pn];break;case 30:Ee.addPersonOrSystemBoundary(...He[pn]),this.$=He[pn];break;case 31:He[pn].splice(2,0,"CONTAINER"),Ee.addContainerBoundary(...He[pn]),this.$=He[pn];break;case 32:Ee.addDeploymentNode("node",...He[pn]),this.$=He[pn];break;case 33:Ee.addDeploymentNode("nodeL",...He[pn]),this.$=He[pn];break;case 34:Ee.addDeploymentNode("nodeR",...He[pn]),this.$=He[pn];break;case 35:Ee.popBoundaryParseStack();break;case 39:Ee.addPersonOrSystem("person",...He[pn]),this.$=He[pn];break;case 40:Ee.addPersonOrSystem("external_person",...He[pn]),this.$=He[pn];break;case 41:Ee.addPersonOrSystem("system",...He[pn]),this.$=He[pn];break;case 42:Ee.addPersonOrSystem("system_db",...He[pn]),this.$=He[pn];break;case 43:Ee.addPersonOrSystem("system_queue",...He[pn]),this.$=He[pn];break;case 44:Ee.addPersonOrSystem("external_system",...He[pn]),this.$=He[pn];break;case 45:Ee.addPersonOrSystem("external_system_db",...He[pn]),this.$=He[pn];break;case 46:Ee.addPersonOrSystem("external_system_queue",...He[pn]),this.$=He[pn];break;case 47:Ee.addContainer("container",...He[pn]),this.$=He[pn];break;case 48:Ee.addContainer("container_db",...He[pn]),this.$=He[pn];break;case 49:Ee.addContainer("container_queue",...He[pn]),this.$=He[pn];break;case 50:Ee.addContainer("external_container",...He[pn]),this.$=He[pn];break;case 51:Ee.addContainer("external_container_db",...He[pn]),this.$=He[pn];break;case 52:Ee.addContainer("external_container_queue",...He[pn]),this.$=He[pn];break;case 53:Ee.addComponent("component",...He[pn]),this.$=He[pn];break;case 54:Ee.addComponent("component_db",...He[pn]),this.$=He[pn];break;case 55:Ee.addComponent("component_queue",...He[pn]),this.$=He[pn];break;case 56:Ee.addComponent("external_component",...He[pn]),this.$=He[pn];break;case 57:Ee.addComponent("external_component_db",...He[pn]),this.$=He[pn];break;case 58:Ee.addComponent("external_component_queue",...He[pn]),this.$=He[pn];break;case 60:Ee.addRel("rel",...He[pn]),this.$=He[pn];break;case 61:Ee.addRel("birel",...He[pn]),this.$=He[pn];break;case 62:Ee.addRel("rel_u",...He[pn]),this.$=He[pn];break;case 63:Ee.addRel("rel_d",...He[pn]),this.$=He[pn];break;case 64:Ee.addRel("rel_l",...He[pn]),this.$=He[pn];break;case 65:Ee.addRel("rel_r",...He[pn]),this.$=He[pn];break;case 66:Ee.addRel("rel_b",...He[pn]),this.$=He[pn];break;case 67:He[pn].splice(0,1),Ee.addRel("rel",...He[pn]),this.$=He[pn];break;case 68:Ee.updateElStyle("update_el_style",...He[pn]),this.$=He[pn];break;case 69:Ee.updateRelStyle("update_rel_style",...He[pn]),this.$=He[pn];break;case 70:Ee.updateLayoutConfig("update_layout_config",...He[pn]),this.$=He[pn];break;case 71:this.$=[He[pn]];break;case 72:He[pn].unshift(He[pn-1]),this.$=He[pn];break;case 73:case 75:this.$=He[pn].trim();break;case 74:let Es={};Es[He[pn-1].trim()]=He[pn].trim(),this.$=Es;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:70,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:71,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:72,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:73,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{14:[1,74]},i(Ye,[2,13],{43:23,29:49,30:61,32:62,20:75,34:b,36:E,37:_,38:A,39:I,40:B,41:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve}),i(Ye,[2,14]),i(ce,[2,16],{12:[1,76]}),i(Ye,[2,36],{12:[1,77]}),i(ke,[2,19]),i(ke,[2,20]),{25:[1,78]},{27:[1,79]},i(ke,[2,23]),{35:80,75:81,76:zt,77:re,79:se,80:Pe},{35:86,75:81,76:zt,77:re,79:se,80:Pe},{35:87,75:81,76:zt,77:re,79:se,80:Pe},{35:88,75:81,76:zt,77:re,79:se,80:Pe},{35:89,75:81,76:zt,77:re,79:se,80:Pe},{35:90,75:81,76:zt,77:re,79:se,80:Pe},{35:91,75:81,76:zt,77:re,79:se,80:Pe},{35:92,75:81,76:zt,77:re,79:se,80:Pe},{35:93,75:81,76:zt,77:re,79:se,80:Pe},{35:94,75:81,76:zt,77:re,79:se,80:Pe},{35:95,75:81,76:zt,77:re,79:se,80:Pe},{35:96,75:81,76:zt,77:re,79:se,80:Pe},{35:97,75:81,76:zt,77:re,79:se,80:Pe},{35:98,75:81,76:zt,77:re,79:se,80:Pe},{35:99,75:81,76:zt,77:re,79:se,80:Pe},{35:100,75:81,76:zt,77:re,79:se,80:Pe},{35:101,75:81,76:zt,77:re,79:se,80:Pe},{35:102,75:81,76:zt,77:re,79:se,80:Pe},{35:103,75:81,76:zt,77:re,79:se,80:Pe},{35:104,75:81,76:zt,77:re,79:se,80:Pe},i(te,[2,59]),{35:105,75:81,76:zt,77:re,79:se,80:Pe},{35:106,75:81,76:zt,77:re,79:se,80:Pe},{35:107,75:81,76:zt,77:re,79:se,80:Pe},{35:108,75:81,76:zt,77:re,79:se,80:Pe},{35:109,75:81,76:zt,77:re,79:se,80:Pe},{35:110,75:81,76:zt,77:re,79:se,80:Pe},{35:111,75:81,76:zt,77:re,79:se,80:Pe},{35:112,75:81,76:zt,77:re,79:se,80:Pe},{35:113,75:81,76:zt,77:re,79:se,80:Pe},{35:114,75:81,76:zt,77:re,79:se,80:Pe},{35:115,75:81,76:zt,77:re,79:se,80:Pe},{20:116,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{12:[1,118],33:[1,117]},{35:119,75:81,76:zt,77:re,79:se,80:Pe},{35:120,75:81,76:zt,77:re,79:se,80:Pe},{35:121,75:81,76:zt,77:re,79:se,80:Pe},{35:122,75:81,76:zt,77:re,79:se,80:Pe},{35:123,75:81,76:zt,77:re,79:se,80:Pe},{35:124,75:81,76:zt,77:re,79:se,80:Pe},{35:125,75:81,76:zt,77:re,79:se,80:Pe},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},i(Ye,[2,15]),i(ce,[2,17],{21:22,19:130,22:a,23:f,24:p,26:w,28:m}),i(Ye,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:a,23:f,24:p,26:w,28:m,34:b,36:E,37:_,38:A,39:I,40:B,41:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve}),i(ke,[2,21]),i(ke,[2,22]),i(te,[2,39]),i(Me,[2,71],{75:81,35:132,76:zt,77:re,79:se,80:Pe}),i(de,[2,73]),{78:[1,133]},i(de,[2,75]),i(de,[2,76]),i(te,[2,40]),i(te,[2,41]),i(te,[2,42]),i(te,[2,43]),i(te,[2,44]),i(te,[2,45]),i(te,[2,46]),i(te,[2,47]),i(te,[2,48]),i(te,[2,49]),i(te,[2,50]),i(te,[2,51]),i(te,[2,52]),i(te,[2,53]),i(te,[2,54]),i(te,[2,55]),i(te,[2,56]),i(te,[2,57]),i(te,[2,58]),i(te,[2,60]),i(te,[2,61]),i(te,[2,62]),i(te,[2,63]),i(te,[2,64]),i(te,[2,65]),i(te,[2,66]),i(te,[2,67]),i(te,[2,68]),i(te,[2,69]),i(te,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},i(on,[2,28]),i(on,[2,29]),i(on,[2,30]),i(on,[2,31]),i(on,[2,32]),i(on,[2,33]),i(on,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},i(ce,[2,18]),i(Ye,[2,38]),i(Me,[2,72]),i(de,[2,74]),i(te,[2,24]),i(te,[2,35]),i(ni,[2,25]),i(ni,[2,26],{12:[1,138]}),i(ni,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(Er,Xn){if(Xn.recoverable)this.trace(Er);else{var di=new Error(Er);throw di.hash=Xn,di}},parse:function(Er){var Xn=this,di=[0],Ee=[],Kn=[null],He=[],Ti=this.table,pn="",Es=0,qa=0,Ma=2,Gs=1,Po=He.slice.call(arguments,1),vs=Object.create(this.lexer),ru={yy:{}};for(var zs in this.yy)Object.prototype.hasOwnProperty.call(this.yy,zs)&&(ru.yy[zs]=this.yy[zs]);vs.setInput(Er,ru.yy),ru.yy.lexer=vs,ru.yy.parser=this,typeof vs.yylloc>"u"&&(vs.yylloc={});var Du=vs.yylloc;He.push(Du);var pm=vs.options&&vs.options.ranges;typeof ru.yy.parseError=="function"?this.parseError=ru.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function uw(){var Dl;return Dl=Ee.pop()||vs.lex()||Gs,typeof Dl!="number"&&(Dl instanceof Array&&(Ee=Dl,Dl=Ee.pop()),Dl=Xn.symbols_[Dl]||Dl),Dl}for(var Wu,th,Fa,Ml,ha={},bc,Cc,pa,Da;;){if(th=di[di.length-1],this.defaultActions[th]?Fa=this.defaultActions[th]:((Wu===null||typeof Wu>"u")&&(Wu=uw()),Fa=Ti[th]&&Ti[th][Wu]),typeof Fa>"u"||!Fa.length||!Fa[0]){var Ha="";Da=[];for(bc in Ti[th])this.terminals_[bc]&&bc>Ma&&Da.push("'"+this.terminals_[bc]+"'");vs.showPosition?Ha="Parse error on line "+(Es+1)+`: -`+vs.showPosition()+` -Expecting `+Da.join(", ")+", got '"+(this.terminals_[Wu]||Wu)+"'":Ha="Parse error on line "+(Es+1)+": Unexpected "+(Wu==Gs?"end of input":"'"+(this.terminals_[Wu]||Wu)+"'"),this.parseError(Ha,{text:vs.match,token:this.terminals_[Wu]||Wu,line:vs.yylineno,loc:Du,expected:Da})}if(Fa[0]instanceof Array&&Fa.length>1)throw new Error("Parse Error: multiple actions possible at state: "+th+", token: "+Wu);switch(Fa[0]){case 1:di.push(Wu),Kn.push(vs.yytext),He.push(vs.yylloc),di.push(Fa[1]),Wu=null,qa=vs.yyleng,pn=vs.yytext,Es=vs.yylineno,Du=vs.yylloc;break;case 2:if(Cc=this.productions_[Fa[1]][1],ha.$=Kn[Kn.length-Cc],ha._$={first_line:He[He.length-(Cc||1)].first_line,last_line:He[He.length-1].last_line,first_column:He[He.length-(Cc||1)].first_column,last_column:He[He.length-1].last_column},pm&&(ha._$.range=[He[He.length-(Cc||1)].range[0],He[He.length-1].range[1]]),Ml=this.performAction.apply(ha,[pn,qa,Es,ru.yy,Fa[1],Kn,He].concat(Po)),typeof Ml<"u")return Ml;Cc&&(di=di.slice(0,-1*Cc*2),Kn=Kn.slice(0,-1*Cc),He=He.slice(0,-1*Cc)),di.push(this.productions_[Fa[1]][0]),Kn.push(ha.$),He.push(ha._$),pa=Ti[di[di.length-2]][di[di.length-1]],di.push(pa);break;case 3:return!0}}return!0}},ws=function(){var Xi={EOF:1,parseError:function(Xn,di){if(this.yy.parser)this.yy.parser.parseError(Xn,di);else throw new Error(Xn)},setInput:function(Er,Xn){return this.yy=Xn||this.yy||{},this._input=Er,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Er=this._input[0];this.yytext+=Er,this.yyleng++,this.offset++,this.match+=Er,this.matched+=Er;var Xn=Er.match(/(?:\r\n?|\n).*/g);return Xn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Er},unput:function(Er){var Xn=Er.length,di=Er.split(/(?:\r\n?|\n)/g);this._input=Er+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Xn),this.offset-=Xn;var Ee=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),di.length-1&&(this.yylineno-=di.length-1);var Kn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:di?(di.length===Ee.length?this.yylloc.first_column:0)+Ee[Ee.length-di.length].length-di[0].length:this.yylloc.first_column-Xn},this.options.ranges&&(this.yylloc.range=[Kn[0],Kn[0]+this.yyleng-Xn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Er){this.unput(this.match.slice(Er))},pastInput:function(){var Er=this.matched.substr(0,this.matched.length-this.match.length);return(Er.length>20?"...":"")+Er.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Er=this.match;return Er.length<20&&(Er+=this._input.substr(0,20-Er.length)),(Er.substr(0,20)+(Er.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Er=this.pastInput(),Xn=new Array(Er.length+1).join("-");return Er+this.upcomingInput()+` -`+Xn+"^"},test_match:function(Er,Xn){var di,Ee,Kn;if(this.options.backtrack_lexer&&(Kn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Kn.yylloc.range=this.yylloc.range.slice(0))),Ee=Er[0].match(/(?:\r\n?|\n).*/g),Ee&&(this.yylineno+=Ee.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ee?Ee[Ee.length-1].length-Ee[Ee.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Er[0].length},this.yytext+=Er[0],this.match+=Er[0],this.matches=Er,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Er[0].length),this.matched+=Er[0],di=this.performAction.call(this,this.yy,this,Xn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),di)return di;if(this._backtrack){for(var He in Kn)this[He]=Kn[He];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Er,Xn,di,Ee;this._more||(this.yytext="",this.match="");for(var Kn=this._currentRules(),He=0;HeXn[0].length)){if(Xn=di,Ee=He,this.options.backtrack_lexer){if(Er=this.test_match(di,Kn[He]),Er!==!1)return Er;if(this._backtrack){Xn=!1;continue}else return!1}else if(!this.options.flex)break}return Xn?(Er=this.test_match(Xn,Kn[Ee]),Er!==!1?Er:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Xn=this.next();return Xn||this.lex()},begin:function(Xn){this.conditionStack.push(Xn)},popState:function(){var Xn=this.conditionStack.length-1;return Xn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Xn){return Xn=this.conditionStack.length-1-Math.abs(Xn||0),Xn>=0?this.conditionStack[Xn]:"INITIAL"},pushState:function(Xn){this.begin(Xn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Xn,di,Ee,Kn){switch(Ee){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return Xi}();Ks.lexer=ws;function fo(){this.yy={}}return fo.prototype=Ks,Ks.Parser=fo,new fo}();XW.parser=XW;const gDe=XW;let am=[],fk=[""],wg="global",om="",p3=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],lF=[],Fdt="",Ndt=!1,QW=4,ZW=2;var wPt;const pDe=function(){return wPt},bDe=function(i){wPt=Q1(i,Oe())},wDe=function(i,a,f,p,w,m,b,E,_){if(i==null||a===void 0||a===null||f===void 0||f===null||p===void 0||p===null)return;let A={};const I=lF.find(B=>B.from===a&&B.to===f);if(I?A=I:lF.push(A),A.type=i,A.from=a,A.to=f,A.label={text:p},w==null)A.techn={text:""};else if(typeof w=="object"){let[B,N]=Object.entries(w)[0];A[B]={text:N}}else A.techn={text:w};if(m==null)A.descr={text:""};else if(typeof m=="object"){let[B,N]=Object.entries(m)[0];A[B]={text:N}}else A.descr={text:m};if(typeof b=="object"){let[B,N]=Object.entries(b)[0];A[B]=N}else A.sprite=b;if(typeof E=="object"){let[B,N]=Object.entries(E)[0];A[B]=N}else A.tags=E;if(typeof _=="object"){let[B,N]=Object.entries(_)[0];A[B]=N}else A.link=_;A.wrap=dk()},vDe=function(i,a,f,p,w,m,b){if(a===null||f===null)return;let E={};const _=am.find(A=>A.alias===a);if(_&&a===_.alias?E=_:(E.alias=a,am.push(E)),f==null?E.label={text:""}:E.label={text:f},p==null)E.descr={text:""};else if(typeof p=="object"){let[A,I]=Object.entries(p)[0];E[A]={text:I}}else E.descr={text:p};if(typeof w=="object"){let[A,I]=Object.entries(w)[0];E[A]=I}else E.sprite=w;if(typeof m=="object"){let[A,I]=Object.entries(m)[0];E[A]=I}else E.tags=m;if(typeof b=="object"){let[A,I]=Object.entries(b)[0];E[A]=I}else E.link=b;E.typeC4Shape={text:i},E.parentBoundary=wg,E.wrap=dk()},mDe=function(i,a,f,p,w,m,b,E){if(a===null||f===null)return;let _={};const A=am.find(I=>I.alias===a);if(A&&a===A.alias?_=A:(_.alias=a,am.push(_)),f==null?_.label={text:""}:_.label={text:f},p==null)_.techn={text:""};else if(typeof p=="object"){let[I,B]=Object.entries(p)[0];_[I]={text:B}}else _.techn={text:p};if(w==null)_.descr={text:""};else if(typeof w=="object"){let[I,B]=Object.entries(w)[0];_[I]={text:B}}else _.descr={text:w};if(typeof m=="object"){let[I,B]=Object.entries(m)[0];_[I]=B}else _.sprite=m;if(typeof b=="object"){let[I,B]=Object.entries(b)[0];_[I]=B}else _.tags=b;if(typeof E=="object"){let[I,B]=Object.entries(E)[0];_[I]=B}else _.link=E;_.wrap=dk(),_.typeC4Shape={text:i},_.parentBoundary=wg},yDe=function(i,a,f,p,w,m,b,E){if(a===null||f===null)return;let _={};const A=am.find(I=>I.alias===a);if(A&&a===A.alias?_=A:(_.alias=a,am.push(_)),f==null?_.label={text:""}:_.label={text:f},p==null)_.techn={text:""};else if(typeof p=="object"){let[I,B]=Object.entries(p)[0];_[I]={text:B}}else _.techn={text:p};if(w==null)_.descr={text:""};else if(typeof w=="object"){let[I,B]=Object.entries(w)[0];_[I]={text:B}}else _.descr={text:w};if(typeof m=="object"){let[I,B]=Object.entries(m)[0];_[I]=B}else _.sprite=m;if(typeof b=="object"){let[I,B]=Object.entries(b)[0];_[I]=B}else _.tags=b;if(typeof E=="object"){let[I,B]=Object.entries(E)[0];_[I]=B}else _.link=E;_.wrap=dk(),_.typeC4Shape={text:i},_.parentBoundary=wg},xDe=function(i,a,f,p,w){if(i===null||a===null)return;let m={};const b=p3.find(E=>E.alias===i);if(b&&i===b.alias?m=b:(m.alias=i,p3.push(m)),a==null?m.label={text:""}:m.label={text:a},f==null)m.type={text:"system"};else if(typeof f=="object"){let[E,_]=Object.entries(f)[0];m[E]={text:_}}else m.type={text:f};if(typeof p=="object"){let[E,_]=Object.entries(p)[0];m[E]=_}else m.tags=p;if(typeof w=="object"){let[E,_]=Object.entries(w)[0];m[E]=_}else m.link=w;m.parentBoundary=wg,m.wrap=dk(),om=wg,wg=i,fk.push(om)},kDe=function(i,a,f,p,w){if(i===null||a===null)return;let m={};const b=p3.find(E=>E.alias===i);if(b&&i===b.alias?m=b:(m.alias=i,p3.push(m)),a==null?m.label={text:""}:m.label={text:a},f==null)m.type={text:"container"};else if(typeof f=="object"){let[E,_]=Object.entries(f)[0];m[E]={text:_}}else m.type={text:f};if(typeof p=="object"){let[E,_]=Object.entries(p)[0];m[E]=_}else m.tags=p;if(typeof w=="object"){let[E,_]=Object.entries(w)[0];m[E]=_}else m.link=w;m.parentBoundary=wg,m.wrap=dk(),om=wg,wg=i,fk.push(om)},EDe=function(i,a,f,p,w,m,b,E){if(a===null||f===null)return;let _={};const A=p3.find(I=>I.alias===a);if(A&&a===A.alias?_=A:(_.alias=a,p3.push(_)),f==null?_.label={text:""}:_.label={text:f},p==null)_.type={text:"node"};else if(typeof p=="object"){let[I,B]=Object.entries(p)[0];_[I]={text:B}}else _.type={text:p};if(w==null)_.descr={text:""};else if(typeof w=="object"){let[I,B]=Object.entries(w)[0];_[I]={text:B}}else _.descr={text:w};if(typeof b=="object"){let[I,B]=Object.entries(b)[0];_[I]=B}else _.tags=b;if(typeof E=="object"){let[I,B]=Object.entries(E)[0];_[I]=B}else _.link=E;_.nodeType=i,_.parentBoundary=wg,_.wrap=dk(),om=wg,wg=a,fk.push(om)},TDe=function(){wg=om,fk.pop(),om=fk.pop(),fk.push(om)},CDe=function(i,a,f,p,w,m,b,E,_,A,I){let B=am.find(N=>N.alias===a);if(!(B===void 0&&(B=p3.find(N=>N.alias===a),B===void 0))){if(f!=null)if(typeof f=="object"){let[N,R]=Object.entries(f)[0];B[N]=R}else B.bgColor=f;if(p!=null)if(typeof p=="object"){let[N,R]=Object.entries(p)[0];B[N]=R}else B.fontColor=p;if(w!=null)if(typeof w=="object"){let[N,R]=Object.entries(w)[0];B[N]=R}else B.borderColor=w;if(m!=null)if(typeof m=="object"){let[N,R]=Object.entries(m)[0];B[N]=R}else B.shadowing=m;if(b!=null)if(typeof b=="object"){let[N,R]=Object.entries(b)[0];B[N]=R}else B.shape=b;if(E!=null)if(typeof E=="object"){let[N,R]=Object.entries(E)[0];B[N]=R}else B.sprite=E;if(_!=null)if(typeof _=="object"){let[N,R]=Object.entries(_)[0];B[N]=R}else B.techn=_;if(A!=null)if(typeof A=="object"){let[N,R]=Object.entries(A)[0];B[N]=R}else B.legendText=A;if(I!=null)if(typeof I=="object"){let[N,R]=Object.entries(I)[0];B[N]=R}else B.legendSprite=I}},_De=function(i,a,f,p,w,m,b){const E=lF.find(_=>_.from===a&&_.to===f);if(E!==void 0){if(p!=null)if(typeof p=="object"){let[_,A]=Object.entries(p)[0];E[_]=A}else E.textColor=p;if(w!=null)if(typeof w=="object"){let[_,A]=Object.entries(w)[0];E[_]=A}else E.lineColor=w;if(m!=null)if(typeof m=="object"){let[_,A]=Object.entries(m)[0];E[_]=parseInt(A)}else E.offsetX=parseInt(m);if(b!=null)if(typeof b=="object"){let[_,A]=Object.entries(b)[0];E[_]=parseInt(A)}else E.offsetY=parseInt(b)}},SDe=function(i,a,f){let p=QW,w=ZW;if(typeof a=="object"){const m=Object.values(a)[0];p=parseInt(m)}else p=parseInt(a);if(typeof f=="object"){const m=Object.values(f)[0];w=parseInt(m)}else w=parseInt(f);p>=1&&(QW=p),w>=1&&(ZW=w)},ADe=function(){return QW},LDe=function(){return ZW},MDe=function(){return wg},DDe=function(){return om},vPt=function(i){return i==null?am:am.filter(a=>a.parentBoundary===i)},IDe=function(i){return am.find(a=>a.alias===i)},ODe=function(i){return Object.keys(vPt(i))},PDe=function(i){return i==null?p3:p3.filter(a=>a.parentBoundary===i)},FDe=function(){return lF},NDe=function(){return Fdt},BDe=function(i){Ndt=i},dk=function(){return Ndt},Bdt={addPersonOrSystem:vDe,addPersonOrSystemBoundary:xDe,addContainer:mDe,addContainerBoundary:kDe,addComponent:yDe,addDeploymentNode:EDe,popBoundaryParseStack:TDe,addRel:wDe,updateElStyle:CDe,updateRelStyle:_De,updateLayoutConfig:SDe,autoWrap:dk,setWrap:BDe,getC4ShapeArray:vPt,getC4Shape:IDe,getC4ShapeKeys:ODe,getBoundarys:PDe,getCurrentBoundaryParse:MDe,getParentBoundaryParse:DDe,getRels:FDe,getTitle:NDe,getC4Type:pDe,getC4ShapeInRow:ADe,getC4BoundaryInRow:LDe,setAccTitle:E0,getAccTitle:fg,getAccDescription:gg,setAccDescription:dg,getConfig:()=>Oe().c4,clear:function(){am=[],p3=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],om="",wg="global",fk=[""],lF=[],fk=[""],Fdt="",Ndt=!1,QW=4,ZW=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(i){Fdt=Q1(i,Oe())},setC4Type:bDe},JW=(i,a)=>{const f=i.append("rect");if(f.attr("x",a.x),f.attr("y",a.y),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("width",a.width),f.attr("height",a.height),a.rx!==void 0&&f.attr("rx",a.rx),a.ry!==void 0&&f.attr("ry",a.ry),a.attrs!==void 0)for(const p in a.attrs)f.attr(p,a.attrs[p]);return a.class!==void 0&&f.attr("class",a.class),f},mPt=(i,a)=>{const f={x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,stroke:a.stroke,class:"rect"};JW(i,f).lower()},RDe=(i,a)=>{const f=a.text.replace(WP," "),p=i.append("text");p.attr("x",a.x),p.attr("y",a.y),p.attr("class","legend"),p.style("text-anchor",a.anchor),a.class!==void 0&&p.attr("class",a.class);const w=p.append("tspan");return w.attr("x",a.x+a.textMargin*2),w.text(f),p},jDe=(i,a,f,p)=>{const w=i.append("image");w.attr("x",a),w.attr("y",f);const m=ik(p);w.attr("xlink:href",m)},$De=(i,a,f,p)=>{const w=i.append("use");w.attr("x",a),w.attr("y",f);const m=ik(p);w.attr("xlink:href",`#${m}`)},bT=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),Rdt=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),jdt=function(i,a){return JW(i,a)},yPt=function(i,a,f,p,w,m){const b=i.append("image");b.attr("width",a),b.attr("height",f),b.attr("x",p),b.attr("y",w);let E=m.startsWith("data:image/png;base64")?m:ik(m);b.attr("xlink:href",E)},zDe=(i,a,f)=>{const p=i.append("g");let w=0;for(let m of a){let b=m.textColor?m.textColor:"#444444",E=m.lineColor?m.lineColor:"#444444",_=m.offsetX?parseInt(m.offsetX):0,A=m.offsetY?parseInt(m.offsetY):0,I="";if(w===0){let N=p.append("line");N.attr("x1",m.startPoint.x),N.attr("y1",m.startPoint.y),N.attr("x2",m.endPoint.x),N.attr("y2",m.endPoint.y),N.attr("stroke-width","1"),N.attr("stroke",E),N.style("fill","none"),m.type!=="rel_b"&&N.attr("marker-end","url("+I+"#arrowhead)"),(m.type==="birel"||m.type==="rel_b")&&N.attr("marker-start","url("+I+"#arrowend)"),w=-1}else{let N=p.append("path");N.attr("fill","none").attr("stroke-width","1").attr("stroke",E).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",m.startPoint.x).replaceAll("starty",m.startPoint.y).replaceAll("controlx",m.startPoint.x+(m.endPoint.x-m.startPoint.x)/2-(m.endPoint.x-m.startPoint.x)/4).replaceAll("controly",m.startPoint.y+(m.endPoint.y-m.startPoint.y)/2).replaceAll("stopx",m.endPoint.x).replaceAll("stopy",m.endPoint.y)),m.type!=="rel_b"&&N.attr("marker-end","url("+I+"#arrowhead)"),(m.type==="birel"||m.type==="rel_b")&&N.attr("marker-start","url("+I+"#arrowend)")}let B=f.messageFont();L5(f)(m.label.text,p,Math.min(m.startPoint.x,m.endPoint.x)+Math.abs(m.endPoint.x-m.startPoint.x)/2+_,Math.min(m.startPoint.y,m.endPoint.y)+Math.abs(m.endPoint.y-m.startPoint.y)/2+A,m.label.width,m.label.height,{fill:b},B),m.techn&&m.techn.text!==""&&(B=f.messageFont(),L5(f)("["+m.techn.text+"]",p,Math.min(m.startPoint.x,m.endPoint.x)+Math.abs(m.endPoint.x-m.startPoint.x)/2+_,Math.min(m.startPoint.y,m.endPoint.y)+Math.abs(m.endPoint.y-m.startPoint.y)/2+f.messageFontSize+5+A,Math.max(m.label.width,m.techn.width),m.techn.height,{fill:b,"font-style":"italic"},B))}},qDe=function(i,a,f){const p=i.append("g");let w=a.bgColor?a.bgColor:"none",m=a.borderColor?a.borderColor:"#444444",b=a.fontColor?a.fontColor:"black",E={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};a.nodeType&&(E={"stroke-width":1});let _={x:a.x,y:a.y,fill:w,stroke:m,width:a.width,height:a.height,rx:2.5,ry:2.5,attrs:E};jdt(p,_);let A=f.boundaryFont();A.fontWeight="bold",A.fontSize=A.fontSize+2,A.fontColor=b,L5(f)(a.label.text,p,a.x,a.y+a.label.Y,a.width,a.height,{fill:"#444444"},A),a.type&&a.type.text!==""&&(A=f.boundaryFont(),A.fontColor=b,L5(f)(a.type.text,p,a.x,a.y+a.type.Y,a.width,a.height,{fill:"#444444"},A)),a.descr&&a.descr.text!==""&&(A=f.boundaryFont(),A.fontSize=A.fontSize-2,A.fontColor=b,L5(f)(a.descr.text,p,a.x,a.y+a.descr.Y,a.width,a.height,{fill:"#444444"},A))},HDe=function(i,a,f){var B;let p=a.bgColor?a.bgColor:f[a.typeC4Shape.text+"_bg_color"],w=a.borderColor?a.borderColor:f[a.typeC4Shape.text+"_border_color"],m=a.fontColor?a.fontColor:"#FFFFFF",b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(a.typeC4Shape.text){case"person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const E=i.append("g");E.attr("class","person-man");const _=bT();switch(a.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":_.x=a.x,_.y=a.y,_.fill=p,_.width=a.width,_.height=a.height,_.stroke=w,_.rx=2.5,_.ry=2.5,_.attrs={"stroke-width":.5},jdt(E,_);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":E.append("path").attr("fill",p).attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("half",a.width/2).replaceAll("height",a.height)),E.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("half",a.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":E.append("path").attr("fill",p).attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("width",a.width).replaceAll("half",a.height/2)),E.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",a.x+a.width).replaceAll("starty",a.y).replaceAll("half",a.height/2));break}let A=ZDe(f,a.typeC4Shape.text);switch(E.append("text").attr("fill",m).attr("font-family",A.fontFamily).attr("font-size",A.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",a.typeC4Shape.width).attr("x",a.x+a.width/2-a.typeC4Shape.width/2).attr("y",a.y+a.typeC4Shape.Y).text("<<"+a.typeC4Shape.text+">>"),a.typeC4Shape.text){case"person":case"external_person":yPt(E,48,48,a.x+a.width/2-24,a.y+a.image.Y,b);break}let I=f[a.typeC4Shape.text+"Font"]();return I.fontWeight="bold",I.fontSize=I.fontSize+2,I.fontColor=m,L5(f)(a.label.text,E,a.x,a.y+a.label.Y,a.width,a.height,{fill:m},I),I=f[a.typeC4Shape.text+"Font"](),I.fontColor=m,a.techn&&((B=a.techn)==null?void 0:B.text)!==""?L5(f)(a.techn.text,E,a.x,a.y+a.techn.Y,a.width,a.height,{fill:m,"font-style":"italic"},I):a.type&&a.type.text!==""&&L5(f)(a.type.text,E,a.x,a.y+a.type.Y,a.width,a.height,{fill:m,"font-style":"italic"},I),a.descr&&a.descr.text!==""&&(I=f.personFont(),I.fontColor=m,L5(f)(a.descr.text,E,a.x,a.y+a.descr.Y,a.width,a.height,{fill:m},I)),a.height},VDe=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},GDe=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},UDe=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},WDe=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},YDe=function(i){i.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},KDe=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},XDe=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},QDe=function(i){const f=i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);f.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),f.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},ZDe=(i,a)=>({fontFamily:i[a+"FontFamily"],fontSize:i[a+"FontSize"],fontWeight:i[a+"FontWeight"]}),L5=function(){function i(w,m,b,E,_,A,I){const B=m.append("text").attr("x",b+_/2).attr("y",E+A/2+5).style("text-anchor","middle").text(w);p(B,I)}function a(w,m,b,E,_,A,I,B){const{fontSize:N,fontFamily:R,fontWeight:z}=B,W=w.split(Kr.lineBreakRegex);for(let et=0;et=this.data.widthLimit||p>=this.data.widthLimit||this.nextData.cnt>xPt)&&(f=this.nextData.startx+a.margin+ds.nextLinePaddingX,w=this.nextData.stopy+a.margin*2,this.nextData.stopx=p=f+a.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=m=w+a.height,this.nextData.cnt=1),a.x=f,a.y=w,this.updateVal(this.data,"startx",f,Math.min),this.updateVal(this.data,"starty",w,Math.min),this.updateVal(this.data,"stopx",p,Math.max),this.updateVal(this.data,"stopy",m,Math.max),this.updateVal(this.nextData,"startx",f,Math.min),this.updateVal(this.nextData,"starty",w,Math.min),this.updateVal(this.nextData,"stopx",p,Math.max),this.updateVal(this.nextData,"stopy",m,Math.max)}init(a){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},zdt(a.db.getConfig())}bumpLastMargin(a){this.data.stopx+=a,this.data.stopy+=a}}const zdt=function(i){Z1(ds,i),i.fontFamily&&(ds.personFontFamily=ds.systemFontFamily=ds.messageFontFamily=i.fontFamily),i.fontSize&&(ds.personFontSize=ds.systemFontSize=ds.messageFontSize=i.fontSize),i.fontWeight&&(ds.personFontWeight=ds.systemFontWeight=ds.messageFontWeight=i.fontWeight)},hF=(i,a)=>({fontFamily:i[a+"FontFamily"],fontSize:i[a+"FontSize"],fontWeight:i[a+"FontWeight"]}),nY=i=>({fontFamily:i.boundaryFontFamily,fontSize:i.boundaryFontSize,fontWeight:i.boundaryFontWeight}),JDe=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight});function cm(i,a,f,p,w){if(!a[i].width)if(f)a[i].text=UIt(a[i].text,w,p),a[i].textLines=a[i].text.split(Kr.lineBreakRegex).length,a[i].width=w,a[i].height=odt(a[i].text,p);else{let m=a[i].text.split(Kr.lineBreakRegex);a[i].textLines=m.length;let b=0;a[i].height=0,a[i].width=0;for(const E of m)a[i].width=Math.max(d3(E,p),a[i].width),b=odt(E,p),a[i].height=a[i].height+b}}const EPt=function(i,a,f){a.x=f.data.startx,a.y=f.data.starty,a.width=f.data.stopx-f.data.startx,a.height=f.data.stopy-f.data.starty,a.label.y=ds.c4ShapeMargin-35;let p=a.wrap&&ds.wrap,w=nY(ds);w.fontSize=w.fontSize+2,w.fontWeight="bold";let m=d3(a.label.text,w);cm("label",a,p,w,m),b3.drawBoundary(i,a,ds)},TPt=function(i,a,f,p){let w=0;for(const m of p){w=0;const b=f[m];let E=hF(ds,b.typeC4Shape.text);switch(E.fontSize=E.fontSize-2,b.typeC4Shape.width=d3("«"+b.typeC4Shape.text+"»",E),b.typeC4Shape.height=E.fontSize+2,b.typeC4Shape.Y=ds.c4ShapePadding,w=b.typeC4Shape.Y+b.typeC4Shape.height-4,b.image={width:0,height:0,Y:0},b.typeC4Shape.text){case"person":case"external_person":b.image.width=48,b.image.height=48,b.image.Y=w,w=b.image.Y+b.image.height;break}b.sprite&&(b.image.width=48,b.image.height=48,b.image.Y=w,w=b.image.Y+b.image.height);let _=b.wrap&&ds.wrap,A=ds.width-ds.c4ShapePadding*2,I=hF(ds,b.typeC4Shape.text);if(I.fontSize=I.fontSize+2,I.fontWeight="bold",cm("label",b,_,I,A),b.label.Y=w+8,w=b.label.Y+b.label.height,b.type&&b.type.text!==""){b.type.text="["+b.type.text+"]";let R=hF(ds,b.typeC4Shape.text);cm("type",b,_,R,A),b.type.Y=w+5,w=b.type.Y+b.type.height}else if(b.techn&&b.techn.text!==""){b.techn.text="["+b.techn.text+"]";let R=hF(ds,b.techn.text);cm("techn",b,_,R,A),b.techn.Y=w+5,w=b.techn.Y+b.techn.height}let B=w,N=b.label.width;if(b.descr&&b.descr.text!==""){let R=hF(ds,b.typeC4Shape.text);cm("descr",b,_,R,A),b.descr.Y=w+20,w=b.descr.Y+b.descr.height,N=Math.max(b.label.width,b.descr.width),B=w-b.descr.textLines*5}N=N+ds.c4ShapePadding,b.width=Math.max(b.width||ds.width,N,ds.width),b.height=Math.max(b.height||ds.height,B,ds.height),b.margin=b.margin||ds.c4ShapeMargin,i.insert(b),b3.drawC4Shape(a,b,ds)}i.bumpLastMargin(ds.c4ShapeMargin)};let rw=class{constructor(a,f){this.x=a,this.y=f}},CPt=function(i,a){let f=i.x,p=i.y,w=a.x,m=a.y,b=f+i.width/2,E=p+i.height/2,_=Math.abs(f-w),A=Math.abs(p-m),I=A/_,B=i.height/i.width,N=null;return p==m&&fw?N=new rw(f,E):f==w&&pm&&(N=new rw(b,p)),f>w&&p=I?N=new rw(f,E+I*i.width/2):N=new rw(b-_/A*i.height/2,p+i.height):f=I?N=new rw(f+i.width,E+I*i.width/2):N=new rw(b+_/A*i.height/2,p+i.height):fm?B>=I?N=new rw(f+i.width,E-I*i.width/2):N=new rw(b+i.height/2*_/A,p):f>w&&p>m&&(B>=I?N=new rw(f,E-i.width/2*I):N=new rw(b-i.height/2*_/A,p)),N},tIe=function(i,a){let f={x:0,y:0};f.x=a.x+a.width/2,f.y=a.y+a.height/2;let p=CPt(i,f);f.x=i.x+i.width/2,f.y=i.y+i.height/2;let w=CPt(a,f);return{startPoint:p,endPoint:w}};const eIe=function(i,a,f,p){let w=0;for(let m of a){w=w+1;let b=m.wrap&&ds.wrap,E=JDe(ds);p.db.getC4Type()==="C4Dynamic"&&(m.label.text=w+": "+m.label.text);let A=d3(m.label.text,E);cm("label",m,b,E,A),m.techn&&m.techn.text!==""&&(A=d3(m.techn.text,E),cm("techn",m,b,E,A)),m.descr&&m.descr.text!==""&&(A=d3(m.descr.text,E),cm("descr",m,b,E,A));let I=f(m.from),B=f(m.to),N=tIe(I,B);m.startPoint=N.startPoint,m.endPoint=N.endPoint}b3.drawRels(i,a,ds)};function _Pt(i,a,f,p,w){let m=new kPt(w);m.data.widthLimit=f.data.widthLimit/Math.min($dt,p.length);for(let[b,E]of p.entries()){let _=0;E.image={width:0,height:0,Y:0},E.sprite&&(E.image.width=48,E.image.height=48,E.image.Y=_,_=E.image.Y+E.image.height);let A=E.wrap&&ds.wrap,I=nY(ds);if(I.fontSize=I.fontSize+2,I.fontWeight="bold",cm("label",E,A,I,m.data.widthLimit),E.label.Y=_+8,_=E.label.Y+E.label.height,E.type&&E.type.text!==""){E.type.text="["+E.type.text+"]";let z=nY(ds);cm("type",E,A,z,m.data.widthLimit),E.type.Y=_+5,_=E.type.Y+E.type.height}if(E.descr&&E.descr.text!==""){let z=nY(ds);z.fontSize=z.fontSize-2,cm("descr",E,A,z,m.data.widthLimit),E.descr.Y=_+20,_=E.descr.Y+E.descr.height}if(b==0||b%$dt===0){let z=f.data.startx+ds.diagramMarginX,W=f.data.stopy+ds.diagramMarginY+_;m.setData(z,z,W,W)}else{let z=m.data.stopx!==m.data.startx?m.data.stopx+ds.diagramMarginX:m.data.startx,W=m.data.starty;m.setData(z,z,W,W)}m.name=E.alias;let B=w.db.getC4ShapeArray(E.alias),N=w.db.getC4ShapeKeys(E.alias);N.length>0&&TPt(m,i,B,N),a=E.alias;let R=w.db.getBoundarys(a);R.length>0&&_Pt(i,a,m,R,w),E.alias!=="global"&&EPt(i,E,m),f.data.stopy=Math.max(m.data.stopy+ds.c4ShapeMargin,f.data.stopy),f.data.stopx=Math.max(m.data.stopx+ds.c4ShapeMargin,f.data.stopx),tY=Math.max(tY,f.data.stopx),eY=Math.max(eY,f.data.stopy)}}const SPt={drawPersonOrSystemArray:TPt,drawBoundary:EPt,setConf:zdt,draw:function(i,a,f,p){ds=Oe().c4;const w=Oe().securityLevel;let m;w==="sandbox"&&(m=yr("#i"+a));const b=yr(w==="sandbox"?m.nodes()[0].contentDocument.body:"body");let E=p.db;p.db.setWrap(ds.wrap),xPt=E.getC4ShapeInRow(),$dt=E.getC4BoundaryInRow(),Ut.debug(`C:${JSON.stringify(ds,null,2)}`);const _=w==="sandbox"?b.select(`[id="${a}"]`):yr(`[id="${a}"]`);b3.insertComputerIcon(_),b3.insertDatabaseIcon(_),b3.insertClockIcon(_);let A=new kPt(p);A.setData(ds.diagramMarginX,ds.diagramMarginX,ds.diagramMarginY,ds.diagramMarginY),A.data.widthLimit=screen.availWidth,tY=ds.diagramMarginX,eY=ds.diagramMarginY;const I=p.db.getTitle();let B=p.db.getBoundarys("");_Pt(_,"",A,B,p),b3.insertArrowHead(_),b3.insertArrowEnd(_),b3.insertArrowCrossHead(_),b3.insertArrowFilledHead(_),eIe(_,p.db.getRels(),p.db.getC4Shape,p),A.data.stopx=tY,A.data.stopy=eY;const N=A.data;let z=N.stopy-N.starty+2*ds.diagramMarginY;const et=N.stopx-N.startx+2*ds.diagramMarginX;I&&_.append("text").text(I).attr("x",(N.stopx-N.startx)/2-4*ds.diagramMarginX).attr("y",N.starty+ds.diagramMarginY),k0(_,z,et,ds.useMaxWidth);const st=I?60:0;_.attr("viewBox",N.startx-ds.diagramMarginX+" -"+(ds.diagramMarginY+st)+" "+et+" "+(z+st)),Ut.debug("models:",N)}},nIe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:gDe,db:Bdt,renderer:SPt,styles:i=>`.person { - stroke: ${i.personBorder}; - fill: ${i.personBkg}; - } -`,init:({c4:i,wrap:a})=>{SPt.setConf(i),Bdt.setWrap(a)}}},Symbol.toStringTag,{value:"Module"}));var qdt=function(){var i=function(af,Qi,Ts,ka){for(Ts=Ts||{},ka=af.length;ka--;Ts[af[ka]]=Qi);return Ts},a=[1,4],f=[1,3],p=[1,5],w=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],m=[2,2],b=[1,13],E=[1,14],_=[1,15],A=[1,16],I=[1,23],B=[1,25],N=[1,26],R=[1,27],z=[1,49],W=[1,48],et=[1,29],st=[1,30],at=[1,31],bt=[1,32],mt=[1,33],yt=[1,44],ft=[1,46],ut=[1,42],vt=[1,47],X=[1,43],pt=[1,50],U=[1,45],Tt=[1,51],nt=[1,52],It=[1,34],Ot=[1,35],Bt=[1,36],Et=[1,37],Z=[1,57],Ct=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],xt=[1,61],Ht=[1,60],Le=[1,62],Ft=[8,9,11,73,75],gn=[1,88],Se=[1,93],me=[1,92],Ve=[1,89],Ye=[1,85],ce=[1,91],ke=[1,87],zt=[1,94],re=[1,90],se=[1,95],Pe=[1,86],te=[8,9,10,11,73,75],Me=[8,9,10,11,44,73,75],de=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],on=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],ni=[42,58,86,99,102,103,106,108,111,112,113],Ks=[1,121],ws=[1,120],fo=[1,128],Xi=[1,142],Er=[1,143],Xn=[1,144],di=[1,145],Ee=[1,130],Kn=[1,132],He=[1,136],Ti=[1,137],pn=[1,138],Es=[1,139],qa=[1,140],Ma=[1,141],Gs=[1,146],Po=[1,147],vs=[1,126],ru=[1,127],zs=[1,134],Du=[1,129],pm=[1,133],uw=[1,131],Wu=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],th=[1,149],Fa=[8,9,11],Ml=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],ha=[1,169],bc=[1,165],Cc=[1,166],pa=[1,170],Da=[1,167],Ha=[1,168],Dl=[75,113,116],_c=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],lw=[10,103],eh=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],ed=[1,235],jd=[1,233],nd=[1,237],$d=[1,231],A0=[1,232],Bi=[1,234],cn=[1,236],kr=[1,238],Ei=[1,255],Jo=[8,9,11,103],wc=[8,9,10,11,58,81,102,103,106,107,108,109],rf={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(Qi,Ts,ka,xi,Yc,Ce,vp){var Be=Ce.length-1;switch(Yc){case 2:this.$=[];break;case 3:(!Array.isArray(Ce[Be])||Ce[Be].length>0)&&Ce[Be-1].push(Ce[Be]),this.$=Ce[Be-1];break;case 4:case 176:this.$=Ce[Be];break;case 11:xi.setDirection("TB"),this.$="TB";break;case 12:xi.setDirection(Ce[Be-1]),this.$=Ce[Be-1];break;case 27:this.$=Ce[Be-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=xi.addSubGraph(Ce[Be-6],Ce[Be-1],Ce[Be-4]);break;case 34:this.$=xi.addSubGraph(Ce[Be-3],Ce[Be-1],Ce[Be-3]);break;case 35:this.$=xi.addSubGraph(void 0,Ce[Be-1],void 0);break;case 37:this.$=Ce[Be].trim(),xi.setAccTitle(this.$);break;case 38:case 39:this.$=Ce[Be].trim(),xi.setAccDescription(this.$);break;case 43:xi.addLink(Ce[Be-2].stmt,Ce[Be],Ce[Be-1]),this.$={stmt:Ce[Be],nodes:Ce[Be].concat(Ce[Be-2].nodes)};break;case 44:xi.addLink(Ce[Be-3].stmt,Ce[Be-1],Ce[Be-2]),this.$={stmt:Ce[Be-1],nodes:Ce[Be-1].concat(Ce[Be-3].nodes)};break;case 45:this.$={stmt:Ce[Be-1],nodes:Ce[Be-1]};break;case 46:this.$={stmt:Ce[Be],nodes:Ce[Be]};break;case 47:this.$=[Ce[Be]];break;case 48:this.$=Ce[Be-4].concat(Ce[Be]);break;case 49:this.$=Ce[Be];break;case 50:this.$=Ce[Be-2],xi.setClass(Ce[Be-2],Ce[Be]);break;case 51:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"square");break;case 52:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"doublecircle");break;case 53:this.$=Ce[Be-5],xi.addVertex(Ce[Be-5],Ce[Be-2],"circle");break;case 54:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"ellipse");break;case 55:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"stadium");break;case 56:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"subroutine");break;case 57:this.$=Ce[Be-7],xi.addVertex(Ce[Be-7],Ce[Be-1],"rect",void 0,void 0,void 0,Object.fromEntries([[Ce[Be-5],Ce[Be-3]]]));break;case 58:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"cylinder");break;case 59:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"round");break;case 60:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"diamond");break;case 61:this.$=Ce[Be-5],xi.addVertex(Ce[Be-5],Ce[Be-2],"hexagon");break;case 62:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"odd");break;case 63:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"trapezoid");break;case 64:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"inv_trapezoid");break;case 65:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"lean_right");break;case 66:this.$=Ce[Be-3],xi.addVertex(Ce[Be-3],Ce[Be-1],"lean_left");break;case 67:this.$=Ce[Be],xi.addVertex(Ce[Be]);break;case 68:Ce[Be-1].text=Ce[Be],this.$=Ce[Be-1];break;case 69:case 70:Ce[Be-2].text=Ce[Be-1],this.$=Ce[Be-2];break;case 71:this.$=Ce[Be];break;case 72:var Bf=xi.destructLink(Ce[Be],Ce[Be-2]);this.$={type:Bf.type,stroke:Bf.stroke,length:Bf.length,text:Ce[Be-1]};break;case 73:this.$={text:Ce[Be],type:"text"};break;case 74:this.$={text:Ce[Be-1].text+""+Ce[Be],type:Ce[Be-1].type};break;case 75:this.$={text:Ce[Be],type:"string"};break;case 76:this.$={text:Ce[Be],type:"markdown"};break;case 77:var Bf=xi.destructLink(Ce[Be]);this.$={type:Bf.type,stroke:Bf.stroke,length:Bf.length};break;case 78:this.$=Ce[Be-1];break;case 79:this.$={text:Ce[Be],type:"text"};break;case 80:this.$={text:Ce[Be-1].text+""+Ce[Be],type:Ce[Be-1].type};break;case 81:this.$={text:Ce[Be],type:"string"};break;case 82:case 97:this.$={text:Ce[Be],type:"markdown"};break;case 94:this.$={text:Ce[Be],type:"text"};break;case 95:this.$={text:Ce[Be-1].text+""+Ce[Be],type:Ce[Be-1].type};break;case 96:this.$={text:Ce[Be],type:"text"};break;case 98:this.$=Ce[Be-4],xi.addClass(Ce[Be-2],Ce[Be]);break;case 99:this.$=Ce[Be-4],xi.setClass(Ce[Be-2],Ce[Be]);break;case 100:case 108:this.$=Ce[Be-1],xi.setClickEvent(Ce[Be-1],Ce[Be]);break;case 101:case 109:this.$=Ce[Be-3],xi.setClickEvent(Ce[Be-3],Ce[Be-2]),xi.setTooltip(Ce[Be-3],Ce[Be]);break;case 102:this.$=Ce[Be-2],xi.setClickEvent(Ce[Be-2],Ce[Be-1],Ce[Be]);break;case 103:this.$=Ce[Be-4],xi.setClickEvent(Ce[Be-4],Ce[Be-3],Ce[Be-2]),xi.setTooltip(Ce[Be-4],Ce[Be]);break;case 104:this.$=Ce[Be-2],xi.setLink(Ce[Be-2],Ce[Be]);break;case 105:this.$=Ce[Be-4],xi.setLink(Ce[Be-4],Ce[Be-2]),xi.setTooltip(Ce[Be-4],Ce[Be]);break;case 106:this.$=Ce[Be-4],xi.setLink(Ce[Be-4],Ce[Be-2],Ce[Be]);break;case 107:this.$=Ce[Be-6],xi.setLink(Ce[Be-6],Ce[Be-4],Ce[Be]),xi.setTooltip(Ce[Be-6],Ce[Be-2]);break;case 110:this.$=Ce[Be-1],xi.setLink(Ce[Be-1],Ce[Be]);break;case 111:this.$=Ce[Be-3],xi.setLink(Ce[Be-3],Ce[Be-2]),xi.setTooltip(Ce[Be-3],Ce[Be]);break;case 112:this.$=Ce[Be-3],xi.setLink(Ce[Be-3],Ce[Be-2],Ce[Be]);break;case 113:this.$=Ce[Be-5],xi.setLink(Ce[Be-5],Ce[Be-4],Ce[Be]),xi.setTooltip(Ce[Be-5],Ce[Be-2]);break;case 114:this.$=Ce[Be-4],xi.addVertex(Ce[Be-2],void 0,void 0,Ce[Be]);break;case 115:this.$=Ce[Be-4],xi.updateLink([Ce[Be-2]],Ce[Be]);break;case 116:this.$=Ce[Be-4],xi.updateLink(Ce[Be-2],Ce[Be]);break;case 117:this.$=Ce[Be-8],xi.updateLinkInterpolate([Ce[Be-6]],Ce[Be-2]),xi.updateLink([Ce[Be-6]],Ce[Be]);break;case 118:this.$=Ce[Be-8],xi.updateLinkInterpolate(Ce[Be-6],Ce[Be-2]),xi.updateLink(Ce[Be-6],Ce[Be]);break;case 119:this.$=Ce[Be-6],xi.updateLinkInterpolate([Ce[Be-4]],Ce[Be]);break;case 120:this.$=Ce[Be-6],xi.updateLinkInterpolate(Ce[Be-4],Ce[Be]);break;case 121:case 123:this.$=[Ce[Be]];break;case 122:case 124:Ce[Be-2].push(Ce[Be]),this.$=Ce[Be-2];break;case 126:this.$=Ce[Be-1]+Ce[Be];break;case 174:this.$=Ce[Be];break;case 175:this.$=Ce[Be-1]+""+Ce[Be];break;case 177:this.$=Ce[Be-1]+""+Ce[Be];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:a,10:f,12:p},{1:[3]},i(w,m,{5:6}),{4:7,9:a,10:f,12:p},{4:8,9:a,10:f,12:p},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:b,9:E,10:_,11:A,20:17,22:18,23:19,24:20,25:21,26:22,27:I,33:24,34:B,36:N,38:R,40:28,41:38,42:z,43:39,45:40,58:W,81:et,82:st,83:at,84:bt,85:mt,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt,118:It,119:Ot,120:Bt,121:Et},i(w,[2,9]),i(w,[2,10]),i(w,[2,11]),{8:[1,54],9:[1,55],10:Z,15:53,18:56},i(Ct,[2,3]),i(Ct,[2,4]),i(Ct,[2,5]),i(Ct,[2,6]),i(Ct,[2,7]),i(Ct,[2,8]),{8:xt,9:Ht,11:Le,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:xt,9:Ht,11:Le,21:66},{8:xt,9:Ht,11:Le,21:67},{8:xt,9:Ht,11:Le,21:68},{8:xt,9:Ht,11:Le,21:69},{8:xt,9:Ht,11:Le,21:70},{8:xt,9:Ht,10:[1,71],11:Le,21:72},i(Ct,[2,36]),{35:[1,73]},{37:[1,74]},i(Ct,[2,39]),i(Ft,[2,46],{18:75,10:Z}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:gn,42:Se,58:me,77:[1,83],86:Ve,92:[1,80],94:[1,81],98:82,102:Ye,103:ce,106:ke,108:zt,111:re,112:se,113:Pe,117:84},i(Ct,[2,178]),i(Ct,[2,179]),i(Ct,[2,180]),i(Ct,[2,181]),i(te,[2,47]),i(te,[2,49],{44:[1,96]}),i(Me,[2,67],{110:109,29:[1,97],42:z,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:W,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:yt,99:ft,102:ut,103:vt,106:X,108:pt,111:U,112:Tt,113:nt}),i(de,[2,174]),i(de,[2,135]),i(de,[2,136]),i(de,[2,137]),i(de,[2,138]),i(de,[2,139]),i(de,[2,140]),i(de,[2,141]),i(de,[2,142]),i(de,[2,143]),i(de,[2,144]),i(de,[2,145]),i(w,[2,12]),i(w,[2,18]),i(w,[2,19]),{9:[1,110]},i(on,[2,26],{18:111,10:Z}),i(Ct,[2,27]),{40:112,41:38,42:z,43:39,45:40,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},i(Ct,[2,40]),i(Ct,[2,41]),i(Ct,[2,42]),i(ni,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:Ks,116:ws},i([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),i(Ct,[2,28]),i(Ct,[2,29]),i(Ct,[2,30]),i(Ct,[2,31]),i(Ct,[2,32]),{10:fo,12:Xi,14:Er,27:Xn,28:122,32:di,42:Ee,58:Kn,73:He,77:[1,124],78:[1,125],80:135,81:Ti,82:pn,83:Es,84:qa,85:Ma,86:Gs,87:Po,88:123,102:vs,106:ru,108:zs,111:Du,112:pm,113:uw},i(Wu,m,{5:148}),i(Ct,[2,37]),i(Ct,[2,38]),i(Ft,[2,45],{42:th}),{42:z,45:150,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},{99:[1,151],100:152,102:[1,153]},{42:z,45:154,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},{42:z,45:155,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},i(Fa,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},i(Fa,[2,108],{117:160,10:[1,159],14:gn,42:Se,58:me,86:Ve,102:Ye,103:ce,106:ke,108:zt,111:re,112:se,113:Pe}),i(Fa,[2,110],{10:[1,161]}),i(Ml,[2,176]),i(Ml,[2,163]),i(Ml,[2,164]),i(Ml,[2,165]),i(Ml,[2,166]),i(Ml,[2,167]),i(Ml,[2,168]),i(Ml,[2,169]),i(Ml,[2,170]),i(Ml,[2,171]),i(Ml,[2,172]),i(Ml,[2,173]),{42:z,45:162,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},{30:163,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:171,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:173,48:[1,172],65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:174,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:175,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:176,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{106:[1,177]},{30:178,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:179,63:[1,180],65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:181,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:182,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{30:183,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},i(de,[2,175]),i(w,[2,20]),i(on,[2,25]),i(Ft,[2,43],{18:184,10:Z}),i(ni,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{75:[1,188],76:189,113:Ks,116:ws},i(Dl,[2,73]),i(Dl,[2,75]),i(Dl,[2,76]),i(Dl,[2,161]),i(Dl,[2,162]),{8:xt,9:Ht,10:fo,11:Le,12:Xi,14:Er,21:191,27:Xn,29:[1,190],32:di,42:Ee,58:Kn,73:He,80:135,81:Ti,82:pn,83:Es,84:qa,85:Ma,86:Gs,87:Po,88:192,102:vs,106:ru,108:zs,111:Du,112:pm,113:uw},i(_c,[2,94]),i(_c,[2,96]),i(_c,[2,97]),i(_c,[2,150]),i(_c,[2,151]),i(_c,[2,152]),i(_c,[2,153]),i(_c,[2,154]),i(_c,[2,155]),i(_c,[2,156]),i(_c,[2,157]),i(_c,[2,158]),i(_c,[2,159]),i(_c,[2,160]),i(_c,[2,83]),i(_c,[2,84]),i(_c,[2,85]),i(_c,[2,86]),i(_c,[2,87]),i(_c,[2,88]),i(_c,[2,89]),i(_c,[2,90]),i(_c,[2,91]),i(_c,[2,92]),i(_c,[2,93]),{6:11,7:12,8:b,9:E,10:_,11:A,20:17,22:18,23:19,24:20,25:21,26:22,27:I,32:[1,193],33:24,34:B,36:N,38:R,40:28,41:38,42:z,43:39,45:40,58:W,81:et,82:st,83:at,84:bt,85:mt,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt,118:It,119:Ot,120:Bt,121:Et},{10:Z,18:194},{10:[1,195],42:z,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:109,111:U,112:Tt,113:nt},{10:[1,196]},{10:[1,197],103:[1,198]},i(lw,[2,121]),{10:[1,199],42:z,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:109,111:U,112:Tt,113:nt},{10:[1,200],42:z,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:109,111:U,112:Tt,113:nt},{77:[1,201]},i(Fa,[2,102],{10:[1,202]}),i(Fa,[2,104],{10:[1,203]}),{77:[1,204]},i(Ml,[2,177]),{77:[1,205],95:[1,206]},i(te,[2,50],{110:109,42:z,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,111:U,112:Tt,113:nt}),{31:[1,207],65:ha,79:208,113:pa,114:Da,115:Ha},i(eh,[2,79]),i(eh,[2,81]),i(eh,[2,82]),i(eh,[2,146]),i(eh,[2,147]),i(eh,[2,148]),i(eh,[2,149]),{47:[1,209],65:ha,79:208,113:pa,114:Da,115:Ha},{30:210,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{49:[1,211],65:ha,79:208,113:pa,114:Da,115:Ha},{51:[1,212],65:ha,79:208,113:pa,114:Da,115:Ha},{53:[1,213],65:ha,79:208,113:pa,114:Da,115:Ha},{55:[1,214],65:ha,79:208,113:pa,114:Da,115:Ha},{58:[1,215]},{62:[1,216],65:ha,79:208,113:pa,114:Da,115:Ha},{64:[1,217],65:ha,79:208,113:pa,114:Da,115:Ha},{30:218,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},{31:[1,219],65:ha,79:208,113:pa,114:Da,115:Ha},{65:ha,67:[1,220],69:[1,221],79:208,113:pa,114:Da,115:Ha},{65:ha,67:[1,223],69:[1,222],79:208,113:pa,114:Da,115:Ha},i(Ft,[2,44],{42:th}),i(ni,[2,70]),i(ni,[2,69]),{60:[1,224],65:ha,79:208,113:pa,114:Da,115:Ha},i(ni,[2,72]),i(Dl,[2,74]),{30:225,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},i(Wu,m,{5:226}),i(_c,[2,95]),i(Ct,[2,35]),{41:227,42:z,43:39,45:40,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},{10:ed,58:jd,81:nd,89:228,102:$d,104:229,105:230,106:A0,107:Bi,108:cn,109:kr},{10:ed,58:jd,81:nd,89:239,101:[1,240],102:$d,104:229,105:230,106:A0,107:Bi,108:cn,109:kr},{10:ed,58:jd,81:nd,89:241,101:[1,242],102:$d,104:229,105:230,106:A0,107:Bi,108:cn,109:kr},{102:[1,243]},{10:ed,58:jd,81:nd,89:244,102:$d,104:229,105:230,106:A0,107:Bi,108:cn,109:kr},{42:z,45:245,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt},i(Fa,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},i(Fa,[2,109]),i(Fa,[2,111],{10:[1,249]}),i(Fa,[2,112]),i(Me,[2,51]),i(eh,[2,80]),i(Me,[2,52]),{49:[1,250],65:ha,79:208,113:pa,114:Da,115:Ha},i(Me,[2,59]),i(Me,[2,54]),i(Me,[2,55]),i(Me,[2,56]),{106:[1,251]},i(Me,[2,58]),i(Me,[2,60]),{64:[1,252],65:ha,79:208,113:pa,114:Da,115:Ha},i(Me,[2,62]),i(Me,[2,63]),i(Me,[2,65]),i(Me,[2,64]),i(Me,[2,66]),i([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:ha,79:208,113:pa,114:Da,115:Ha},{6:11,7:12,8:b,9:E,10:_,11:A,20:17,22:18,23:19,24:20,25:21,26:22,27:I,32:[1,254],33:24,34:B,36:N,38:R,40:28,41:38,42:z,43:39,45:40,58:W,81:et,82:st,83:at,84:bt,85:mt,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt,118:It,119:Ot,120:Bt,121:Et},i(te,[2,48]),i(Fa,[2,114],{103:Ei}),i(Jo,[2,123],{105:256,10:ed,58:jd,81:nd,102:$d,106:A0,107:Bi,108:cn,109:kr}),i(wc,[2,125]),i(wc,[2,127]),i(wc,[2,128]),i(wc,[2,129]),i(wc,[2,130]),i(wc,[2,131]),i(wc,[2,132]),i(wc,[2,133]),i(wc,[2,134]),i(Fa,[2,115],{103:Ei}),{10:[1,257]},i(Fa,[2,116],{103:Ei}),{10:[1,258]},i(lw,[2,122]),i(Fa,[2,98],{103:Ei}),i(Fa,[2,99],{110:109,42:z,58:W,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,111:U,112:Tt,113:nt}),i(Fa,[2,103]),i(Fa,[2,105],{10:[1,259]}),i(Fa,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:xt,9:Ht,11:Le,21:264},i(Ct,[2,34]),{10:ed,58:jd,81:nd,102:$d,104:265,105:230,106:A0,107:Bi,108:cn,109:kr},i(wc,[2,126]),{14:gn,42:Se,58:me,86:Ve,98:266,102:Ye,103:ce,106:ke,108:zt,111:re,112:se,113:Pe,117:84},{14:gn,42:Se,58:me,86:Ve,98:267,102:Ye,103:ce,106:ke,108:zt,111:re,112:se,113:Pe,117:84},{95:[1,268]},i(Fa,[2,113]),i(Me,[2,53]),{30:269,65:ha,77:bc,78:Cc,79:164,113:pa,114:Da,115:Ha},i(Me,[2,61]),i(Wu,m,{5:270}),i(Jo,[2,124],{105:256,10:ed,58:jd,81:nd,102:$d,106:A0,107:Bi,108:cn,109:kr}),i(Fa,[2,119],{117:160,10:[1,271],14:gn,42:Se,58:me,86:Ve,102:Ye,103:ce,106:ke,108:zt,111:re,112:se,113:Pe}),i(Fa,[2,120],{117:160,10:[1,272],14:gn,42:Se,58:me,86:Ve,102:Ye,103:ce,106:ke,108:zt,111:re,112:se,113:Pe}),i(Fa,[2,107]),{31:[1,273],65:ha,79:208,113:pa,114:Da,115:Ha},{6:11,7:12,8:b,9:E,10:_,11:A,20:17,22:18,23:19,24:20,25:21,26:22,27:I,32:[1,274],33:24,34:B,36:N,38:R,40:28,41:38,42:z,43:39,45:40,58:W,81:et,82:st,83:at,84:bt,85:mt,86:yt,99:ft,102:ut,103:vt,106:X,108:pt,110:41,111:U,112:Tt,113:nt,118:It,119:Ot,120:Bt,121:Et},{10:ed,58:jd,81:nd,89:275,102:$d,104:229,105:230,106:A0,107:Bi,108:cn,109:kr},{10:ed,58:jd,81:nd,89:276,102:$d,104:229,105:230,106:A0,107:Bi,108:cn,109:kr},i(Me,[2,57]),i(Ct,[2,33]),i(Fa,[2,117],{103:Ei}),i(Fa,[2,118],{103:Ei})],defaultActions:{},parseError:function(Qi,Ts){if(Ts.recoverable)this.trace(Qi);else{var ka=new Error(Qi);throw ka.hash=Ts,ka}},parse:function(Qi){var Ts=this,ka=[0],xi=[],Yc=[null],Ce=[],vp=this.table,Be="",Bf=0,yg=0,bm=2,Ek=1,E3=Ce.slice.call(arguments,1),Il=Object.create(this.lexer),L0={yy:{}};for(var hw in this.yy)Object.prototype.hasOwnProperty.call(this.yy,hw)&&(L0.yy[hw]=this.yy[hw]);Il.setInput(Qi,L0.yy),L0.yy.lexer=Il,L0.yy.parser=this,typeof Il.yylloc>"u"&&(Il.yylloc={});var H5=Il.yylloc;Ce.push(H5);var Hb=Il.options&&Il.options.ranges;typeof L0.yy.parseError=="function"?this.parseError=L0.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V5(){var xg;return xg=xi.pop()||Il.lex()||Ek,typeof xg!="number"&&(xg instanceof Array&&(xi=xg,xg=xi.pop()),xg=Ts.symbols_[xg]||xg),xg}for(var f1,rd,id,G5,fw={},U5,mp,W5,T3;;){if(rd=ka[ka.length-1],this.defaultActions[rd]?id=this.defaultActions[rd]:((f1===null||typeof f1>"u")&&(f1=V5()),id=vp[rd]&&vp[rd][f1]),typeof id>"u"||!id.length||!id[0]){var wm="";T3=[];for(U5 in vp[rd])this.terminals_[U5]&&U5>bm&&T3.push("'"+this.terminals_[U5]+"'");Il.showPosition?wm="Parse error on line "+(Bf+1)+`: -`+Il.showPosition()+` -Expecting `+T3.join(", ")+", got '"+(this.terminals_[f1]||f1)+"'":wm="Parse error on line "+(Bf+1)+": Unexpected "+(f1==Ek?"end of input":"'"+(this.terminals_[f1]||f1)+"'"),this.parseError(wm,{text:Il.match,token:this.terminals_[f1]||f1,line:Il.yylineno,loc:H5,expected:T3})}if(id[0]instanceof Array&&id.length>1)throw new Error("Parse Error: multiple actions possible at state: "+rd+", token: "+f1);switch(id[0]){case 1:ka.push(f1),Yc.push(Il.yytext),Ce.push(Il.yylloc),ka.push(id[1]),f1=null,yg=Il.yyleng,Be=Il.yytext,Bf=Il.yylineno,H5=Il.yylloc;break;case 2:if(mp=this.productions_[id[1]][1],fw.$=Yc[Yc.length-mp],fw._$={first_line:Ce[Ce.length-(mp||1)].first_line,last_line:Ce[Ce.length-1].last_line,first_column:Ce[Ce.length-(mp||1)].first_column,last_column:Ce[Ce.length-1].last_column},Hb&&(fw._$.range=[Ce[Ce.length-(mp||1)].range[0],Ce[Ce.length-1].range[1]]),G5=this.performAction.apply(fw,[Be,yg,Bf,L0.yy,id[1],Yc,Ce].concat(E3)),typeof G5<"u")return G5;mp&&(ka=ka.slice(0,-1*mp*2),Yc=Yc.slice(0,-1*mp),Ce=Ce.slice(0,-1*mp)),ka.push(this.productions_[id[1]][0]),Yc.push(fw.$),Ce.push(fw._$),W5=vp[ka[ka.length-2]][ka[ka.length-1]],ka.push(W5);break;case 3:return!0}}return!0}},Oc=function(){var af={EOF:1,parseError:function(Ts,ka){if(this.yy.parser)this.yy.parser.parseError(Ts,ka);else throw new Error(Ts)},setInput:function(Qi,Ts){return this.yy=Ts||this.yy||{},this._input=Qi,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Qi=this._input[0];this.yytext+=Qi,this.yyleng++,this.offset++,this.match+=Qi,this.matched+=Qi;var Ts=Qi.match(/(?:\r\n?|\n).*/g);return Ts?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Qi},unput:function(Qi){var Ts=Qi.length,ka=Qi.split(/(?:\r\n?|\n)/g);this._input=Qi+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ts),this.offset-=Ts;var xi=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ka.length-1&&(this.yylineno-=ka.length-1);var Yc=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ka?(ka.length===xi.length?this.yylloc.first_column:0)+xi[xi.length-ka.length].length-ka[0].length:this.yylloc.first_column-Ts},this.options.ranges&&(this.yylloc.range=[Yc[0],Yc[0]+this.yyleng-Ts]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Qi){this.unput(this.match.slice(Qi))},pastInput:function(){var Qi=this.matched.substr(0,this.matched.length-this.match.length);return(Qi.length>20?"...":"")+Qi.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Qi=this.match;return Qi.length<20&&(Qi+=this._input.substr(0,20-Qi.length)),(Qi.substr(0,20)+(Qi.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Qi=this.pastInput(),Ts=new Array(Qi.length+1).join("-");return Qi+this.upcomingInput()+` -`+Ts+"^"},test_match:function(Qi,Ts){var ka,xi,Yc;if(this.options.backtrack_lexer&&(Yc={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Yc.yylloc.range=this.yylloc.range.slice(0))),xi=Qi[0].match(/(?:\r\n?|\n).*/g),xi&&(this.yylineno+=xi.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:xi?xi[xi.length-1].length-xi[xi.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Qi[0].length},this.yytext+=Qi[0],this.match+=Qi[0],this.matches=Qi,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Qi[0].length),this.matched+=Qi[0],ka=this.performAction.call(this,this.yy,this,Ts,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ka)return ka;if(this._backtrack){for(var Ce in Yc)this[Ce]=Yc[Ce];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Qi,Ts,ka,xi;this._more||(this.yytext="",this.match="");for(var Yc=this._currentRules(),Ce=0;CeTs[0].length)){if(Ts=ka,xi=Ce,this.options.backtrack_lexer){if(Qi=this.test_match(ka,Yc[Ce]),Qi!==!1)return Qi;if(this._backtrack){Ts=!1;continue}else return!1}else if(!this.options.flex)break}return Ts?(Qi=this.test_match(Ts,Yc[xi]),Qi!==!1?Qi:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ts=this.next();return Ts||this.lex()},begin:function(Ts){this.conditionStack.push(Ts)},popState:function(){var Ts=this.conditionStack.length-1;return Ts>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ts){return Ts=this.conditionStack.length-1-Math.abs(Ts||0),Ts>=0?this.conditionStack[Ts]:"INITIAL"},pushState:function(Ts){this.begin(Ts)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Ts,ka,xi,Yc){switch(xi){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return Ts.lex.firstGraph()&&this.begin("dir"),12;case 30:return Ts.lex.firstGraph()&&this.begin("dir"),12;case 31:return Ts.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return af}();rf.lexer=Oc;function sf(){this.yy={}}return sf.prototype=rf,rf.Parser=sf,new sf}();qdt.parser=qdt;const Hdt=qdt,rIe="flowchart-";let APt=0,Vdt=Oe(),wl={},gk=[],eL={},M5=[],rY={},iY={},sY=0,Gdt=!0,iw,aY,oY=[];const cY=i=>Kr.sanitizeText(i,Vdt),fF=function(i){const a=Object.keys(wl);for(const f of a)if(wl[f].id===i)return wl[f].domId;return i},LPt=function(i,a,f,p,w,m,b={}){let E,_=i;_!==void 0&&_.trim().length!==0&&(wl[_]===void 0&&(wl[_]={id:_,labelType:"text",domId:rIe+_+"-"+APt,styles:[],classes:[]}),APt++,a!==void 0?(Vdt=Oe(),E=cY(a.text.trim()),wl[_].labelType=a.type,E[0]==='"'&&E[E.length-1]==='"'&&(E=E.substring(1,E.length-1)),wl[_].text=E):wl[_].text===void 0&&(wl[_].text=i),f!==void 0&&(wl[_].type=f),p!=null&&p.forEach(function(A){wl[_].styles.push(A)}),w!=null&&w.forEach(function(A){wl[_].classes.push(A)}),m!==void 0&&(wl[_].dir=m),wl[_].props===void 0?wl[_].props=b:b!==void 0&&Object.assign(wl[_].props,b))},MPt=function(i,a,f){const m={start:i,end:a,type:void 0,text:"",labelType:"text"};Ut.info("abc78 Got edge...",m);const b=f.text;if(b!==void 0&&(m.text=cY(b.text.trim()),m.text[0]==='"'&&m.text[m.text.length-1]==='"'&&(m.text=m.text.substring(1,m.text.length-1)),m.labelType=b.type),f!==void 0&&(m.type=f.type,m.stroke=f.stroke,m.length=f.length),(m==null?void 0:m.length)>10&&(m.length=10),gk.length<280)Ut.info("abc78 pushing edge..."),gk.push(m);else throw new Error("Too many edges")},DPt=function(i,a,f){Ut.info("addLink (abc78)",i,a,f);let p,w;for(p=0;p/)&&(iw="LR"),iw.match(/.*v/)&&(iw="TB"),iw==="TD"&&(iw="TB")},uY=function(i,a){i.split(",").forEach(function(f){let p=f;wl[p]!==void 0&&wl[p].classes.push(a),rY[p]!==void 0&&rY[p].classes.push(a)})},iIe=function(i,a){i.split(",").forEach(function(f){a!==void 0&&(iY[aY==="gen-1"?fF(f):f]=cY(a))})},sIe=function(i,a,f){let p=fF(i);if(Oe().securityLevel!=="loose"||a===void 0)return;let w=[];if(typeof f=="string"){w=f.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let m=0;m")),w.classed("hover",!0)}).on("mouseout",function(){a.transition().duration(500).style("opacity",0),yr(this).classed("hover",!1)})};oY.push(VPt);const GPt=function(i="gen-1"){wl={},eL={},gk=[],oY=[VPt],M5=[],rY={},sY=0,iY={},Gdt=!0,aY=i,hg()},UPt=i=>{aY=i||"gen-2"},WPt=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},YPt=function(i,a,f){let p=i.text.trim(),w=f.text;i===f&&f.text.match(/\s/)&&(p=void 0);function m(I){const B={boolean:{},number:{},string:{}},N=[];let R;return{nodeList:I.filter(function(W){const et=typeof W;return W.stmt&&W.stmt==="dir"?(R=W.value,!1):W.trim()===""?!1:et in B?B[et].hasOwnProperty(W)?!1:B[et][W]=!0:N.includes(W)?!1:N.push(W)}),dir:R}}let b=[];const{nodeList:E,dir:_}=m(b.concat.apply(b,a));if(b=E,aY==="gen-1")for(let I=0;I2e3)return;if(KPt[dF]=a,M5[a].id===i)return{result:!0,count:0};let p=0,w=1;for(;p=0){const b=XPt(i,m);if(b.result)return{result:!0,count:w+b.count};w=w+b.count}p=p+1}return{result:!1,count:w}},QPt=function(i){return KPt[i]},ZPt=function(){dF=-1,M5.length>0&&XPt("none",M5.length-1)},JPt=function(){return M5},tFt=()=>Gdt?(Gdt=!1,!0):!1,oIe=i=>{let a=i.trim(),f="arrow_open";switch(a[0]){case"<":f="arrow_point",a=a.slice(1);break;case"x":f="arrow_cross",a=a.slice(1);break;case"o":f="arrow_circle",a=a.slice(1);break}let p="normal";return a.includes("=")&&(p="thick"),a.includes(".")&&(p="dotted"),{type:f,stroke:p}},cIe=(i,a)=>{const f=a.length;let p=0;for(let w=0;w{const a=i.trim();let f=a.slice(0,-1),p="arrow_open";switch(a.slice(-1)){case"x":p="arrow_cross",a[0]==="x"&&(p="double_"+p,f=f.slice(1));break;case">":p="arrow_point",a[0]==="<"&&(p="double_"+p,f=f.slice(1));break;case"o":p="arrow_circle",a[0]==="o"&&(p="double_"+p,f=f.slice(1));break}let w="normal",m=f.length-1;f[0]==="="&&(w="thick"),f[0]==="~"&&(w="invisible");let b=cIe(".",f);return b&&(w="dotted",m=b),{type:p,stroke:w,length:m}},eFt=(i,a)=>{const f=uIe(i);let p;if(a){if(p=oIe(a),p.stroke!==f.stroke)return{type:"INVALID",stroke:"INVALID"};if(p.type==="arrow_open")p.type=f.type;else{if(p.type!==f.type)return{type:"INVALID",stroke:"INVALID"};p.type="double_"+p.type}return p.type==="double_arrow"&&(p.type="double_arrow_point"),p.length=f.length,p}return f},nFt=(i,a)=>{let f=!1;return i.forEach(p=>{p.nodes.indexOf(a)>=0&&(f=!0)}),f},rFt=(i,a)=>{const f=[];return i.nodes.forEach((p,w)=>{nFt(a,p)||f.push(i.nodes[w])}),{nodes:f}},iFt={firstGraph:tFt},wT={defaultConfig:()=>SOt.flowchart,setAccTitle:E0,getAccTitle:fg,getAccDescription:gg,setAccDescription:dg,addVertex:LPt,lookUpDomId:fF,addLink:DPt,updateLinkInterpolate:IPt,updateLink:OPt,addClass:PPt,setDirection:FPt,setClass:uY,setTooltip:iIe,getTooltip:BPt,setClickEvent:RPt,setLink:NPt,bindFunctions:jPt,getDirection:$Pt,getVertices:zPt,getEdges:qPt,getClasses:HPt,clear:GPt,setGen:UPt,defaultStyle:WPt,addSubGraph:YPt,getDepthFirstPos:QPt,indexNodes:ZPt,getSubGraphs:JPt,destructLink:eFt,lex:iFt,exists:nFt,makeUniq:rFt,setDiagramTitle:Nb,getDiagramTitle:pg},lIe=Object.freeze(Object.defineProperty({__proto__:null,addClass:PPt,addLink:DPt,addSingleLink:MPt,addSubGraph:YPt,addVertex:LPt,bindFunctions:jPt,clear:GPt,default:wT,defaultStyle:WPt,destructLink:eFt,firstGraph:tFt,getClasses:HPt,getDepthFirstPos:QPt,getDirection:$Pt,getEdges:qPt,getSubGraphs:JPt,getTooltip:BPt,getVertices:zPt,indexNodes:ZPt,lex:iFt,lookUpDomId:fF,setClass:uY,setClickEvent:RPt,setDirection:FPt,setGen:UPt,setLink:NPt,updateLink:OPt,updateLinkInterpolate:IPt},Symbol.toStringTag,{value:"Module"}));var hIe="[object Symbol]";function vT(i){return typeof i=="symbol"||f3(i)&&sT(i)==hIe}function nL(i,a){for(var f=-1,p=i==null?0:i.length,w=Array(p);++f-1}function Rb(i){return ck(i)?PIt(i):NOt(i)}var LIe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,MIe=/^\w*$/;function Udt(i,a){if(If(i))return!1;var f=typeof i;return f=="number"||f=="symbol"||f=="boolean"||i==null||vT(i)?!0:MIe.test(i)||!LIe.test(i)||a!=null&&i in Object(a)}var DIe=500;function IIe(i){var a=jA(i,function(p){return f.size===DIe&&f.clear(),p}),f=a.cache;return a}var OIe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,PIe=/\\(\\)?/g,FIe=IIe(function(i){var a=[];return i.charCodeAt(0)===46&&a.push(""),i.replace(OIe,function(f,p,w,m){a.push(w?m.replace(PIe,"$1"):p||f)}),a});const NIe=FIe;function fFt(i){return i==null?"":oFt(i)}function hY(i,a){return If(i)?i:Udt(i,a)?[i]:NIe(fFt(i))}var BIe=1/0;function gF(i){if(typeof i=="string"||vT(i))return i;var a=i+"";return a=="0"&&1/i==-BIe?"-0":a}function fY(i,a){a=hY(a,i);for(var f=0,p=a.length;i!=null&&f0&&f(E)?a>1?dY(E,a-1,f,p,w):Wdt(w,E):p||(w[w.length]=E)}return w}function rL(i){var a=i==null?0:i.length;return a?dY(i,1):[]}function $Ie(i){return RIt(BIt(i,void 0,rL),i+"")}function zIe(i,a,f,p){var w=-1,m=i==null?0:i.length;for(p&&m&&(f=i[++w]);++wE))return!1;var A=m.get(i),I=m.get(a);if(A&&I)return A==a&&I==i;var B=-1,N=!0,R=f&pPe?new bF:void 0;for(m.set(i,a),m.set(a,i);++B2?a[2]:void 0;for(w&&nF(a[0],a[1],w)&&(p=1);++f-1?w[m?a[b]:b]:void 0}}var iFe=Math.max;function sFe(i,a,f){var p=i==null?0:i.length;if(!p)return-1;var w=f==null?0:EIe(f);return w<0&&(w=iFe(p+w,0)),hFt(i,pk(a),w)}var aFe=rFe(sFe);const e0t=aFe;function RFt(i,a){var f=-1,p=ck(i)?Array(i.length):[];return pY(i,function(w,m,b){p[++f]=a(w,m,b)}),p}function Ff(i,a){var f=If(i)?nL:RFt;return f(i,pk(a))}function oFe(i,a){return i==null?i:tdt(i,t0t(a),uT)}function cFe(i,a){return i&&Jdt(i,t0t(a))}function uFe(i,a){return i>a}var lFe=Object.prototype,hFe=lFe.hasOwnProperty;function fFe(i,a){return i!=null&&hFe.call(i,a)}function za(i,a){return i!=null&&PFt(i,a,fFe)}function dFe(i,a){return nL(a,function(f){return i[f]})}function I5(i){return i==null?[]:dFe(i,Rb(i))}function Jh(i){return i===void 0}function jFt(i,a){return ia||m&&b&&_&&!E&&!A||p&&b&&_||!f&&_||!w)return 1;if(!p&&!m&&!A&&i=E)return _;var A=f[p];return _*(A=="desc"?-1:1)}}return i.index-a.index}function mFe(i,a,f){a.length?a=nL(a,function(m){return If(m)?function(b){return fY(b,m.length===1?m[0]:m)}:m}):a=[lT];var p=-1;a=nL(a,SW(pk));var w=RFt(i,function(m,b,E){var _=nL(a,function(A){return A(m)});return{criteria:_,index:++p,value:m}});return bFe(w,function(m,b){return vFe(m,b,f)})}function yFe(i,a){return pFe(i,a,function(f,p){return FFt(i,p)})}var xFe=$Ie(function(i,a){return i==null?{}:yFe(i,a)});const vF=xFe;var kFe=Math.ceil,EFe=Math.max;function TFe(i,a,f,p){for(var w=-1,m=EFe(kFe((a-i)/(f||1)),0),b=Array(m);m--;)b[p?m:++w]=i,i+=f;return b}function CFe(i){return function(a,f,p){return p&&typeof p!="number"&&nF(a,f,p)&&(f=p=void 0),a=lY(a),f===void 0?(f=a,a=0):f=lY(f),p=p===void 0?a1&&nF(i,a[0],a[1])?a=[]:f>2&&nF(a[0],a[1],a[2])&&(a=[a[0]]),mFe(i,dY(a,1),[])});const yF=AFe;var LFe=1/0,MFe=KA&&1/Xdt(new KA([,-0]))[1]==LFe?function(i){return new KA(i)}:TIe;const DFe=MFe;var IFe=200;function OFe(i,a,f){var p=-1,w=AIe,m=i.length,b=!0,E=[],_=E;if(f)b=!1,w=eFe;else if(m>=IFe){var A=a?null:DFe(i);if(A)return Xdt(A);b=!1,w=_Ft,_=new bF}else _=a?[]:E;t:for(;++p1?w.setNode(m,f):w.setNode(m)}),this}setNode(a,f){return za(this._nodes,a)?(arguments.length>1&&(this._nodes[a]=f),this):(this._nodes[a]=arguments.length>1?f:this._defaultNodeLabelFn(a),this._isCompound&&(this._parent[a]=xT,this._children[a]={},this._children[xT][a]=!0),this._in[a]={},this._preds[a]={},this._out[a]={},this._sucs[a]={},++this._nodeCount,this)}node(a){return this._nodes[a]}hasNode(a){return za(this._nodes,a)}removeNode(a){var f=this;if(za(this._nodes,a)){var p=function(w){f.removeEdge(f._edgeObjs[w])};delete this._nodes[a],this._isCompound&&(this._removeFromParentsChildList(a),delete this._parent[a],cr(this.children(a),function(w){f.setParent(w)}),delete this._children[a]),cr(Rb(this._in[a]),p),delete this._in[a],delete this._preds[a],cr(Rb(this._out[a]),p),delete this._out[a],delete this._sucs[a],--this._nodeCount}return this}setParent(a,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Jh(f))f=xT;else{f+="";for(var p=f;!Jh(p);p=this.parent(p))if(p===a)throw new Error("Setting "+f+" as parent of "+a+" would create a cycle");this.setNode(f)}return this.setNode(a),this._removeFromParentsChildList(a),this._parent[a]=f,this._children[f][a]=!0,this}_removeFromParentsChildList(a){delete this._children[this._parent[a]][a]}parent(a){if(this._isCompound){var f=this._parent[a];if(f!==xT)return f}}children(a){if(Jh(a)&&(a=xT),this._isCompound){var f=this._children[a];if(f)return Rb(f)}else{if(a===xT)return this.nodes();if(this.hasNode(a))return[]}}predecessors(a){var f=this._preds[a];if(f)return Rb(f)}successors(a){var f=this._sucs[a];if(f)return Rb(f)}neighbors(a){var f=this.predecessors(a);if(f)return FFe(f,this.successors(a))}isLeaf(a){var f;return this.isDirected()?f=this.successors(a):f=this.neighbors(a),f.length===0}filterNodes(a){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var p=this;cr(this._nodes,function(b,E){a(E)&&f.setNode(E,b)}),cr(this._edgeObjs,function(b){f.hasNode(b.v)&&f.hasNode(b.w)&&f.setEdge(b,p.edge(b))});var w={};function m(b){var E=p.parent(b);return E===void 0||f.hasNode(E)?(w[b]=E,E):E in w?w[E]:m(E)}return this._isCompound&&cr(f.nodes(),function(b){f.setParent(b,m(b))}),f}setDefaultEdgeLabel(a){return BA(a)||(a=HA(a)),this._defaultEdgeLabelFn=a,this}edgeCount(){return this._edgeCount}edges(){return I5(this._edgeObjs)}setPath(a,f){var p=this,w=arguments;return mF(a,function(m,b){return w.length>1?p.setEdge(m,b,f):p.setEdge(m,b),b}),this}setEdge(){var a,f,p,w,m=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(a=b.v,f=b.w,p=b.name,arguments.length===2&&(w=arguments[1],m=!0)):(a=b,f=arguments[1],p=arguments[3],arguments.length>2&&(w=arguments[2],m=!0)),a=""+a,f=""+f,Jh(p)||(p=""+p);var E=xF(this._isDirected,a,f,p);if(za(this._edgeLabels,E))return m&&(this._edgeLabels[E]=w),this;if(!Jh(p)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(a),this.setNode(f),this._edgeLabels[E]=m?w:this._defaultEdgeLabelFn(a,f,p);var _=$Fe(this._isDirected,a,f,p);return a=_.v,f=_.w,Object.freeze(_),this._edgeObjs[E]=_,zFt(this._preds[f],a),zFt(this._sucs[a],f),this._in[f][E]=_,this._out[a][E]=_,this._edgeCount++,this}edge(a,f,p){var w=arguments.length===1?i0t(this._isDirected,arguments[0]):xF(this._isDirected,a,f,p);return this._edgeLabels[w]}hasEdge(a,f,p){var w=arguments.length===1?i0t(this._isDirected,arguments[0]):xF(this._isDirected,a,f,p);return za(this._edgeLabels,w)}removeEdge(a,f,p){var w=arguments.length===1?i0t(this._isDirected,arguments[0]):xF(this._isDirected,a,f,p),m=this._edgeObjs[w];return m&&(a=m.v,f=m.w,delete this._edgeLabels[w],delete this._edgeObjs[w],qFt(this._preds[f],a),qFt(this._sucs[a],f),delete this._in[f][w],delete this._out[a][w],this._edgeCount--),this}inEdges(a,f){var p=this._in[a];if(p){var w=I5(p);return f?D5(w,function(m){return m.v===f}):w}}outEdges(a,f){var p=this._out[a];if(p){var w=I5(p);return f?D5(w,function(m){return m.w===f}):w}}nodeEdges(a,f){var p=this.inEdges(a,f);if(p)return p.concat(this.outEdges(a,f))}}c1.prototype._nodeCount=0,c1.prototype._edgeCount=0;function zFt(i,a){i[a]?i[a]++:i[a]=1}function qFt(i,a){--i[a]||delete i[a]}function xF(i,a,f,p){var w=""+a,m=""+f;if(!i&&w>m){var b=w;w=m,m=b}return w+$Ft+m+$Ft+(Jh(p)?jFe:p)}function $Fe(i,a,f,p){var w=""+a,m=""+f;if(!i&&w>m){var b=w;w=m,m=b}var E={v:w,w:m};return p&&(E.name=p),E}function i0t(i,a){return xF(i,a.v,a.w,a.name)}class zFe{constructor(){var a={};a._next=a._prev=a,this._sentinel=a}dequeue(){var a=this._sentinel,f=a._prev;if(f!==a)return HFt(f),f}enqueue(a){var f=this._sentinel;a._prev&&a._next&&HFt(a),a._next=f._next,f._next._prev=a,f._next=a,a._prev=f}toString(){for(var a=[],f=this._sentinel,p=f._prev;p!==f;)a.push(JSON.stringify(p,qFe)),p=p._prev;return"["+a.join(", ")+"]"}}function HFt(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function qFe(i,a){if(i!=="_next"&&i!=="_prev")return a}var HFe=HA(1);function VFe(i,a){if(i.nodeCount()<=1)return[];var f=UFe(i,a||HFe),p=GFe(f.graph,f.buckets,f.zeroIdx);return rL(Ff(p,function(w){return i.outEdges(w.v,w.w)}))}function GFe(i,a,f){for(var p=[],w=a[a.length-1],m=a[0],b;i.nodeCount();){for(;b=m.dequeue();)s0t(i,a,f,b);for(;b=w.dequeue();)s0t(i,a,f,b);if(i.nodeCount()){for(var E=a.length-2;E>0;--E)if(b=a[E].dequeue(),b){p=p.concat(s0t(i,a,f,b,!0));break}}}return p}function s0t(i,a,f,p,w){var m=w?[]:void 0;return cr(i.inEdges(p.v),function(b){var E=i.edge(b),_=i.node(b.v);w&&m.push({v:b.v,w:b.w}),_.out-=E,a0t(a,f,_)}),cr(i.outEdges(p.v),function(b){var E=i.edge(b),_=b.w,A=i.node(_);A.in-=E,a0t(a,f,A)}),i.removeNode(p.v),m}function UFe(i,a){var f=new c1,p=0,w=0;cr(i.nodes(),function(E){f.setNode(E,{v:E,in:0,out:0})}),cr(i.edges(),function(E){var _=f.edge(E.v,E.w)||0,A=a(E),I=_+A;f.setEdge(E.v,E.w,I),w=Math.max(w,f.node(E.v).out+=A),p=Math.max(p,f.node(E.w).in+=A)});var m=yT(w+p+3).map(function(){return new zFe}),b=p+1;return cr(f.nodes(),function(E){a0t(m,b,f.node(E))}),{graph:f,buckets:m,zeroIdx:b}}function a0t(i,a,f){f.out?f.in?i[f.out-f.in+a].enqueue(f):i[i.length-1].enqueue(f):i[0].enqueue(f)}function WFe(i){var a=i.graph().acyclicer==="greedy"?VFe(i,f(i)):YFe(i);cr(a,function(p){var w=i.edge(p);i.removeEdge(p),w.forwardName=p.name,w.reversed=!0,i.setEdge(p.w,p.v,w,vY("rev"))});function f(p){return function(w){return p.edge(w).weight}}}function YFe(i){var a=[],f={},p={};function w(m){za(p,m)||(p[m]=!0,f[m]=!0,cr(i.outEdges(m),function(b){za(f,b.w)?a.push(b):w(b.w)}),delete f[m])}return cr(i.nodes(),w),a}function KFe(i){cr(i.edges(),function(a){var f=i.edge(a);if(f.reversed){i.removeEdge(a);var p=f.forwardName;delete f.reversed,delete f.forwardName,i.setEdge(a.w,a.v,f,p)}})}function sL(i,a,f,p){var w;do w=vY(p);while(i.hasNode(w));return f.dummy=a,i.setNode(w,f),w}function XFe(i){var a=new c1().setGraph(i.graph());return cr(i.nodes(),function(f){a.setNode(f,i.node(f))}),cr(i.edges(),function(f){var p=a.edge(f.v,f.w)||{weight:0,minlen:1},w=i.edge(f);a.setEdge(f.v,f.w,{weight:p.weight+w.weight,minlen:Math.max(p.minlen,w.minlen)})}),a}function VFt(i){var a=new c1({multigraph:i.isMultigraph()}).setGraph(i.graph());return cr(i.nodes(),function(f){i.children(f).length||a.setNode(f,i.node(f))}),cr(i.edges(),function(f){a.setEdge(f,i.edge(f))}),a}function GFt(i,a){var f=i.x,p=i.y,w=a.x-f,m=a.y-p,b=i.width/2,E=i.height/2;if(!w&&!m)throw new Error("Not possible to find intersection inside of the rectangle");var _,A;return Math.abs(m)*b>Math.abs(w)*E?(m<0&&(E=-E),_=E*w/m,A=E):(w<0&&(b=-b),_=b,A=b*m/w),{x:f+_,y:p+A}}function mY(i){var a=Ff(yT(WFt(i)+1),function(){return[]});return cr(i.nodes(),function(f){var p=i.node(f),w=p.rank;Jh(w)||(a[w][p.order]=f)}),a}function QFe(i){var a=wF(Ff(i.nodes(),function(f){return i.node(f).rank}));cr(i.nodes(),function(f){var p=i.node(f);za(p,"rank")&&(p.rank-=a)})}function ZFe(i){var a=wF(Ff(i.nodes(),function(m){return i.node(m).rank})),f=[];cr(i.nodes(),function(m){var b=i.node(m).rank-a;f[b]||(f[b]=[]),f[b].push(m)});var p=0,w=i.graph().nodeRankFactor;cr(f,function(m,b){Jh(m)&&b%w!==0?--p:p&&cr(m,function(E){i.node(E).rank+=p})})}function UFt(i,a,f,p){var w={width:0,height:0};return arguments.length>=4&&(w.rank=f,w.order=p),sL(i,"border",w,a)}function WFt(i){return mT(Ff(i.nodes(),function(a){var f=i.node(a).rank;if(!Jh(f))return f}))}function JFe(i,a){var f={lhs:[],rhs:[]};return cr(i,function(p){a(p)?f.lhs.push(p):f.rhs.push(p)}),f}function tNe(i,a){var f=NFt();try{return a()}finally{console.log(i+" time: "+(NFt()-f)+"ms")}}function eNe(i,a){return a()}function nNe(i){function a(f){var p=i.children(f),w=i.node(f);if(p.length&&cr(p,a),za(w,"minRank")){w.borderLeft=[],w.borderRight=[];for(var m=w.minRank,b=w.maxRank+1;mb.lim&&(E=b,_=!0);var A=D5(a.edges(),function(I){return _===sNt(i,i.node(I.v),E)&&_!==sNt(i,i.node(I.w),E)});return r0t(A,function(I){return kF(a,I)})}function iNt(i,a,f,p){var w=f.v,m=f.w;i.removeEdge(w,m),i.setEdge(p.v,p.w,{}),h0t(i),l0t(i,a),wNe(i,a)}function wNe(i,a){var f=e0t(i.nodes(),function(w){return!a.node(w).parent}),p=pNe(i,f);p=p.slice(1),cr(p,function(w){var m=i.node(w).parent,b=a.edge(w,m),E=!1;b||(b=a.edge(m,w),E=!0),a.node(w).rank=a.node(m).rank+(E?b.minlen:-b.minlen)})}function vNe(i,a,f){return i.hasEdge(a,f)}function sNt(i,a,f){return f.low<=a.lim&&a.lim<=f.lim}function mNe(i){switch(i.graph().ranker){case"network-simplex":aNt(i);break;case"tight-tree":xNe(i);break;case"longest-path":yNe(i);break;default:aNt(i)}}var yNe=u0t;function xNe(i){u0t(i),QFt(i)}function aNt(i){kT(i)}function kNe(i){var a=sL(i,"root",{},"_root"),f=ENe(i),p=mT(I5(f))-1,w=2*p+1;i.graph().nestingRoot=a,cr(i.edges(),function(b){i.edge(b).minlen*=w});var m=TNe(i)+1;cr(i.children(),function(b){oNt(i,a,w,m,p,f,b)}),i.graph().nodeRankFactor=w}function oNt(i,a,f,p,w,m,b){var E=i.children(b);if(!E.length){b!==a&&i.setEdge(a,b,{weight:0,minlen:f});return}var _=UFt(i,"_bt"),A=UFt(i,"_bb"),I=i.node(b);i.setParent(_,b),I.borderTop=_,i.setParent(A,b),I.borderBottom=A,cr(E,function(B){oNt(i,a,f,p,w,m,B);var N=i.node(B),R=N.borderTop?N.borderTop:B,z=N.borderBottom?N.borderBottom:B,W=N.borderTop?p:2*p,et=R!==z?1:w-m[b]+1;i.setEdge(_,R,{weight:W,minlen:et,nestingEdge:!0}),i.setEdge(z,A,{weight:W,minlen:et,nestingEdge:!0})}),i.parent(b)||i.setEdge(a,_,{weight:0,minlen:w+m[b]})}function ENe(i){var a={};function f(p,w){var m=i.children(p);m&&m.length&&cr(m,function(b){f(b,w+1)}),a[p]=w}return cr(i.children(),function(p){f(p,1)}),a}function TNe(i){return mF(i.edges(),function(a,f){return a+i.edge(f).weight},0)}function CNe(i){var a=i.graph();i.removeNode(a.nestingRoot),delete a.nestingRoot,cr(i.edges(),function(f){var p=i.edge(f);p.nestingEdge&&i.removeEdge(f)})}function _Ne(i,a,f){var p={},w;cr(f,function(m){for(var b=i.parent(m),E,_;b;){if(E=i.parent(b),E?(_=p[E],p[E]=b):(_=w,w=b),_&&_!==b){a.setEdge(_,b);return}b=E}})}function SNe(i,a,f){var p=ANe(i),w=new c1({compound:!0}).setGraph({root:p}).setDefaultNodeLabel(function(m){return i.node(m)});return cr(i.nodes(),function(m){var b=i.node(m),E=i.parent(m);(b.rank===a||b.minRank<=a&&a<=b.maxRank)&&(w.setNode(m),w.setParent(m,E||p),cr(i[f](m),function(_){var A=_.v===m?_.w:_.v,I=w.edge(A,m),B=Jh(I)?0:I.weight;w.setEdge(A,m,{weight:i.edge(_).weight+B})}),za(b,"minRank")&&w.setNode(m,{borderLeft:b.borderLeft[a],borderRight:b.borderRight[a]}))}),w}function ANe(i){for(var a;i.hasNode(a=vY("_root")););return a}function LNe(i,a){for(var f=0,p=1;p0;)I%2&&(B+=E[I+1]),I=I-1>>1,E[I]+=A.weight;_+=A.weight*B})),_}function DNe(i){var a={},f=D5(i.nodes(),function(E){return!i.children(E).length}),p=mT(Ff(f,function(E){return i.node(E).rank})),w=Ff(yT(p+1),function(){return[]});function m(E){if(!za(a,E)){a[E]=!0;var _=i.node(E);w[_.rank].push(E),cr(i.successors(E),m)}}var b=yF(f,function(E){return i.node(E).rank});return cr(b,m),w}function INe(i,a){return Ff(a,function(f){var p=i.inEdges(f);if(p.length){var w=mF(p,function(m,b){var E=i.edge(b),_=i.node(b.v);return{sum:m.sum+E.weight*_.order,weight:m.weight+E.weight}},{sum:0,weight:0});return{v:f,barycenter:w.sum/w.weight,weight:w.weight}}else return{v:f}})}function ONe(i,a){var f={};cr(i,function(w,m){var b=f[w.v]={indegree:0,in:[],out:[],vs:[w.v],i:m};Jh(w.barycenter)||(b.barycenter=w.barycenter,b.weight=w.weight)}),cr(a.edges(),function(w){var m=f[w.v],b=f[w.w];!Jh(m)&&!Jh(b)&&(b.indegree++,m.out.push(f[w.w]))});var p=D5(f,function(w){return!w.indegree});return PNe(p)}function PNe(i){var a=[];function f(m){return function(b){b.merged||(Jh(b.barycenter)||Jh(m.barycenter)||b.barycenter>=m.barycenter)&&FNe(m,b)}}function p(m){return function(b){b.in.push(m),--b.indegree===0&&i.push(b)}}for(;i.length;){var w=i.pop();a.push(w),cr(w.in.reverse(),f(w)),cr(w.out,p(w))}return Ff(D5(a,function(m){return!m.merged}),function(m){return vF(m,["vs","i","barycenter","weight"])})}function FNe(i,a){var f=0,p=0;i.weight&&(f+=i.barycenter*i.weight,p+=i.weight),a.weight&&(f+=a.barycenter*a.weight,p+=a.weight),i.vs=a.vs.concat(i.vs),i.barycenter=f/p,i.weight=p,i.i=Math.min(a.i,i.i),a.merged=!0}function NNe(i,a){var f=JFe(i,function(I){return za(I,"barycenter")}),p=f.lhs,w=yF(f.rhs,function(I){return-I.i}),m=[],b=0,E=0,_=0;p.sort(BNe(!!a)),_=cNt(m,w,_),cr(p,function(I){_+=I.vs.length,m.push(I.vs),b+=I.barycenter*I.weight,E+=I.weight,_=cNt(m,w,_)});var A={vs:rL(m)};return E&&(A.barycenter=b/E,A.weight=E),A}function cNt(i,a,f){for(var p;a.length&&(p=bY(a)).i<=f;)a.pop(),i.push(p.vs),f++;return f}function BNe(i){return function(a,f){return a.barycenterf.barycenter?1:i?f.i-a.i:a.i-f.i}}function uNt(i,a,f,p){var w=i.children(a),m=i.node(a),b=m?m.borderLeft:void 0,E=m?m.borderRight:void 0,_={};b&&(w=D5(w,function(z){return z!==b&&z!==E}));var A=INe(i,w);cr(A,function(z){if(i.children(z.v).length){var W=uNt(i,z.v,f,p);_[z.v]=W,za(W,"barycenter")&&jNe(z,W)}});var I=ONe(A,f);RNe(I,_);var B=NNe(I,p);if(b&&(B.vs=rL([b,B.vs,E]),i.predecessors(b).length)){var N=i.node(i.predecessors(b)[0]),R=i.node(i.predecessors(E)[0]);za(B,"barycenter")||(B.barycenter=0,B.weight=0),B.barycenter=(B.barycenter*B.weight+N.order+R.order)/(B.weight+2),B.weight+=2}return B}function RNe(i,a){cr(i,function(f){f.vs=rL(f.vs.map(function(p){return a[p]?a[p].vs:p}))})}function jNe(i,a){Jh(i.barycenter)?(i.barycenter=a.barycenter,i.weight=a.weight):(i.barycenter=(i.barycenter*i.weight+a.barycenter*a.weight)/(i.weight+a.weight),i.weight+=a.weight)}function $Ne(i){var a=WFt(i),f=lNt(i,yT(1,a+1),"inEdges"),p=lNt(i,yT(a-1,-1,-1),"outEdges"),w=DNe(i);hNt(i,w);for(var m=Number.POSITIVE_INFINITY,b,E=0,_=0;_<4;++E,++_){zNe(E%2?f:p,E%4>=2),w=mY(i);var A=LNe(i,w);Ab||E>a[_].lim));for(A=_,_=p;(_=i.parent(_))!==A;)m.push(_);return{path:w.concat(m.reverse()),lca:A}}function VNe(i){var a={},f=0;function p(w){var m=f;cr(i.children(w),p),a[w]={low:m,lim:f++}}return cr(i.children(),p),a}function GNe(i,a){var f={};function p(w,m){var b=0,E=0,_=w.length,A=bY(m);return cr(m,function(I,B){var N=WNe(i,I),R=N?i.node(N).order:_;(N||I===A)&&(cr(m.slice(E,B+1),function(z){cr(i.predecessors(z),function(W){var et=i.node(W),st=et.order;(stA)&&fNt(f,N,I)})})}function w(m,b){var E=-1,_,A=0;return cr(b,function(I,B){if(i.node(I).dummy==="border"){var N=i.predecessors(I);N.length&&(_=i.node(N[0]).order,p(b,A,B,E,_),A=B,E=_)}p(b,A,b.length,_,m.length)}),b}return mF(a,w),f}function WNe(i,a){if(i.node(a).dummy)return e0t(i.predecessors(a),function(f){return i.node(f).dummy})}function fNt(i,a,f){if(a>f){var p=a;a=f,f=p}var w=i[a];w||(i[a]=w={}),w[f]=!0}function YNe(i,a,f){if(a>f){var p=a;a=f,f=p}return za(i[a],f)}function KNe(i,a,f,p){var w={},m={},b={};return cr(a,function(E){cr(E,function(_,A){w[_]=_,m[_]=_,b[_]=A})}),cr(a,function(E){var _=-1;cr(E,function(A){var I=p(A);if(I.length){I=yF(I,function(W){return b[W]});for(var B=(I.length-1)/2,N=Math.floor(B),R=Math.ceil(B);N<=R;++N){var z=I[N];m[A]===A&&_0}function v3(i,a,f){var p=i.x,w=i.y,m=[],b=Number.POSITIVE_INFINITY,E=Number.POSITIVE_INFINITY;a.forEach(function(z){b=Math.min(b,z.x),E=Math.min(E,z.y)});for(var _=p-i.width/2-b,A=w-i.height/2-E,I=0;I1&&m.sort(function(z,W){var et=z.x-f.x,st=z.y-f.y,at=Math.sqrt(et*et+st*st),bt=W.x-f.x,mt=W.y-f.y,yt=Math.sqrt(bt*bt+mt*mt);return atMath.abs(w)*E?(m<0&&(E=-E),_=m===0?0:E*w/m,A=E):(w<0&&(b=-b),_=b,A=w===0?0:b*m/w),{x:f+_,y:p+A}}var E0t={rect:ZBe,ellipse:JBe,circle:tRe,diamond:eRe};function QBe(i){E0t=i}function ZBe(i,a,f){var p=i.insert("rect",":first-child").attr("rx",f.rx).attr("ry",f.ry).attr("x",-a.width/2).attr("y",-a.height/2).attr("width",a.width).attr("height",a.height);return f.intersect=function(w){return k0t(f,w)},p}function JBe(i,a,f){var p=a.width/2,w=a.height/2,m=i.insert("ellipse",":first-child").attr("x",-a.width/2).attr("y",-a.height/2).attr("rx",p).attr("ry",w);return f.intersect=function(b){return vNt(f,p,w,b)},m}function tRe(i,a,f){var p=Math.max(a.width,a.height)/2,w=i.insert("circle",":first-child").attr("x",-a.width/2).attr("y",-a.height/2).attr("r",p);return f.intersect=function(m){return KBe(f,p,m)},w}function eRe(i,a,f){var p=a.width*Math.SQRT2/2,w=a.height*Math.SQRT2/2,m=[{x:0,y:-w},{x:-p,y:0},{x:0,y:w},{x:p,y:0}],b=i.insert("polygon",":first-child").attr("points",m.map(function(E){return E.x+","+E.y}).join(" "));return f.intersect=function(E){return v3(f,m,E)},b}function nRe(){var i=function(a,f){sRe(f);var p=EF(a,"output"),w=EF(p,"clusters"),m=EF(p,"edgePaths"),b=m0t(EF(p,"edgeLabels"),f),E=x0t(EF(p,"nodes"),f,E0t);aL(f),YBe(E,f),WBe(b,f),y0t(m,f,p0t);var _=v0t(w,f);UBe(_,f),aRe(f)};return i.createNodes=function(a){return arguments.length?(GBe(a),i):x0t},i.createClusters=function(a){return arguments.length?(BBe(a),i):v0t},i.createEdgeLabels=function(a){return arguments.length?(RBe(a),i):m0t},i.createEdgePaths=function(a){return arguments.length?(jBe(a),i):y0t},i.shapes=function(a){return arguments.length?(QBe(a),i):E0t},i.arrows=function(a){return arguments.length?(MBe(a),i):p0t},i}var rRe={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},iRe={arrowhead:"normal",curve:cg};function sRe(i){i.nodes().forEach(function(a){var f=i.node(a);!za(f,"label")&&!i.children(a).length&&(f.label=a),za(f,"paddingX")&&iL(f,{paddingLeft:f.paddingX,paddingRight:f.paddingX}),za(f,"paddingY")&&iL(f,{paddingTop:f.paddingY,paddingBottom:f.paddingY}),za(f,"padding")&&iL(f,{paddingLeft:f.padding,paddingRight:f.padding,paddingTop:f.padding,paddingBottom:f.padding}),iL(f,rRe),cr(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(p){f[p]=Number(f[p])}),za(f,"width")&&(f._prevWidth=f.width),za(f,"height")&&(f._prevHeight=f.height)}),i.edges().forEach(function(a){var f=i.edge(a);za(f,"label")||(f.label=""),iL(f,iRe)})}function aRe(i){cr(i.nodes(),function(a){var f=i.node(a);za(f,"_prevWidth")?f.width=f._prevWidth:delete f.width,za(f,"_prevHeight")?f.height=f._prevHeight:delete f.height,delete f._prevWidth,delete f._prevHeight})}function EF(i,a){var f=i.select("g."+a);return f.empty()&&(f=i.append("g").attr("class",a)),f}function yNt(i,a,f){const p=a.width,w=a.height,m=(p+w)*.9,b=[{x:m/2,y:0},{x:m,y:-m/2},{x:m/2,y:-m},{x:0,y:-m/2}],E=O5(i,m,m,b);return f.intersect=function(_){return v3(f,b,_)},E}function xNt(i,a,f){const w=a.height,m=w/4,b=a.width+2*m,E=[{x:m,y:0},{x:b-m,y:0},{x:b,y:-w/2},{x:b-m,y:-w},{x:m,y:-w},{x:0,y:-w/2}],_=O5(i,b,w,E);return f.intersect=function(A){return v3(f,E,A)},_}function kNt(i,a,f){const p=a.width,w=a.height,m=[{x:-w/2,y:0},{x:p,y:0},{x:p,y:-w},{x:-w/2,y:-w},{x:0,y:-w/2}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function ENt(i,a,f){const p=a.width,w=a.height,m=[{x:-2*w/6,y:0},{x:p-w/6,y:0},{x:p+2*w/6,y:-w},{x:w/6,y:-w}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function TNt(i,a,f){const p=a.width,w=a.height,m=[{x:2*w/6,y:0},{x:p+w/6,y:0},{x:p-2*w/6,y:-w},{x:-w/6,y:-w}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function CNt(i,a,f){const p=a.width,w=a.height,m=[{x:-2*w/6,y:0},{x:p+2*w/6,y:0},{x:p-w/6,y:-w},{x:w/6,y:-w}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function _Nt(i,a,f){const p=a.width,w=a.height,m=[{x:w/6,y:0},{x:p-w/6,y:0},{x:p+2*w/6,y:-w},{x:-2*w/6,y:-w}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function SNt(i,a,f){const p=a.width,w=a.height,m=[{x:0,y:0},{x:p+w/2,y:0},{x:p,y:-w/2},{x:p+w/2,y:-w},{x:0,y:-w}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function ANt(i,a,f){const p=a.height,w=a.width+p/4,m=i.insert("rect",":first-child").attr("rx",p/2).attr("ry",p/2).attr("x",-w/2).attr("y",-p/2).attr("width",w).attr("height",p);return f.intersect=function(b){return k0t(f,b)},m}function LNt(i,a,f){const p=a.width,w=a.height,m=[{x:0,y:0},{x:p,y:0},{x:p,y:-w},{x:0,y:-w},{x:0,y:0},{x:-8,y:0},{x:p+8,y:0},{x:p+8,y:-w},{x:-8,y:-w},{x:-8,y:0}],b=O5(i,p,w,m);return f.intersect=function(E){return v3(f,m,E)},b}function MNt(i,a,f){const p=a.width,w=p/2,m=w/(2.5+p/50),b=a.height+m,E="M 0,"+m+" a "+w+","+m+" 0,0,0 "+p+" 0 a "+w+","+m+" 0,0,0 "+-p+" 0 l 0,"+b+" a "+w+","+m+" 0,0,0 "+p+" 0 l 0,"+-b,_=i.attr("label-offset-y",m).insert("path",":first-child").attr("d",E).attr("transform","translate("+-p/2+","+-(b/2+m)+")");return f.intersect=function(A){const I=k0t(f,A),B=I.x-f.x;if(w!=0&&(Math.abs(B)f.height/2-m)){let N=m*m*(1-B*B/(w*w));N!=0&&(N=Math.sqrt(N)),N=m-N,A.y-f.y>0&&(N=-N),I.y+=N}return I},_}function oRe(i){i.shapes().question=yNt,i.shapes().hexagon=xNt,i.shapes().stadium=ANt,i.shapes().subroutine=LNt,i.shapes().cylinder=MNt,i.shapes().rect_left_inv_arrow=kNt,i.shapes().lean_right=ENt,i.shapes().lean_left=TNt,i.shapes().trapezoid=CNt,i.shapes().inv_trapezoid=_Nt,i.shapes().rect_right_inv_arrow=SNt}function cRe(i){i({question:yNt}),i({hexagon:xNt}),i({stadium:ANt}),i({subroutine:LNt}),i({cylinder:MNt}),i({rect_left_inv_arrow:kNt}),i({lean_right:ENt}),i({lean_left:TNt}),i({trapezoid:CNt}),i({inv_trapezoid:_Nt}),i({rect_right_inv_arrow:SNt})}function O5(i,a,f,p){return i.insert("polygon",":first-child").attr("points",p.map(function(w){return w.x+","+w.y}).join(" ")).attr("transform","translate("+-a/2+","+f/2+")")}const uRe={addToRender:oRe,addToRenderV2:cRe},DNt={},lRe=function(i){const a=Object.keys(i);for(const f of a)DNt[f]=i[f]},INt=function(i,a,f,p,w,m){const b=p?p.select(`[id="${f}"]`):yr(`[id="${f}"]`),E=w||document;Object.keys(i).forEach(function(A){const I=i[A];let B="default";I.classes.length>0&&(B=I.classes.join(" "));const N=im(I.styles);let R=I.text!==void 0?I.text:I.id,z;if(o1(Oe().flowchart.htmlLabels)){const st={label:R.replace(/fa[blrs]?:fa-[\w-]+/g,at=>``)};z=b0t(b,st).node(),z.parentNode.removeChild(z)}else{const st=E.createElementNS("http://www.w3.org/2000/svg","text");st.setAttribute("style",N.labelStyle.replace("color:","fill:"));const at=R.split(Kr.lineBreakRegex);for(const bt of at){const mt=E.createElementNS("http://www.w3.org/2000/svg","tspan");mt.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),mt.setAttribute("dy","1em"),mt.setAttribute("x","1"),mt.textContent=bt,st.appendChild(mt)}z=st}let W=0,et="";switch(I.type){case"round":W=5,et="rect";break;case"square":et="rect";break;case"diamond":et="question";break;case"hexagon":et="hexagon";break;case"odd":et="rect_left_inv_arrow";break;case"lean_right":et="lean_right";break;case"lean_left":et="lean_left";break;case"trapezoid":et="trapezoid";break;case"inv_trapezoid":et="inv_trapezoid";break;case"odd_right":et="rect_left_inv_arrow";break;case"circle":et="circle";break;case"ellipse":et="ellipse";break;case"stadium":et="stadium";break;case"subroutine":et="subroutine";break;case"cylinder":et="cylinder";break;case"group":et="rect";break;default:et="rect"}Ut.warn("Adding node",I.id,I.domId),a.setNode(m.db.lookUpDomId(I.id),{labelType:"svg",labelStyle:N.labelStyle,shape:et,label:z,rx:W,ry:W,class:B,style:N.style,id:m.db.lookUpDomId(I.id)})})},ONt=function(i,a,f){let p=0,w,m;if(i.defaultStyle!==void 0){const b=im(i.defaultStyle);w=b.style,m=b.labelStyle}i.forEach(function(b){p++;const E="L-"+b.start+"-"+b.end,_="LS-"+b.start,A="LE-"+b.end,I={};b.type==="arrow_open"?I.arrowhead="none":I.arrowhead="normal";let B="",N="";if(b.style!==void 0){const R=im(b.style);B=R.style,N=R.labelStyle}else switch(b.stroke){case"normal":B="fill:none",w!==void 0&&(B=w),m!==void 0&&(N=m);break;case"dotted":B="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":B=" stroke-width: 3.5px;fill:none";break}I.style=B,I.labelStyle=N,b.interpolate!==void 0?I.curve=ew(b.interpolate,cg):i.defaultInterpolate!==void 0?I.curve=ew(i.defaultInterpolate,cg):I.curve=ew(DNt.curve,cg),b.text===void 0?b.style!==void 0&&(I.arrowheadStyle="fill: #333"):(I.arrowheadStyle="fill: #333",I.labelpos="c",o1(Oe().flowchart.htmlLabels)?(I.labelType="html",I.label=`${b.text.replace(/fa[blrs]?:fa-[\w-]+/g,R=>``)}`):(I.labelType="text",I.label=b.text.replace(Kr.lineBreakRegex,` -`),b.style===void 0&&(I.style=I.style||"stroke: #333; stroke-width: 1.5px;fill:none"),I.labelStyle=I.labelStyle.replace("color:","fill:"))),I.id=E,I.class=_+" "+A,I.minlen=b.length||1,a.setEdge(f.db.lookUpDomId(b.start),f.db.lookUpDomId(b.end),I,p)})},hRe={setConf:lRe,addVertices:INt,addEdges:ONt,getClasses:function(i,a){return Ut.info("Extracting classes"),a.db.getClasses()},draw:function(i,a,f,p){Ut.info("Drawing flowchart");const{securityLevel:w,flowchart:m}=Oe();let b;w==="sandbox"&&(b=yr("#i"+a));const E=yr(w==="sandbox"?b.nodes()[0].contentDocument.body:"body"),_=w==="sandbox"?b.nodes()[0].contentDocument:document;let A=p.db.getDirection();A===void 0&&(A="TD");const I=m.nodeSpacing||50,B=m.rankSpacing||50,N=new c1({multigraph:!0,compound:!0}).setGraph({rankdir:A,nodesep:I,ranksep:B,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let R;const z=p.db.getSubGraphs();for(let ft=z.length-1;ft>=0;ft--)R=z[ft],p.db.addVertex(R.id,R.title,"group",void 0,R.classes);const W=p.db.getVertices();Ut.warn("Get vertices",W);const et=p.db.getEdges();let st=0;for(st=z.length-1;st>=0;st--){R=z[st],sMt("cluster").append("text");for(let ft=0;ft{a.forEach(w=>{pRe[w](i,f,p)})},pRe={extension:(i,a,f)=>{Ut.trace("Making markers for ",f),i.append("defs").append("marker").attr("id",f+"_"+a+"-extensionStart").attr("class","marker extension "+a).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-extensionEnd").attr("class","marker extension "+a).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-compositionStart").attr("class","marker composition "+a).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-compositionEnd").attr("class","marker composition "+a).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-aggregationStart").attr("class","marker aggregation "+a).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-aggregationEnd").attr("class","marker aggregation "+a).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-dependencyStart").attr("class","marker dependency "+a).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-dependencyEnd").attr("class","marker dependency "+a).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},lollipop:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-lollipopStart").attr("class","marker lollipop "+a).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),i.append("defs").append("marker").attr("id",f+"_"+a+"-lollipopEnd").attr("class","marker lollipop "+a).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},point:(i,a,f)=>{i.append("marker").attr("id",f+"_"+a+"-pointEnd").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),i.append("marker").attr("id",f+"_"+a+"-pointStart").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:(i,a,f)=>{i.append("marker").attr("id",f+"_"+a+"-circleEnd").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),i.append("marker").attr("id",f+"_"+a+"-circleStart").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:(i,a,f)=>{i.append("marker").attr("id",f+"_"+a+"-crossEnd").attr("class","marker cross "+a).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),i.append("marker").attr("id",f+"_"+a+"-crossStart").attr("class","marker cross "+a).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}},PNt=gRe;function bRe(i,a){a&&i.attr("style",a)}function wRe(i){const a=yr(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),f=a.append("xhtml:div"),p=i.label,w=i.isNode?"nodeLabel":"edgeLabel";return f.html('"+p+""),bRe(f,i.labelStyle),f.style("display","inline-block"),f.style("white-space","nowrap"),f.attr("xmlns","http://www.w3.org/1999/xhtml"),a.node()}const gp=(i,a,f,p)=>{let w=i||"";if(typeof w=="object"&&(w=w[0]),o1(Oe().flowchart.htmlLabels)){w=w.replace(/\\n|\n/g,"
"),Ut.info("vertexText"+w);const m={isNode:p,label:uF(w).replace(/fa[blrs]?:fa-[\w-]+/g,E=>``),labelStyle:a.replace("fill:","color:")};return wRe(m)}else{const m=document.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("style",a.replace("color:","fill:"));let b=[];typeof w=="string"?b=w.split(/\\n|\n|/gi):Array.isArray(w)?b=w:b=[];for(const E of b){const _=document.createElementNS("http://www.w3.org/2000/svg","tspan");_.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),_.setAttribute("dy","1em"),_.setAttribute("x","0"),f?_.setAttribute("class","title-row"):_.setAttribute("class","row"),_.textContent=E.trim(),m.appendChild(_)}return m}},vRe={};function mRe(i,a){const f=a||vRe,p=typeof f.includeImageAlt=="boolean"?f.includeImageAlt:!0,w=typeof f.includeHtml=="boolean"?f.includeHtml:!0;return FNt(i,p,w)}function FNt(i,a,f){if(yRe(i)){if("value"in i)return i.type==="html"&&!f?"":i.value;if(a&&"alt"in i&&i.alt)return i.alt;if("children"in i)return NNt(i.children,a,f)}return Array.isArray(i)?NNt(i,a,f):""}function NNt(i,a,f){const p=[];let w=-1;for(;++ww?0:w+a:a=a>w?w:a,f=f>0?f:0,p.length<1e4)b=Array.from(p),b.unshift(a,f),i.splice(...b);else for(f&&i.splice(a,f);m0?(m3(i,i.length,0,a),i):a}const BNt={}.hasOwnProperty;function xRe(i){const a={};let f=-1;for(;++fb))return;const ut=a.events.length;let vt=ut,X,pt;for(;vt--;)if(a.events[vt][0]==="exit"&&a.events[vt][1].type==="chunkFlow"){if(X){pt=a.events[vt][1].end;break}X=!0}for(st(p),ft=ut;ftbt;){const yt=f[mt];a.containerState=yt[1],yt[0].exit.call(a,i)}f.length=bt}function at(){w.write([null]),m=void 0,w=void 0,a.containerState._closeFlow=void 0}}function PRe(i,a,f){return il(i,i.attempt(this.parser.constructs.document,a,f),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function jNt(i){if(i===null||pp(i)||LRe(i))return 1;if(ARe(i))return 2}function _0t(i,a,f){const p=[];let w=-1;for(;++w1&&i[f][1].end.offset-i[f][1].start.offset>1?2:1;const B=Object.assign({},i[p][1].end),N=Object.assign({},i[f][1].start);$Nt(B,-_),$Nt(N,_),b={type:_>1?"strongSequence":"emphasisSequence",start:B,end:Object.assign({},i[p][1].end)},E={type:_>1?"strongSequence":"emphasisSequence",start:Object.assign({},i[f][1].start),end:N},m={type:_>1?"strongText":"emphasisText",start:Object.assign({},i[p][1].end),end:Object.assign({},i[f][1].start)},w={type:_>1?"strong":"emphasis",start:Object.assign({},b.start),end:Object.assign({},E.end)},i[p][1].end=Object.assign({},b.start),i[f][1].start=Object.assign({},E.end),A=[],i[p][1].end.offset-i[p][1].start.offset&&(A=sw(A,[["enter",i[p][1],a],["exit",i[p][1],a]])),A=sw(A,[["enter",w,a],["enter",b,a],["exit",b,a],["enter",m,a]]),A=sw(A,_0t(a.parser.constructs.insideSpan.null,i.slice(p+1,f),a)),A=sw(A,[["exit",m,a],["enter",E,a],["exit",E,a],["exit",w,a]]),i[f][1].end.offset-i[f][1].start.offset?(I=2,A=sw(A,[["enter",i[f][1],a],["exit",i[f][1],a]])):I=0,m3(i,p-1,f-p+3,A),f=p+A.length-I-2;break}}for(f=-1;++f0&&Wc(ft)?il(i,at,"linePrefix",m+1)(ft):at(ft)}function at(ft){return ft===null||xa(ft)?i.check(GNt,W,mt)(ft):(i.enter("codeFlowValue"),bt(ft))}function bt(ft){return ft===null||xa(ft)?(i.exit("codeFlowValue"),at(ft)):(i.consume(ft),bt)}function mt(ft){return i.exit("codeFenced"),a(ft)}function yt(ft,ut,vt){let X=0;return pt;function pt(Ot){return ft.enter("lineEnding"),ft.consume(Ot),ft.exit("lineEnding"),U}function U(Ot){return ft.enter("codeFencedFence"),Wc(Ot)?il(ft,Tt,"linePrefix",p.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Ot):Tt(Ot)}function Tt(Ot){return Ot===E?(ft.enter("codeFencedFenceSequence"),nt(Ot)):vt(Ot)}function nt(Ot){return Ot===E?(X++,ft.consume(Ot),nt):X>=b?(ft.exit("codeFencedFenceSequence"),Wc(Ot)?il(ft,It,"whitespace")(Ot):It(Ot)):vt(Ot)}function It(Ot){return Ot===null||xa(Ot)?(ft.exit("codeFencedFence"),ut(Ot)):vt(Ot)}}}function URe(i,a,f){const p=this;return w;function w(b){return b===null?f(b):(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),m)}function m(b){return p.parser.lazy[p.now().line]?f(b):a(b)}}const L0t={name:"codeIndented",tokenize:YRe},WRe={tokenize:KRe,partial:!0};function YRe(i,a,f){const p=this;return w;function w(A){return i.enter("codeIndented"),il(i,m,"linePrefix",4+1)(A)}function m(A){const I=p.events[p.events.length-1];return I&&I[1].type==="linePrefix"&&I[2].sliceSerialize(I[1],!0).length>=4?b(A):f(A)}function b(A){return A===null?_(A):xa(A)?i.attempt(WRe,b,_)(A):(i.enter("codeFlowValue"),E(A))}function E(A){return A===null||xa(A)?(i.exit("codeFlowValue"),b(A)):(i.consume(A),E)}function _(A){return i.exit("codeIndented"),a(A)}}function KRe(i,a,f){const p=this;return w;function w(b){return p.parser.lazy[p.now().line]?f(b):xa(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),w):il(i,m,"linePrefix",4+1)(b)}function m(b){const E=p.events[p.events.length-1];return E&&E[1].type==="linePrefix"&&E[2].sliceSerialize(E[1],!0).length>=4?a(b):xa(b)?w(b):f(b)}}const XRe={name:"codeText",tokenize:JRe,resolve:QRe,previous:ZRe};function QRe(i){let a=i.length-4,f=3,p,w;if((i[f][1].type==="lineEnding"||i[f][1].type==="space")&&(i[a][1].type==="lineEnding"||i[a][1].type==="space")){for(p=f;++p=4?a(b):i.interrupt(p.parser.constructs.flow,f,a)(b)}}function YNt(i,a,f,p,w,m,b,E,_){const A=_||Number.POSITIVE_INFINITY;let I=0;return B;function B(st){return st===60?(i.enter(p),i.enter(w),i.enter(m),i.consume(st),i.exit(m),N):st===null||st===32||st===41||T0t(st)?f(st):(i.enter(p),i.enter(b),i.enter(E),i.enter("chunkString",{contentType:"string"}),W(st))}function N(st){return st===62?(i.enter(m),i.consume(st),i.exit(m),i.exit(w),i.exit(p),a):(i.enter(E),i.enter("chunkString",{contentType:"string"}),R(st))}function R(st){return st===62?(i.exit("chunkString"),i.exit(E),N(st)):st===null||st===60||xa(st)?f(st):(i.consume(st),st===92?z:R)}function z(st){return st===60||st===62||st===92?(i.consume(st),R):R(st)}function W(st){return!I&&(st===null||st===41||pp(st))?(i.exit("chunkString"),i.exit(E),i.exit(b),i.exit(p),a(st)):I999||R===null||R===91||R===93&&!_||R===94&&!E&&"_hiddenFootnoteSupport"in b.parser.constructs?f(R):R===93?(i.exit(m),i.enter(w),i.consume(R),i.exit(w),i.exit(p),a):xa(R)?(i.enter("lineEnding"),i.consume(R),i.exit("lineEnding"),I):(i.enter("chunkString",{contentType:"string"}),B(R))}function B(R){return R===null||R===91||R===93||xa(R)||E++>999?(i.exit("chunkString"),I(R)):(i.consume(R),_||(_=!Wc(R)),R===92?N:B)}function N(R){return R===91||R===92||R===93?(i.consume(R),E++,B):B(R)}}function XNt(i,a,f,p,w,m){let b;return E;function E(N){return N===34||N===39||N===40?(i.enter(p),i.enter(w),i.consume(N),i.exit(w),b=N===40?41:N,_):f(N)}function _(N){return N===b?(i.enter(w),i.consume(N),i.exit(w),i.exit(p),a):(i.enter(m),A(N))}function A(N){return N===b?(i.exit(m),_(b)):N===null?f(N):xa(N)?(i.enter("lineEnding"),i.consume(N),i.exit("lineEnding"),il(i,A,"linePrefix")):(i.enter("chunkString",{contentType:"string"}),I(N))}function I(N){return N===b||N===null||xa(N)?(i.exit("chunkString"),A(N)):(i.consume(N),N===92?B:I)}function B(N){return N===b||N===92?(i.consume(N),I):I(N)}}function TF(i,a){let f;return p;function p(w){return xa(w)?(i.enter("lineEnding"),i.consume(w),i.exit("lineEnding"),f=!0,p):Wc(w)?il(i,p,f?"linePrefix":"lineSuffix")(w):a(w)}}function oL(i){return i.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const aje={name:"definition",tokenize:cje},oje={tokenize:uje,partial:!0};function cje(i,a,f){const p=this;let w;return m;function m(R){return i.enter("definition"),b(R)}function b(R){return KNt.call(p,i,E,f,"definitionLabel","definitionLabelMarker","definitionLabelString")(R)}function E(R){return w=oL(p.sliceSerialize(p.events[p.events.length-1][1]).slice(1,-1)),R===58?(i.enter("definitionMarker"),i.consume(R),i.exit("definitionMarker"),_):f(R)}function _(R){return pp(R)?TF(i,A)(R):A(R)}function A(R){return YNt(i,I,f,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(R)}function I(R){return i.attempt(oje,B,B)(R)}function B(R){return Wc(R)?il(i,N,"whitespace")(R):N(R)}function N(R){return R===null||xa(R)?(i.exit("definition"),p.parser.defined.push(w),a(R)):f(R)}}function uje(i,a,f){return p;function p(E){return pp(E)?TF(i,w)(E):f(E)}function w(E){return XNt(i,m,f,"definitionTitle","definitionTitleMarker","definitionTitleString")(E)}function m(E){return Wc(E)?il(i,b,"whitespace")(E):b(E)}function b(E){return E===null||xa(E)?a(E):f(E)}}const lje={name:"hardBreakEscape",tokenize:hje};function hje(i,a,f){return p;function p(m){return i.enter("hardBreakEscape"),i.consume(m),w}function w(m){return xa(m)?(i.exit("hardBreakEscape"),a(m)):f(m)}}const fje={name:"headingAtx",tokenize:gje,resolve:dje};function dje(i,a){let f=i.length-2,p=3,w,m;return i[p][1].type==="whitespace"&&(p+=2),f-2>p&&i[f][1].type==="whitespace"&&(f-=2),i[f][1].type==="atxHeadingSequence"&&(p===f-1||f-4>p&&i[f-2][1].type==="whitespace")&&(f-=p+1===f?2:4),f>p&&(w={type:"atxHeadingText",start:i[p][1].start,end:i[f][1].end},m={type:"chunkText",start:i[p][1].start,end:i[f][1].end,contentType:"text"},m3(i,p,f-p+1,[["enter",w,a],["enter",m,a],["exit",m,a],["exit",w,a]])),i}function gje(i,a,f){let p=0;return w;function w(I){return i.enter("atxHeading"),m(I)}function m(I){return i.enter("atxHeadingSequence"),b(I)}function b(I){return I===35&&p++<6?(i.consume(I),b):I===null||pp(I)?(i.exit("atxHeadingSequence"),E(I)):f(I)}function E(I){return I===35?(i.enter("atxHeadingSequence"),_(I)):I===null||xa(I)?(i.exit("atxHeading"),a(I)):Wc(I)?il(i,E,"whitespace")(I):(i.enter("atxHeadingText"),A(I))}function _(I){return I===35?(i.consume(I),_):(i.exit("atxHeadingSequence"),E(I))}function A(I){return I===null||I===35||pp(I)?(i.exit("atxHeadingText"),E(I)):(i.consume(I),A)}}const pje=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],QNt=["pre","script","style","textarea"],bje={name:"htmlFlow",tokenize:yje,resolveTo:mje,concrete:!0},wje={tokenize:kje,partial:!0},vje={tokenize:xje,partial:!0};function mje(i){let a=i.length;for(;a--&&!(i[a][0]==="enter"&&i[a][1].type==="htmlFlow"););return a>1&&i[a-2][1].type==="linePrefix"&&(i[a][1].start=i[a-2][1].start,i[a+1][1].start=i[a-2][1].start,i.splice(a-2,2)),i}function yje(i,a,f){const p=this;let w,m,b,E,_;return A;function A(Ft){return I(Ft)}function I(Ft){return i.enter("htmlFlow"),i.enter("htmlFlowData"),i.consume(Ft),B}function B(Ft){return Ft===33?(i.consume(Ft),N):Ft===47?(i.consume(Ft),m=!0,W):Ft===63?(i.consume(Ft),w=3,p.interrupt?a:xt):y3(Ft)?(i.consume(Ft),b=String.fromCharCode(Ft),et):f(Ft)}function N(Ft){return Ft===45?(i.consume(Ft),w=2,R):Ft===91?(i.consume(Ft),w=5,E=0,z):y3(Ft)?(i.consume(Ft),w=4,p.interrupt?a:xt):f(Ft)}function R(Ft){return Ft===45?(i.consume(Ft),p.interrupt?a:xt):f(Ft)}function z(Ft){const gn="CDATA[";return Ft===gn.charCodeAt(E++)?(i.consume(Ft),E===gn.length?p.interrupt?a:Tt:z):f(Ft)}function W(Ft){return y3(Ft)?(i.consume(Ft),b=String.fromCharCode(Ft),et):f(Ft)}function et(Ft){if(Ft===null||Ft===47||Ft===62||pp(Ft)){const gn=Ft===47,Se=b.toLowerCase();return!gn&&!m&&QNt.includes(Se)?(w=1,p.interrupt?a(Ft):Tt(Ft)):pje.includes(b.toLowerCase())?(w=6,gn?(i.consume(Ft),st):p.interrupt?a(Ft):Tt(Ft)):(w=7,p.interrupt&&!p.parser.lazy[p.now().line]?f(Ft):m?at(Ft):bt(Ft))}return Ft===45||lm(Ft)?(i.consume(Ft),b+=String.fromCharCode(Ft),et):f(Ft)}function st(Ft){return Ft===62?(i.consume(Ft),p.interrupt?a:Tt):f(Ft)}function at(Ft){return Wc(Ft)?(i.consume(Ft),at):pt(Ft)}function bt(Ft){return Ft===47?(i.consume(Ft),pt):Ft===58||Ft===95||y3(Ft)?(i.consume(Ft),mt):Wc(Ft)?(i.consume(Ft),bt):pt(Ft)}function mt(Ft){return Ft===45||Ft===46||Ft===58||Ft===95||lm(Ft)?(i.consume(Ft),mt):yt(Ft)}function yt(Ft){return Ft===61?(i.consume(Ft),ft):Wc(Ft)?(i.consume(Ft),yt):bt(Ft)}function ft(Ft){return Ft===null||Ft===60||Ft===61||Ft===62||Ft===96?f(Ft):Ft===34||Ft===39?(i.consume(Ft),_=Ft,ut):Wc(Ft)?(i.consume(Ft),ft):vt(Ft)}function ut(Ft){return Ft===_?(i.consume(Ft),_=null,X):Ft===null||xa(Ft)?f(Ft):(i.consume(Ft),ut)}function vt(Ft){return Ft===null||Ft===34||Ft===39||Ft===47||Ft===60||Ft===61||Ft===62||Ft===96||pp(Ft)?yt(Ft):(i.consume(Ft),vt)}function X(Ft){return Ft===47||Ft===62||Wc(Ft)?bt(Ft):f(Ft)}function pt(Ft){return Ft===62?(i.consume(Ft),U):f(Ft)}function U(Ft){return Ft===null||xa(Ft)?Tt(Ft):Wc(Ft)?(i.consume(Ft),U):f(Ft)}function Tt(Ft){return Ft===45&&w===2?(i.consume(Ft),Bt):Ft===60&&w===1?(i.consume(Ft),Et):Ft===62&&w===4?(i.consume(Ft),Ht):Ft===63&&w===3?(i.consume(Ft),xt):Ft===93&&w===5?(i.consume(Ft),Ct):xa(Ft)&&(w===6||w===7)?(i.exit("htmlFlowData"),i.check(wje,Le,nt)(Ft)):Ft===null||xa(Ft)?(i.exit("htmlFlowData"),nt(Ft)):(i.consume(Ft),Tt)}function nt(Ft){return i.check(vje,It,Le)(Ft)}function It(Ft){return i.enter("lineEnding"),i.consume(Ft),i.exit("lineEnding"),Ot}function Ot(Ft){return Ft===null||xa(Ft)?nt(Ft):(i.enter("htmlFlowData"),Tt(Ft))}function Bt(Ft){return Ft===45?(i.consume(Ft),xt):Tt(Ft)}function Et(Ft){return Ft===47?(i.consume(Ft),b="",Z):Tt(Ft)}function Z(Ft){if(Ft===62){const gn=b.toLowerCase();return QNt.includes(gn)?(i.consume(Ft),Ht):Tt(Ft)}return y3(Ft)&&b.length<8?(i.consume(Ft),b+=String.fromCharCode(Ft),Z):Tt(Ft)}function Ct(Ft){return Ft===93?(i.consume(Ft),xt):Tt(Ft)}function xt(Ft){return Ft===62?(i.consume(Ft),Ht):Ft===45&&w===2?(i.consume(Ft),xt):Tt(Ft)}function Ht(Ft){return Ft===null||xa(Ft)?(i.exit("htmlFlowData"),Le(Ft)):(i.consume(Ft),Ht)}function Le(Ft){return i.exit("htmlFlow"),a(Ft)}}function xje(i,a,f){const p=this;return w;function w(b){return xa(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),m):f(b)}function m(b){return p.parser.lazy[p.now().line]?f(b):a(b)}}function kje(i,a,f){return p;function p(w){return i.enter("lineEnding"),i.consume(w),i.exit("lineEnding"),i.attempt(yY,a,f)}}const Eje={name:"htmlText",tokenize:Tje};function Tje(i,a,f){const p=this;let w,m,b;return E;function E(xt){return i.enter("htmlText"),i.enter("htmlTextData"),i.consume(xt),_}function _(xt){return xt===33?(i.consume(xt),A):xt===47?(i.consume(xt),yt):xt===63?(i.consume(xt),bt):y3(xt)?(i.consume(xt),vt):f(xt)}function A(xt){return xt===45?(i.consume(xt),I):xt===91?(i.consume(xt),m=0,z):y3(xt)?(i.consume(xt),at):f(xt)}function I(xt){return xt===45?(i.consume(xt),R):f(xt)}function B(xt){return xt===null?f(xt):xt===45?(i.consume(xt),N):xa(xt)?(b=B,Et(xt)):(i.consume(xt),B)}function N(xt){return xt===45?(i.consume(xt),R):B(xt)}function R(xt){return xt===62?Bt(xt):xt===45?N(xt):B(xt)}function z(xt){const Ht="CDATA[";return xt===Ht.charCodeAt(m++)?(i.consume(xt),m===Ht.length?W:z):f(xt)}function W(xt){return xt===null?f(xt):xt===93?(i.consume(xt),et):xa(xt)?(b=W,Et(xt)):(i.consume(xt),W)}function et(xt){return xt===93?(i.consume(xt),st):W(xt)}function st(xt){return xt===62?Bt(xt):xt===93?(i.consume(xt),st):W(xt)}function at(xt){return xt===null||xt===62?Bt(xt):xa(xt)?(b=at,Et(xt)):(i.consume(xt),at)}function bt(xt){return xt===null?f(xt):xt===63?(i.consume(xt),mt):xa(xt)?(b=bt,Et(xt)):(i.consume(xt),bt)}function mt(xt){return xt===62?Bt(xt):bt(xt)}function yt(xt){return y3(xt)?(i.consume(xt),ft):f(xt)}function ft(xt){return xt===45||lm(xt)?(i.consume(xt),ft):ut(xt)}function ut(xt){return xa(xt)?(b=ut,Et(xt)):Wc(xt)?(i.consume(xt),ut):Bt(xt)}function vt(xt){return xt===45||lm(xt)?(i.consume(xt),vt):xt===47||xt===62||pp(xt)?X(xt):f(xt)}function X(xt){return xt===47?(i.consume(xt),Bt):xt===58||xt===95||y3(xt)?(i.consume(xt),pt):xa(xt)?(b=X,Et(xt)):Wc(xt)?(i.consume(xt),X):Bt(xt)}function pt(xt){return xt===45||xt===46||xt===58||xt===95||lm(xt)?(i.consume(xt),pt):U(xt)}function U(xt){return xt===61?(i.consume(xt),Tt):xa(xt)?(b=U,Et(xt)):Wc(xt)?(i.consume(xt),U):X(xt)}function Tt(xt){return xt===null||xt===60||xt===61||xt===62||xt===96?f(xt):xt===34||xt===39?(i.consume(xt),w=xt,nt):xa(xt)?(b=Tt,Et(xt)):Wc(xt)?(i.consume(xt),Tt):(i.consume(xt),It)}function nt(xt){return xt===w?(i.consume(xt),w=void 0,Ot):xt===null?f(xt):xa(xt)?(b=nt,Et(xt)):(i.consume(xt),nt)}function It(xt){return xt===null||xt===34||xt===39||xt===60||xt===61||xt===96?f(xt):xt===47||xt===62||pp(xt)?X(xt):(i.consume(xt),It)}function Ot(xt){return xt===47||xt===62||pp(xt)?X(xt):f(xt)}function Bt(xt){return xt===62?(i.consume(xt),i.exit("htmlTextData"),i.exit("htmlText"),a):f(xt)}function Et(xt){return i.exit("htmlTextData"),i.enter("lineEnding"),i.consume(xt),i.exit("lineEnding"),Z}function Z(xt){return Wc(xt)?il(i,Ct,"linePrefix",p.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(xt):Ct(xt)}function Ct(xt){return i.enter("htmlTextData"),b(xt)}}const M0t={name:"labelEnd",tokenize:Mje,resolveTo:Lje,resolveAll:Aje},Cje={tokenize:Dje},_je={tokenize:Ije},Sje={tokenize:Oje};function Aje(i){let a=-1;for(;++a=3&&(A===null||xa(A))?(i.exit("thematicBreak"),a(A)):f(A)}function _(A){return A===w?(i.consume(A),p++,_):(i.exit("thematicBreakSequence"),Wc(A)?il(i,E,"whitespace")(A):E(A))}}const bp={name:"list",tokenize:qje,continuation:{tokenize:Hje},exit:Gje},$je={tokenize:Uje,partial:!0},zje={tokenize:Vje,partial:!0};function qje(i,a,f){const p=this,w=p.events[p.events.length-1];let m=w&&w[1].type==="linePrefix"?w[2].sliceSerialize(w[1],!0).length:0,b=0;return E;function E(R){const z=p.containerState.type||(R===42||R===43||R===45?"listUnordered":"listOrdered");if(z==="listUnordered"?!p.containerState.marker||R===p.containerState.marker:C0t(R)){if(p.containerState.type||(p.containerState.type=z,i.enter(z,{_container:!0})),z==="listUnordered")return i.enter("listItemPrefix"),R===42||R===45?i.check(xY,f,A)(R):A(R);if(!p.interrupt||R===49)return i.enter("listItemPrefix"),i.enter("listItemValue"),_(R)}return f(R)}function _(R){return C0t(R)&&++b<10?(i.consume(R),_):(!p.interrupt||b<2)&&(p.containerState.marker?R===p.containerState.marker:R===41||R===46)?(i.exit("listItemValue"),A(R)):f(R)}function A(R){return i.enter("listItemMarker"),i.consume(R),i.exit("listItemMarker"),p.containerState.marker=p.containerState.marker||R,i.check(yY,p.interrupt?f:I,i.attempt($je,N,B))}function I(R){return p.containerState.initialBlankLine=!0,m++,N(R)}function B(R){return Wc(R)?(i.enter("listItemPrefixWhitespace"),i.consume(R),i.exit("listItemPrefixWhitespace"),N):f(R)}function N(R){return p.containerState.size=m+p.sliceSerialize(i.exit("listItemPrefix"),!0).length,a(R)}}function Hje(i,a,f){const p=this;return p.containerState._closeFlow=void 0,i.check(yY,w,m);function w(E){return p.containerState.furtherBlankLines=p.containerState.furtherBlankLines||p.containerState.initialBlankLine,il(i,a,"listItemIndent",p.containerState.size+1)(E)}function m(E){return p.containerState.furtherBlankLines||!Wc(E)?(p.containerState.furtherBlankLines=void 0,p.containerState.initialBlankLine=void 0,b(E)):(p.containerState.furtherBlankLines=void 0,p.containerState.initialBlankLine=void 0,i.attempt(zje,a,b)(E))}function b(E){return p.containerState._closeFlow=!0,p.interrupt=void 0,il(i,i.attempt(bp,a,f),"linePrefix",p.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E)}}function Vje(i,a,f){const p=this;return il(i,w,"listItemIndent",p.containerState.size+1);function w(m){const b=p.events[p.events.length-1];return b&&b[1].type==="listItemIndent"&&b[2].sliceSerialize(b[1],!0).length===p.containerState.size?a(m):f(m)}}function Gje(i){i.exit(this.containerState.type)}function Uje(i,a,f){const p=this;return il(i,w,"listItemPrefixWhitespace",p.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function w(m){const b=p.events[p.events.length-1];return!Wc(m)&&b&&b[1].type==="listItemPrefixWhitespace"?a(m):f(m)}}const ZNt={name:"setextUnderline",tokenize:Yje,resolveTo:Wje};function Wje(i,a){let f=i.length,p,w,m;for(;f--;)if(i[f][0]==="enter"){if(i[f][1].type==="content"){p=f;break}i[f][1].type==="paragraph"&&(w=f)}else i[f][1].type==="content"&&i.splice(f,1),!m&&i[f][1].type==="definition"&&(m=f);const b={type:"setextHeading",start:Object.assign({},i[w][1].start),end:Object.assign({},i[i.length-1][1].end)};return i[w][1].type="setextHeadingText",m?(i.splice(w,0,["enter",b,a]),i.splice(m+1,0,["exit",i[p][1],a]),i[p][1].end=Object.assign({},i[m][1].end)):i[p][1]=b,i.push(["exit",b,a]),i}function Yje(i,a,f){const p=this;let w;return m;function m(A){let I=p.events.length,B;for(;I--;)if(p.events[I][1].type!=="lineEnding"&&p.events[I][1].type!=="linePrefix"&&p.events[I][1].type!=="content"){B=p.events[I][1].type==="paragraph";break}return!p.parser.lazy[p.now().line]&&(p.interrupt||B)?(i.enter("setextHeadingLine"),w=A,b(A)):f(A)}function b(A){return i.enter("setextHeadingLineSequence"),E(A)}function E(A){return A===w?(i.consume(A),E):(i.exit("setextHeadingLineSequence"),Wc(A)?il(i,_,"lineSuffix")(A):_(A))}function _(A){return A===null||xa(A)?(i.exit("setextHeadingLine"),a(A)):f(A)}}const Kje={tokenize:Xje};function Xje(i){const a=this,f=i.attempt(yY,p,i.attempt(this.parser.constructs.flowInitial,w,il(i,i.attempt(this.parser.constructs.flow,w,i.attempt(eje,w)),"linePrefix")));return f;function p(m){if(m===null){i.consume(m);return}return i.enter("lineEndingBlank"),i.consume(m),i.exit("lineEndingBlank"),a.currentConstruct=void 0,f}function w(m){if(m===null){i.consume(m);return}return i.enter("lineEnding"),i.consume(m),i.exit("lineEnding"),a.currentConstruct=void 0,f}}const Qje={resolveAll:tBt()},Zje=JNt("string"),Jje=JNt("text");function JNt(i){return{tokenize:a,resolveAll:tBt(i==="text"?t$e:void 0)};function a(f){const p=this,w=this.parser.constructs[i],m=f.attempt(w,b,E);return b;function b(I){return A(I)?m(I):E(I)}function E(I){if(I===null){f.consume(I);return}return f.enter("data"),f.consume(I),_}function _(I){return A(I)?(f.exit("data"),m(I)):(f.consume(I),_)}function A(I){if(I===null)return!0;const B=w[I];let N=-1;if(B)for(;++N-1){const E=b[0];typeof E=="string"?b[0]=E.slice(p):b.shift()}m>0&&b.push(i[w].slice(0,m))}return b}function r$e(i,a){let f=-1;const p=[];let w;for(;++f13&&f<32||f>126&&f<160||f>55295&&f<57344||f>64975&&f<65008||(f&65535)===65535||(f&65535)===65534||f>1114111?"�":String.fromCharCode(f)}const c$e=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function u$e(i){return i.replace(c$e,l$e)}function l$e(i,a,f){if(a)return a;if(f.charCodeAt(0)===35){const w=f.charCodeAt(1),m=w===120||w===88;return nBt(f.slice(m?2:1),m?16:10)}return A0t(f)||i}function kY(i){return!i||typeof i!="object"?"":"position"in i||"type"in i?rBt(i.position):"start"in i||"end"in i?rBt(i):"line"in i||"column"in i?I0t(i):""}function I0t(i){return iBt(i&&i.line)+":"+iBt(i&&i.column)}function rBt(i){return I0t(i&&i.start)+"-"+I0t(i&&i.end)}function iBt(i){return i&&typeof i=="number"?i:1}const sBt={}.hasOwnProperty,aBt=function(i,a,f){return typeof a!="string"&&(f=a,a=void 0),h$e(f)(o$e(s$e(f).document().write(a$e()(i,a,!0))))};function h$e(i){const a={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:E(Ks),autolinkProtocol:U,autolinkEmail:U,atxHeading:E(Me),blockQuote:E(zt),characterEscape:U,characterReference:U,codeFenced:E(re),codeFencedFenceInfo:_,codeFencedFenceMeta:_,codeIndented:E(re,_),codeText:E(se,_),codeTextData:U,data:U,codeFlowValue:U,definition:E(Pe),definitionDestinationString:_,definitionLabelString:_,definitionTitleString:_,emphasis:E(te),hardBreakEscape:E(de),hardBreakTrailing:E(de),htmlFlow:E(on,_),htmlFlowData:U,htmlText:E(on,_),htmlTextData:U,image:E(ni),label:_,link:E(Ks),listItem:E(fo),listItemValue:z,listOrdered:E(ws,R),listUnordered:E(ws),paragraph:E(Xi),reference:Se,referenceString:_,resourceDestinationString:_,resourceTitleString:_,setextHeading:E(Me),strong:E(Er),thematicBreak:E(di)},exit:{atxHeading:I(),atxHeadingSequence:ut,autolink:I(),autolinkEmail:ke,autolinkProtocol:ce,blockQuote:I(),characterEscapeValue:Tt,characterReferenceMarkerHexadecimal:Ve,characterReferenceMarkerNumeric:Ve,characterReferenceValue:Ye,codeFenced:I(at),codeFencedFence:st,codeFencedFenceInfo:W,codeFencedFenceMeta:et,codeFlowValue:Tt,codeIndented:I(bt),codeText:I(Et),codeTextData:Tt,data:Tt,definition:I(),definitionDestinationString:ft,definitionLabelString:mt,definitionTitleString:yt,emphasis:I(),hardBreakEscape:I(It),hardBreakTrailing:I(It),htmlFlow:I(Ot),htmlFlowData:Tt,htmlText:I(Bt),htmlTextData:Tt,image:I(Ct),label:Ht,labelText:xt,lineEnding:nt,link:I(Z),listItem:I(),listOrdered:I(),listUnordered:I(),paragraph:I(),referenceString:me,resourceDestinationString:Le,resourceTitleString:Ft,resource:gn,setextHeading:I(pt),setextHeadingLineSequence:X,setextHeadingText:vt,strong:I(),thematicBreak:I()}};oBt(a,(i||{}).mdastExtensions||[]);const f={};return p;function p(Ee){let Kn={type:"root",children:[]};const He={stack:[Kn],tokenStack:[],config:a,enter:A,exit:B,buffer:_,resume:N,setData:m,getData:b},Ti=[];let pn=-1;for(;++pn0){const Es=He.tokenStack[He.tokenStack.length-1];(Es[1]||cBt).call(He,void 0,Es[0])}for(Kn.position={start:wk(Ee.length>0?Ee[0][1].start:{line:1,column:1,offset:0}),end:wk(Ee.length>0?Ee[Ee.length-2][1].end:{line:1,column:1,offset:0})},pn=-1;++pn{I!==0&&(w++,p.push([])),A.split(" ").forEach(B=>{B&&p[w].push({content:B,type:E})})}):(b.type==="strong"||b.type==="emphasis")&&b.children.forEach(_=>{m(_,b.type)})}return f.forEach(b=>{b.type==="paragraph"&&b.children.forEach(E=>{m(E)})}),p}function p$e(i){const{children:a}=aBt(i);function f(p){return p.type==="text"?p.value.replace(/\n/g,"
"):p.type==="strong"?`${p.children.map(f).join("")}`:p.type==="emphasis"?`${p.children.map(f).join("")}`:p.type==="paragraph"?`

${p.children.map(f).join("")}

`:`Unsupported markdown: ${p.type}`}return a.map(f).join("")}function b$e(i){return Intl.Segmenter?[...new Intl.Segmenter().segment(i)].map(a=>a.segment):[...i]}function w$e(i,a){const f=b$e(a.content);return uBt(i,[],f,a.type)}function uBt(i,a,f,p){if(f.length===0)return[{content:a.join(""),type:p},{content:"",type:p}];const[w,...m]=f,b=[...a,w];return i([{content:b.join(""),type:p}])?uBt(i,b,m,p):(a.length===0&&w&&(a.push(w),f.shift()),[{content:a.join(""),type:p},{content:f.join(""),type:p}])}function v$e(i,a){if(i.some(({content:f})=>f.includes(` -`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return O0t(i,a)}function O0t(i,a,f=[],p=[]){if(i.length===0)return p.length>0&&f.push(p),f.length>0?f:[];let w="";i[0].content===" "&&(w=" ",i.shift());const m=i.shift()??{content:" ",type:"normal"},b=[...p];if(w!==""&&b.push({content:w,type:"normal"}),b.push(m),a(b))return O0t(i,a,f,b);if(p.length>0)f.push(p),i.unshift(m);else if(m.content){const[E,_]=w$e(a,m);f.push([E]),_.content&&i.unshift(_)}return O0t(i,a,f)}function m$e(i,a){a&&i.attr("style",a)}function y$e(i,a,f,p,w=!1){const m=i.append("foreignObject"),b=m.append("xhtml:div"),E=a.label,_=a.isNode?"nodeLabel":"edgeLabel";b.html(` - "+E+""),m$e(b,a.labelStyle),b.style("display","table-cell"),b.style("white-space","nowrap"),b.style("max-width",f+"px"),b.attr("xmlns","http://www.w3.org/1999/xhtml"),w&&b.attr("class","labelBkg");let A=b.node().getBoundingClientRect();return A.width===f&&(b.style("display","table"),b.style("white-space","break-spaces"),b.style("width",f+"px"),A=b.node().getBoundingClientRect()),m.style("width",A.width),m.style("height",A.height),m.node()}function P0t(i,a,f){return i.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",a*f-.1+"em").attr("dy",f+"em")}function x$e(i,a,f){const p=i.append("text"),w=P0t(p,1,a);F0t(w,f);const m=w.node().getComputedTextLength();return p.remove(),m}function k$e(i,a,f){var b;const p=i.append("text"),w=P0t(p,1,a);F0t(w,[{content:f,type:"normal"}]);const m=(b=w.node())==null?void 0:b.getBoundingClientRect();return m&&p.remove(),m}function E$e(i,a,f,p=!1){const m=a.append("g"),b=m.insert("rect").attr("class","background"),E=m.append("text").attr("y","-10.1");let _=0;for(const A of f){const I=N=>x$e(m,1.1,N)<=i,B=I(A)?[A]:v$e(A,I);for(const N of B){const R=P0t(E,_,1.1);F0t(R,N),_++}}if(p){const A=E.node().getBBox(),I=2;return b.attr("x",-I).attr("y",-I).attr("width",A.width+2*I).attr("height",A.height+2*I),m.node()}else return E.node()}function F0t(i,a){i.text(""),a.forEach((f,p)=>{const w=i.append("tspan").attr("font-style",f.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",f.type==="strong"?"bold":"normal");p===0?w.text(f.content):w.text(" "+f.content)})}const EY=(i,a="",{style:f="",isTitle:p=!1,classes:w="",useHtmlLabels:m=!0,isNode:b=!0,width:E=200,addSvgBackground:_=!1}={})=>{if(Ut.info("createText",a,f,p,w,m,b,_),m){const A=p$e(a),I={isNode:b,label:uF(A).replace(/fa[blrs]?:fa-[\w-]+/g,N=>``),labelStyle:f.replace("fill:","color:")};return y$e(i,I,E,w,_)}else{const A=g$e(a);return E$e(E,i,A,_)}},Nd=async(i,a,f,p)=>{let w;const m=a.useHtmlLabels||o1(Oe().flowchart.htmlLabels);f?w=f:w="node default";const b=i.insert("g").attr("class",w).attr("id",a.domId||a.id),E=b.insert("g").attr("class","label").attr("style",a.labelStyle);let _;a.labelText===void 0?_="":_=typeof a.labelText=="string"?a.labelText:a.labelText[0];const A=E.node();let I;a.labelType==="markdown"?I=EY(E,Q1(uF(_),Oe()),{useHtmlLabels:m,width:a.width||Oe().flowchart.wrappingWidth,classes:"markdown-node-label"}):I=A.appendChild(gp(Q1(uF(_),Oe()),a.labelStyle,!1,p));let B=I.getBBox();const N=a.padding/2;if(o1(Oe().flowchart.htmlLabels)){const R=I.children[0],z=yr(I),W=R.getElementsByTagName("img");if(W){const et=_.replace(/]*>/g,"").trim()==="";await Promise.all([...W].map(st=>new Promise(at=>{function bt(){if(st.style.display="flex",st.style.flexDirection="column",et){const mt=Oe().fontSize?Oe().fontSize:window.getComputedStyle(document.body).fontSize,yt=5;st.style.width=parseInt(mt,10)*yt+"px"}else st.style.width="100%";at(st)}setTimeout(()=>{st.complete&&bt()}),st.addEventListener("error",bt),st.addEventListener("load",bt)})))}B=R.getBoundingClientRect(),z.attr("width",B.width),z.attr("height",B.height)}return m?E.attr("transform","translate("+-B.width/2+", "+-B.height/2+")"):E.attr("transform","translate(0, "+-B.height/2+")"),a.centerLabel&&E.attr("transform","translate("+-B.width/2+", "+-B.height/2+")"),E.insert("rect",":first-child"),{shapeSvg:b,bbox:B,halfPadding:N,label:E}},tf=(i,a)=>{const f=a.node().getBBox();i.width=f.width,i.height=f.height};function F5(i,a,f,p){return i.insert("polygon",":first-child").attr("points",p.map(function(w){return w.x+","+w.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-a/2+","+f/2+")")}let Ho={},hm={},lBt={};const T$e=()=>{hm={},lBt={},Ho={}},TY=(i,a)=>(Ut.trace("In isDecendant",a," ",i," = ",hm[a].includes(i)),!!hm[a].includes(i)),C$e=(i,a)=>(Ut.info("Decendants of ",a," is ",hm[a]),Ut.info("Edge is ",i),i.v===a||i.w===a?!1:hm[a]?hm[a].includes(i.v)||TY(i.v,a)||TY(i.w,a)||hm[a].includes(i.w):(Ut.debug("Tilt, ",a,",not in decendants"),!1)),hBt=(i,a,f,p)=>{Ut.warn("Copying children of ",i,"root",p,"data",a.node(i),p);const w=a.children(i)||[];i!==p&&w.push(i),Ut.warn("Copying (nodes) clusterId",i,"nodes",w),w.forEach(m=>{if(a.children(m).length>0)hBt(m,a,f,p);else{const b=a.node(m);Ut.info("cp ",m," to ",p," with parent ",i),f.setNode(m,b),p!==a.parent(m)&&(Ut.warn("Setting parent",m,a.parent(m)),f.setParent(m,a.parent(m))),i!==p&&m!==i?(Ut.debug("Setting parent",m,i),f.setParent(m,i)):(Ut.info("In copy ",i,"root",p,"data",a.node(i),p),Ut.debug("Not Setting parent for node=",m,"cluster!==rootId",i!==p,"node!==clusterId",m!==i));const E=a.edges(m);Ut.debug("Copying Edges",E),E.forEach(_=>{Ut.info("Edge",_);const A=a.edge(_.v,_.w,_.name);Ut.info("Edge data",A,p);try{C$e(_,p)?(Ut.info("Copying as ",_.v,_.w,A,_.name),f.setEdge(_.v,_.w,A,_.name),Ut.info("newGraph edges ",f.edges(),f.edge(f.edges()[0]))):Ut.info("Skipping copy of edge ",_.v,"-->",_.w," rootId: ",p," clusterId:",i)}catch(I){Ut.error(I)}})}Ut.debug("Removing node",m),a.removeNode(m)})},fBt=(i,a)=>{const f=a.children(i);let p=[...f];for(const w of f)lBt[w]=i,p=[...p,...fBt(w,a)];return p},CF=(i,a)=>{Ut.trace("Searching",i);const f=a.children(i);if(Ut.trace("Searching children of id ",i,f),f.length<1)return Ut.trace("This is a valid node",i),i;for(const p of f){const w=CF(p,a);if(w)return Ut.trace("Found replacement for",i," => ",w),w}},CY=i=>!Ho[i]||!Ho[i].externalConnections?i:Ho[i]?Ho[i].id:i,_$e=(i,a)=>{if(!i||a>10){Ut.debug("Opting out, no graph ");return}else Ut.debug("Opting in, graph ");i.nodes().forEach(function(f){i.children(f).length>0&&(Ut.warn("Cluster identified",f," Replacement id in edges: ",CF(f,i)),hm[f]=fBt(f,i),Ho[f]={id:CF(f,i),clusterData:i.node(f)})}),i.nodes().forEach(function(f){const p=i.children(f),w=i.edges();p.length>0?(Ut.debug("Cluster identified",f,hm),w.forEach(m=>{if(m.v!==f&&m.w!==f){const b=TY(m.v,f),E=TY(m.w,f);b^E&&(Ut.warn("Edge: ",m," leaves cluster ",f),Ut.warn("Decendants of XXX ",f,": ",hm[f]),Ho[f].externalConnections=!0)}})):Ut.debug("Not a cluster ",f,hm)}),i.edges().forEach(function(f){const p=i.edge(f);Ut.warn("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(f)),Ut.warn("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(i.edge(f)));let w=f.v,m=f.w;if(Ut.warn("Fix XXX",Ho,"ids:",f.v,f.w,"Translating: ",Ho[f.v]," --- ",Ho[f.w]),Ho[f.v]&&Ho[f.w]&&Ho[f.v]===Ho[f.w]){Ut.warn("Fixing and trixing link to self - removing XXX",f.v,f.w,f.name),Ut.warn("Fixing and trixing - removing XXX",f.v,f.w,f.name),w=CY(f.v),m=CY(f.w),i.removeEdge(f.v,f.w,f.name);const b=f.w+"---"+f.v;i.setNode(b,{domId:b,id:b,labelStyle:"",labelText:p.label,padding:0,shape:"labelRect",style:""});const E=structuredClone(p),_=structuredClone(p);E.label="",E.arrowTypeEnd="none",_.label="",E.fromCluster=f.v,_.toCluster=f.v,i.setEdge(w,b,E,f.name+"-cyclic-special"),i.setEdge(b,m,_,f.name+"-cyclic-special")}else(Ho[f.v]||Ho[f.w])&&(Ut.warn("Fixing and trixing - removing XXX",f.v,f.w,f.name),w=CY(f.v),m=CY(f.w),i.removeEdge(f.v,f.w,f.name),w!==f.v&&(p.fromCluster=f.v),m!==f.w&&(p.toCluster=f.w),Ut.warn("Fix Replacing with XXX",w,m,f.name),i.setEdge(w,m,p,f.name))}),Ut.warn("Adjusted Graph",P5(i)),dBt(i,0),Ut.trace(Ho)},dBt=(i,a)=>{if(Ut.warn("extractor - ",a,P5(i),i.children("D")),a>10){Ut.error("Bailing out");return}let f=i.nodes(),p=!1;for(const w of f){const m=i.children(w);p=p||m.length>0}if(!p){Ut.debug("Done, no node has children",i.nodes());return}Ut.debug("Nodes = ",f,a);for(const w of f)if(Ut.debug("Extracting node",w,Ho,Ho[w]&&!Ho[w].externalConnections,!i.parent(w),i.node(w),i.children("D")," Depth ",a),!Ho[w])Ut.debug("Not a cluster",w,a);else if(!Ho[w].externalConnections&&i.children(w)&&i.children(w).length>0){Ut.warn("Cluster without external connections, without a parent and with children",w,a);let b=i.graph().rankdir==="TB"?"LR":"TB";Ho[w]&&Ho[w].clusterData&&Ho[w].clusterData.dir&&(b=Ho[w].clusterData.dir,Ut.warn("Fixing dir",Ho[w].clusterData.dir,b));const E=new c1({multigraph:!0,compound:!0}).setGraph({rankdir:b,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Ut.warn("Old graph before copy",P5(i)),hBt(w,i,E,w),i.setNode(w,{clusterNode:!0,id:w,clusterData:Ho[w].clusterData,labelText:Ho[w].labelText,graph:E}),Ut.warn("New graph after copy node: (",w,")",P5(E)),Ut.debug("Old graph after copy",P5(i))}else Ut.warn("Cluster ** ",w," **not meeting the criteria !externalConnections:",!Ho[w].externalConnections," no parent: ",!i.parent(w)," children ",i.children(w)&&i.children(w).length>0,i.children("D"),a),Ut.debug(Ho);f=i.nodes(),Ut.warn("New list of nodes",f);for(const w of f){const m=i.node(w);Ut.warn(" Now next level",w,m),m.clusterNode&&dBt(m.graph,a+1)}},gBt=(i,a)=>{if(a.length===0)return[];let f=Object.assign(a);return a.forEach(p=>{const w=i.children(p),m=gBt(i,w);f=[...f,...m]}),f},S$e=i=>gBt(i,i.children());function A$e(i,a){return i.intersect(a)}function pBt(i,a,f,p){var w=i.x,m=i.y,b=w-p.x,E=m-p.y,_=Math.sqrt(a*a*E*E+f*f*b*b),A=Math.abs(a*f*b/_);p.x0}function D$e(i,a,f){var p=i.x,w=i.y,m=[],b=Number.POSITIVE_INFINITY,E=Number.POSITIVE_INFINITY;typeof a.forEach=="function"?a.forEach(function(z){b=Math.min(b,z.x),E=Math.min(E,z.y)}):(b=Math.min(b,a.x),E=Math.min(E,a.y));for(var _=p-i.width/2-b,A=w-i.height/2-E,I=0;I1&&m.sort(function(z,W){var et=z.x-f.x,st=z.y-f.y,at=Math.sqrt(et*et+st*st),bt=W.x-f.x,mt=W.y-f.y,yt=Math.sqrt(bt*bt+mt*mt);return at{var f=i.x,p=i.y,w=a.x-f,m=a.y-p,b=i.width/2,E=i.height/2,_,A;return Math.abs(m)*b>Math.abs(w)*E?(m<0&&(E=-E),_=m===0?0:E*w/m,A=E):(w<0&&(b=-b),_=b,A=w===0?0:b*m/w),{x:f+_,y:p+A}},kh={node:A$e,circle:L$e,ellipse:pBt,polygon:D$e,rect:_F},I$e=async(i,a)=>{a.useHtmlLabels||Oe().flowchart.htmlLabels||(a.centerLabel=!0);const{shapeSvg:p,bbox:w,halfPadding:m}=await Nd(i,a,"node "+a.classes,!0);Ut.info("Classes = ",a.classes);const b=p.insert("rect",":first-child");return b.attr("rx",a.rx).attr("ry",a.ry).attr("x",-w.width/2-m).attr("y",-w.height/2-m).attr("width",w.width+a.padding).attr("height",w.height+a.padding),tf(a,b),a.intersect=function(E){return kh.rect(a,E)},p},wBt=i=>i?" "+i:"",jb=(i,a)=>`${a||"node default"}${wBt(i.classes)} ${wBt(i.class)}`,vBt=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=w+m,E=[{x:b/2,y:0},{x:b,y:-b/2},{x:b/2,y:-b},{x:0,y:-b/2}];Ut.info("Question main (Circle)");const _=F5(f,b,b,E);return _.attr("style",a.style),tf(a,_),a.intersect=function(A){return Ut.warn("Intersect called"),kh.polygon(a,E,A)},f},O$e=(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),p=28,w=[{x:0,y:p/2},{x:p/2,y:0},{x:0,y:-p/2},{x:-p/2,y:0}];return f.insert("polygon",":first-child").attr("points",w.map(function(b){return b.x+","+b.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),a.width=28,a.height=28,a.intersect=function(b){return kh.circle(a,14,b)},f},P$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=4,m=p.height+a.padding,b=m/w,E=p.width+2*b+a.padding,_=[{x:b,y:0},{x:E-b,y:0},{x:E,y:-m/2},{x:E-b,y:-m},{x:b,y:-m},{x:0,y:-m/2}],A=F5(f,E,m,_);return A.attr("style",a.style),tf(a,A),a.intersect=function(I){return kh.polygon(a,_,I)},f},F$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:-m/2,y:0},{x:w,y:0},{x:w,y:-m},{x:-m/2,y:-m},{x:0,y:-m/2}];return F5(f,w,m,b).attr("style",a.style),a.width=w+m,a.height=m,a.intersect=function(_){return kh.polygon(a,b,_)},f},N$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:-2*m/6,y:0},{x:w-m/6,y:0},{x:w+2*m/6,y:-m},{x:m/6,y:-m}],E=F5(f,w,m,b);return E.attr("style",a.style),tf(a,E),a.intersect=function(_){return kh.polygon(a,b,_)},f},B$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:2*m/6,y:0},{x:w+m/6,y:0},{x:w-2*m/6,y:-m},{x:-m/6,y:-m}],E=F5(f,w,m,b);return E.attr("style",a.style),tf(a,E),a.intersect=function(_){return kh.polygon(a,b,_)},f},R$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:-2*m/6,y:0},{x:w+2*m/6,y:0},{x:w-m/6,y:-m},{x:m/6,y:-m}],E=F5(f,w,m,b);return E.attr("style",a.style),tf(a,E),a.intersect=function(_){return kh.polygon(a,b,_)},f},j$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:m/6,y:0},{x:w-m/6,y:0},{x:w+2*m/6,y:-m},{x:-2*m/6,y:-m}],E=F5(f,w,m,b);return E.attr("style",a.style),tf(a,E),a.intersect=function(_){return kh.polygon(a,b,_)},f},$$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:0,y:0},{x:w+m/2,y:0},{x:w,y:-m/2},{x:w+m/2,y:-m},{x:0,y:-m}],E=F5(f,w,m,b);return E.attr("style",a.style),tf(a,E),a.intersect=function(_){return kh.polygon(a,b,_)},f},z$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=w/2,b=m/(2.5+w/50),E=p.height+b+a.padding,_="M 0,"+b+" a "+m+","+b+" 0,0,0 "+w+" 0 a "+m+","+b+" 0,0,0 "+-w+" 0 l 0,"+E+" a "+m+","+b+" 0,0,0 "+w+" 0 l 0,"+-E,A=f.attr("label-offset-y",b).insert("path",":first-child").attr("style",a.style).attr("d",_).attr("transform","translate("+-w/2+","+-(E/2+b)+")");return tf(a,A),a.intersect=function(I){const B=kh.rect(a,I),N=B.x-a.x;if(m!=0&&(Math.abs(N)a.height/2-b)){let R=b*b*(1-N*N/(m*m));R!=0&&(R=Math.sqrt(R)),R=b-R,I.y-a.y>0&&(R=-R),B.y+=R}return B},f},q$e=async(i,a)=>{const{shapeSvg:f,bbox:p,halfPadding:w}=await Nd(i,a,"node "+a.classes+" "+a.class,!0),m=f.insert("rect",":first-child"),b=p.width+a.padding,E=p.height+a.padding;if(m.attr("class","basic label-container").attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",-p.width/2-w).attr("y",-p.height/2-w).attr("width",b).attr("height",E),a.props){const _=new Set(Object.keys(a.props));a.props.borders&&(mBt(m,a.props.borders,b,E),_.delete("borders")),_.forEach(A=>{Ut.warn(`Unknown node property ${A}`)})}return tf(a,m),a.intersect=function(_){return kh.rect(a,_)},f},H$e=async(i,a)=>{const{shapeSvg:f}=await Nd(i,a,"label",!0);Ut.trace("Classes = ",a.class);const p=f.insert("rect",":first-child"),w=0,m=0;if(p.attr("width",w).attr("height",m),f.attr("class","label edgeLabel"),a.props){const b=new Set(Object.keys(a.props));a.props.borders&&(mBt(p,a.props.borders,w,m),b.delete("borders")),b.forEach(E=>{Ut.warn(`Unknown node property ${E}`)})}return tf(a,p),a.intersect=function(b){return kh.rect(a,b)},f};function mBt(i,a,f,p){const w=[],m=E=>{w.push(E,0)},b=E=>{w.push(0,E)};a.includes("t")?(Ut.debug("add top border"),m(f)):b(f),a.includes("r")?(Ut.debug("add right border"),m(p)):b(p),a.includes("b")?(Ut.debug("add bottom border"),m(f)):b(f),a.includes("l")?(Ut.debug("add left border"),m(p)):b(p),i.attr("stroke-dasharray",w.join(" "))}const V$e=(i,a)=>{let f;a.classes?f="node "+a.classes:f="node default";const p=i.insert("g").attr("class",f).attr("id",a.domId||a.id),w=p.insert("rect",":first-child"),m=p.insert("line"),b=p.insert("g").attr("class","label"),E=a.labelText.flat?a.labelText.flat():a.labelText;let _="";typeof E=="object"?_=E[0]:_=E,Ut.info("Label text abc79",_,E,typeof E=="object");const A=b.node().appendChild(gp(_,a.labelStyle,!0,!0));let I={width:0,height:0};if(o1(Oe().flowchart.htmlLabels)){const W=A.children[0],et=yr(A);I=W.getBoundingClientRect(),et.attr("width",I.width),et.attr("height",I.height)}Ut.info("Text 2",E);const B=E.slice(1,E.length);let N=A.getBBox();const R=b.node().appendChild(gp(B.join?B.join("
"):B,a.labelStyle,!0,!0));if(o1(Oe().flowchart.htmlLabels)){const W=R.children[0],et=yr(R);I=W.getBoundingClientRect(),et.attr("width",I.width),et.attr("height",I.height)}const z=a.padding/2;return yr(R).attr("transform","translate( "+(I.width>N.width?0:(N.width-I.width)/2)+", "+(N.height+z+5)+")"),yr(A).attr("transform","translate( "+(I.width{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.height+a.padding,m=p.width+w/4+a.padding,b=f.insert("rect",":first-child").attr("style",a.style).attr("rx",w/2).attr("ry",w/2).attr("x",-m/2).attr("y",-w/2).attr("width",m).attr("height",w);return tf(a,b),a.intersect=function(E){return kh.rect(a,E)},f},U$e=async(i,a)=>{const{shapeSvg:f,bbox:p,halfPadding:w}=await Nd(i,a,jb(a,void 0),!0),m=f.insert("circle",":first-child");return m.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",p.width/2+w).attr("width",p.width+a.padding).attr("height",p.height+a.padding),Ut.info("Circle main"),tf(a,m),a.intersect=function(b){return Ut.info("Circle intersect",a,p.width/2+w,b),kh.circle(a,p.width/2+w,b)},f},W$e=async(i,a)=>{const{shapeSvg:f,bbox:p,halfPadding:w}=await Nd(i,a,jb(a,void 0),!0),m=5,b=f.insert("g",":first-child"),E=b.insert("circle"),_=b.insert("circle");return b.attr("class",a.class),E.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",p.width/2+w+m).attr("width",p.width+a.padding+m*2).attr("height",p.height+a.padding+m*2),_.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",p.width/2+w).attr("width",p.width+a.padding).attr("height",p.height+a.padding),Ut.info("DoubleCircle main"),tf(a,E),a.intersect=function(A){return Ut.info("DoubleCircle intersect",a,p.width/2+w+m,A),kh.circle(a,p.width/2+w+m,A)},f},Y$e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Nd(i,a,jb(a,void 0),!0),w=p.width+a.padding,m=p.height+a.padding,b=[{x:0,y:0},{x:w,y:0},{x:w,y:-m},{x:0,y:-m},{x:0,y:0},{x:-8,y:0},{x:w+8,y:0},{x:w+8,y:-m},{x:-8,y:-m},{x:-8,y:0}],E=F5(f,w,m,b);return E.attr("style",a.style),tf(a,E),a.intersect=function(_){return kh.polygon(a,b,_)},f},K$e=(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),p=f.insert("circle",":first-child");return p.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),tf(a,p),a.intersect=function(w){return kh.circle(a,7,w)},f},yBt=(i,a,f)=>{const p=i.insert("g").attr("class","node default").attr("id",a.domId||a.id);let w=70,m=10;f==="LR"&&(w=10,m=70);const b=p.append("rect").attr("x",-1*w/2).attr("y",-1*m/2).attr("width",w).attr("height",m).attr("class","fork-join");return tf(a,b),a.height=a.height+a.padding/2,a.width=a.width+a.padding/2,a.intersect=function(E){return kh.rect(a,E)},p},xBt={rhombus:vBt,question:vBt,rect:q$e,labelRect:H$e,rectWithTitle:V$e,choice:O$e,circle:U$e,doublecircle:W$e,stadium:G$e,hexagon:P$e,rect_left_inv_arrow:F$e,lean_right:N$e,lean_left:B$e,trapezoid:R$e,inv_trapezoid:j$e,rect_right_inv_arrow:$$e,cylinder:z$e,start:K$e,end:(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),p=f.insert("circle",":first-child"),w=f.insert("circle",":first-child");return w.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),p.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),tf(a,w),a.intersect=function(m){return kh.circle(a,7,m)},f},note:I$e,subroutine:Y$e,fork:yBt,join:yBt,class_box:(i,a)=>{const f=a.padding/2,p=4,w=8;let m;a.classes?m="node "+a.classes:m="node default";const b=i.insert("g").attr("class",m).attr("id",a.domId||a.id),E=b.insert("rect",":first-child"),_=b.insert("line"),A=b.insert("line");let I=0,B=p;const N=b.insert("g").attr("class","label");let R=0;const z=a.classData.annotations&&a.classData.annotations[0],W=a.classData.annotations[0]?"«"+a.classData.annotations[0]+"»":"",et=N.node().appendChild(gp(W,a.labelStyle,!0,!0));let st=et.getBBox();if(o1(Oe().flowchart.htmlLabels)){const vt=et.children[0],X=yr(et);st=vt.getBoundingClientRect(),X.attr("width",st.width),X.attr("height",st.height)}a.classData.annotations[0]&&(B+=st.height+p,I+=st.width);let at=a.classData.label;a.classData.type!==void 0&&a.classData.type!==""&&(Oe().flowchart.htmlLabels?at+="<"+a.classData.type+">":at+="<"+a.classData.type+">");const bt=N.node().appendChild(gp(at,a.labelStyle,!0,!0));yr(bt).attr("class","classTitle");let mt=bt.getBBox();if(o1(Oe().flowchart.htmlLabels)){const vt=bt.children[0],X=yr(bt);mt=vt.getBoundingClientRect(),X.attr("width",mt.width),X.attr("height",mt.height)}B+=mt.height+p,mt.width>I&&(I=mt.width);const yt=[];a.classData.members.forEach(vt=>{const X=vt.getDisplayDetails();let pt=X.displayText;Oe().flowchart.htmlLabels&&(pt=pt.replace(//g,">"));const U=N.node().appendChild(gp(pt,X.cssStyle?X.cssStyle:a.labelStyle,!0,!0));let Tt=U.getBBox();if(o1(Oe().flowchart.htmlLabels)){const nt=U.children[0],It=yr(U);Tt=nt.getBoundingClientRect(),It.attr("width",Tt.width),It.attr("height",Tt.height)}Tt.width>I&&(I=Tt.width),B+=Tt.height+p,yt.push(U)}),B+=w;const ft=[];if(a.classData.methods.forEach(vt=>{const X=vt.getDisplayDetails();let pt=X.displayText;Oe().flowchart.htmlLabels&&(pt=pt.replace(//g,">"));const U=N.node().appendChild(gp(pt,X.cssStyle?X.cssStyle:a.labelStyle,!0,!0));let Tt=U.getBBox();if(o1(Oe().flowchart.htmlLabels)){const nt=U.children[0],It=yr(U);Tt=nt.getBoundingClientRect(),It.attr("width",Tt.width),It.attr("height",Tt.height)}Tt.width>I&&(I=Tt.width),B+=Tt.height+p,ft.push(U)}),B+=w,z){let vt=(I-st.width)/2;yr(et).attr("transform","translate( "+(-1*I/2+vt)+", "+-1*B/2+")"),R=st.height+p}let ut=(I-mt.width)/2;return yr(bt).attr("transform","translate( "+(-1*I/2+ut)+", "+(-1*B/2+R)+")"),R+=mt.height+p,_.attr("class","divider").attr("x1",-I/2-f).attr("x2",I/2+f).attr("y1",-B/2-f+w+R).attr("y2",-B/2-f+w+R),R+=w,yt.forEach(vt=>{yr(vt).attr("transform","translate( "+-I/2+", "+(-1*B/2+R+w/2)+")");const X=vt==null?void 0:vt.getBBox();R+=((X==null?void 0:X.height)??0)+p}),R+=w,A.attr("class","divider").attr("x1",-I/2-f).attr("x2",I/2+f).attr("y1",-B/2-f+w+R).attr("y2",-B/2-f+w+R),R+=w,ft.forEach(vt=>{yr(vt).attr("transform","translate( "+-I/2+", "+(-1*B/2+R)+")");const X=vt==null?void 0:vt.getBBox();R+=((X==null?void 0:X.height)??0)+p}),E.attr("class","outer title-state").attr("x",-I/2-f).attr("y",-(B/2)-f).attr("width",I+a.padding).attr("height",B+a.padding),tf(a,E),a.intersect=function(vt){return kh.rect(a,vt)},b}};let cL={};const kBt=async(i,a,f)=>{let p,w;if(a.link){let m;Oe().securityLevel==="sandbox"?m="_top":a.linkTarget&&(m=a.linkTarget||"_blank"),p=i.insert("svg:a").attr("xlink:href",a.link).attr("target",m),w=await xBt[a.shape](p,a,f)}else w=await xBt[a.shape](i,a,f),p=w;return a.tooltip&&w.attr("title",a.tooltip),a.class&&w.attr("class","node default "+a.class),cL[a.id]=p,a.haveCallback&&cL[a.id].attr("class",cL[a.id].attr("class")+" clickable"),p},X$e=(i,a)=>{cL[a.id]=i},Q$e=()=>{cL={}},EBt=i=>{const a=cL[i.id];Ut.trace("Transforming node",i.diff,i,"translate("+(i.x-i.width/2-5)+", "+i.width/2+")");const f=8,p=i.diff||0;return i.clusterNode?a.attr("transform","translate("+(i.x+p-i.width/2)+", "+(i.y-i.height/2-f)+")"):a.attr("transform","translate("+i.x+", "+i.y+")"),p},Z$e={rect:(i,a)=>{Ut.info("Creating subgraph rect for ",a.id,a);const f=i.insert("g").attr("class","cluster"+(a.class?" "+a.class:"")).attr("id",a.id),p=f.insert("rect",":first-child"),w=o1(Oe().flowchart.htmlLabels),m=f.insert("g").attr("class","cluster-label"),b=a.labelType==="markdown"?EY(m,a.labelText,{style:a.labelStyle,useHtmlLabels:w}):m.node().appendChild(gp(a.labelText,a.labelStyle,void 0,!0));let E=b.getBBox();if(o1(Oe().flowchart.htmlLabels)){const N=b.children[0],R=yr(b);E=N.getBoundingClientRect(),R.attr("width",E.width),R.attr("height",E.height)}const _=0*a.padding,A=_/2,I=a.width<=E.width+_?E.width+_:a.width;a.width<=E.width+_?a.diff=(E.width-a.width)/2-a.padding/2:a.diff=-a.padding/2,Ut.trace("Data ",a,JSON.stringify(a)),p.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",a.x-I/2).attr("y",a.y-a.height/2-A).attr("width",I).attr("height",a.height+_),w?m.attr("transform","translate("+(a.x-E.width/2)+", "+(a.y-a.height/2)+")"):m.attr("transform","translate("+a.x+", "+(a.y-a.height/2)+")");const B=p.node().getBBox();return a.width=B.width,a.height=B.height,a.intersect=function(N){return _F(a,N)},f},roundedWithTitle:(i,a)=>{const f=i.insert("g").attr("class",a.classes).attr("id",a.id),p=f.insert("rect",":first-child"),w=f.insert("g").attr("class","cluster-label"),m=f.append("rect"),b=w.node().appendChild(gp(a.labelText,a.labelStyle,void 0,!0));let E=b.getBBox();if(o1(Oe().flowchart.htmlLabels)){const N=b.children[0],R=yr(b);E=N.getBoundingClientRect(),R.attr("width",E.width),R.attr("height",E.height)}E=b.getBBox();const _=0*a.padding,A=_/2,I=a.width<=E.width+a.padding?E.width+a.padding:a.width;a.width<=E.width+a.padding?a.diff=(E.width+a.padding*0-a.width)/2:a.diff=-a.padding/2,p.attr("class","outer").attr("x",a.x-I/2-A).attr("y",a.y-a.height/2-A).attr("width",I+_).attr("height",a.height+_),m.attr("class","inner").attr("x",a.x-I/2-A).attr("y",a.y-a.height/2-A+E.height-1).attr("width",I+_).attr("height",a.height+_-E.height-3),w.attr("transform","translate("+(a.x-E.width/2)+", "+(a.y-a.height/2-a.padding/3+(o1(Oe().flowchart.htmlLabels)?5:3))+")");const B=p.node().getBBox();return a.height=B.height,a.intersect=function(N){return _F(a,N)},f},noteGroup:(i,a)=>{const f=i.insert("g").attr("class","note-cluster").attr("id",a.id),p=f.insert("rect",":first-child"),w=0*a.padding,m=w/2;p.attr("rx",a.rx).attr("ry",a.ry).attr("x",a.x-a.width/2-m).attr("y",a.y-a.height/2-m).attr("width",a.width+w).attr("height",a.height+w).attr("fill","none");const b=p.node().getBBox();return a.width=b.width,a.height=b.height,a.intersect=function(E){return _F(a,E)},f},divider:(i,a)=>{const f=i.insert("g").attr("class",a.classes).attr("id",a.id),p=f.insert("rect",":first-child"),w=0*a.padding,m=w/2;p.attr("class","divider").attr("x",a.x-a.width/2-m).attr("y",a.y-a.height/2).attr("width",a.width+w).attr("height",a.height+w);const b=p.node().getBBox();return a.width=b.width,a.height=b.height,a.diff=-a.padding/2,a.intersect=function(E){return _F(a,E)},f}};let TBt={};const J$e=(i,a)=>{Ut.trace("Inserting cluster");const f=a.shape||"rect";TBt[a.id]=Z$e[f](i,a)},tze=()=>{TBt={}},vk={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function _Y(i,a){i=SY(i),a=SY(a);const[f,p]=[i.x,i.y],[w,m]=[a.x,a.y],b=w-f,E=m-p;return{angle:Math.atan(E/b),deltaX:b,deltaY:E}}const SY=i=>Array.isArray(i)?{x:i[0],y:i[1]}:i,CBt=i=>({x:function(a,f,p){let w=0;if(f===0&&Object.hasOwn(vk,i.arrowTypeStart)){const{angle:m,deltaX:b}=_Y(p[0],p[1]);w=vk[i.arrowTypeStart]*Math.cos(m)*(b>=0?1:-1)}else if(f===p.length-1&&Object.hasOwn(vk,i.arrowTypeEnd)){const{angle:m,deltaX:b}=_Y(p[p.length-1],p[p.length-2]);w=vk[i.arrowTypeEnd]*Math.cos(m)*(b>=0?1:-1)}return SY(a).x+w},y:function(a,f,p){let w=0;if(f===0&&Object.hasOwn(vk,i.arrowTypeStart)){const{angle:m,deltaY:b}=_Y(p[0],p[1]);w=vk[i.arrowTypeStart]*Math.abs(Math.sin(m))*(b>=0?1:-1)}else if(f===p.length-1&&Object.hasOwn(vk,i.arrowTypeEnd)){const{angle:m,deltaY:b}=_Y(p[p.length-1],p[p.length-2]);w=vk[i.arrowTypeEnd]*Math.abs(Math.sin(m))*(b>=0?1:-1)}return SY(a).y+w}});let AY={},Bd={};const eze=()=>{AY={},Bd={}},_Bt=(i,a)=>{const f=o1(Oe().flowchart.htmlLabels),p=a.labelType==="markdown"?EY(i,a.label,{style:a.labelStyle,useHtmlLabels:f,addSvgBackground:!0}):gp(a.label,a.labelStyle);Ut.info("abc82",a,a.labelType);const w=i.insert("g").attr("class","edgeLabel"),m=w.insert("g").attr("class","label");m.node().appendChild(p);let b=p.getBBox();if(f){const _=p.children[0],A=yr(p);b=_.getBoundingClientRect(),A.attr("width",b.width),A.attr("height",b.height)}m.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),AY[a.id]=w,a.width=b.width,a.height=b.height;let E;if(a.startLabelLeft){const _=gp(a.startLabelLeft,a.labelStyle),A=i.insert("g").attr("class","edgeTerminals"),I=A.insert("g").attr("class","inner");E=I.node().appendChild(_);const B=_.getBBox();I.attr("transform","translate("+-B.width/2+", "+-B.height/2+")"),Bd[a.id]||(Bd[a.id]={}),Bd[a.id].startLeft=A,LY(E,a.startLabelLeft)}if(a.startLabelRight){const _=gp(a.startLabelRight,a.labelStyle),A=i.insert("g").attr("class","edgeTerminals"),I=A.insert("g").attr("class","inner");E=A.node().appendChild(_),I.node().appendChild(_);const B=_.getBBox();I.attr("transform","translate("+-B.width/2+", "+-B.height/2+")"),Bd[a.id]||(Bd[a.id]={}),Bd[a.id].startRight=A,LY(E,a.startLabelRight)}if(a.endLabelLeft){const _=gp(a.endLabelLeft,a.labelStyle),A=i.insert("g").attr("class","edgeTerminals"),I=A.insert("g").attr("class","inner");E=I.node().appendChild(_);const B=_.getBBox();I.attr("transform","translate("+-B.width/2+", "+-B.height/2+")"),A.node().appendChild(_),Bd[a.id]||(Bd[a.id]={}),Bd[a.id].endLeft=A,LY(E,a.endLabelLeft)}if(a.endLabelRight){const _=gp(a.endLabelRight,a.labelStyle),A=i.insert("g").attr("class","edgeTerminals"),I=A.insert("g").attr("class","inner");E=I.node().appendChild(_);const B=_.getBBox();I.attr("transform","translate("+-B.width/2+", "+-B.height/2+")"),A.node().appendChild(_),Bd[a.id]||(Bd[a.id]={}),Bd[a.id].endRight=A,LY(E,a.endLabelRight)}return p};function LY(i,a){Oe().flowchart.htmlLabels&&i&&(i.style.width=a.length*9+"px",i.style.height="12px")}const nze=(i,a)=>{Ut.info("Moving label abc78 ",i.id,i.label,AY[i.id]);let f=a.updatedPath?a.updatedPath:a.originalPath;if(i.label){const p=AY[i.id];let w=i.x,m=i.y;if(f){const b=$a.calcLabelPosition(f);Ut.info("Moving label "+i.label+" from (",w,",",m,") to (",b.x,",",b.y,") abc78"),a.updatedPath&&(w=b.x,m=b.y)}p.attr("transform","translate("+w+", "+m+")")}if(i.startLabelLeft){const p=Bd[i.id].startLeft;let w=i.x,m=i.y;if(f){const b=$a.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_left",f);w=b.x,m=b.y}p.attr("transform","translate("+w+", "+m+")")}if(i.startLabelRight){const p=Bd[i.id].startRight;let w=i.x,m=i.y;if(f){const b=$a.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_right",f);w=b.x,m=b.y}p.attr("transform","translate("+w+", "+m+")")}if(i.endLabelLeft){const p=Bd[i.id].endLeft;let w=i.x,m=i.y;if(f){const b=$a.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_left",f);w=b.x,m=b.y}p.attr("transform","translate("+w+", "+m+")")}if(i.endLabelRight){const p=Bd[i.id].endRight;let w=i.x,m=i.y;if(f){const b=$a.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_right",f);w=b.x,m=b.y}p.attr("transform","translate("+w+", "+m+")")}},rze=(i,a)=>{const f=i.x,p=i.y,w=Math.abs(a.x-f),m=Math.abs(a.y-p),b=i.width/2,E=i.height/2;return w>=b||m>=E},ize=(i,a,f)=>{Ut.warn(`intersection calc abc89: - outsidePoint: ${JSON.stringify(a)} - insidePoint : ${JSON.stringify(f)} - node : x:${i.x} y:${i.y} w:${i.width} h:${i.height}`);const p=i.x,w=i.y,m=Math.abs(p-f.x),b=i.width/2;let E=f.xMath.abs(p-a.x)*_){let B=f.y{Ut.warn("abc88 cutPathAtIntersect",i,a);let f=[],p=i[0],w=!1;return i.forEach(m=>{if(Ut.info("abc88 checking point",m,a),!rze(a,m)&&!w){const b=ize(a,p,m);Ut.warn("abc88 inside",m,p,b),Ut.warn("abc88 intersection",b);let E=!1;f.forEach(_=>{E=E||_.x===b.x&&_.y===b.y}),f.some(_=>_.x===b.x&&_.y===b.y)?Ut.warn("abc88 no intersect",b,f):f.push(b),w=!0}else Ut.warn("abc88 outside",m,p),p=m,w||f.push(m)}),Ut.warn("abc88 returning points",f),f},sze=function(i,a,f,p,w,m,b){let E=f.points,_=!1;const A=m.node(a.v);var I=m.node(a.w);Ut.info("abc88 InsertEdge: ",f),I.intersect&&A.intersect&&(E=E.slice(1,f.points.length-1),E.unshift(A.intersect(E[0])),Ut.info("Last point",E[E.length-1],I,I.intersect(E[E.length-1])),E.push(I.intersect(E[E.length-1]))),f.toCluster&&(Ut.info("to cluster abc88",p[f.toCluster]),E=SBt(f.points,p[f.toCluster].node),_=!0),f.fromCluster&&(Ut.info("from cluster abc88",p[f.fromCluster]),E=SBt(E.reverse(),p[f.fromCluster].node).reverse(),_=!0);const B=E.filter(mt=>!Number.isNaN(mt.y));let N=HP;f.curve&&(w==="graph"||w==="flowchart")&&(N=f.curve);const{x:R,y:z}=CBt(f),W=E5().x(R).y(z).curve(N);let et;switch(f.thickness){case"normal":et="edge-thickness-normal";break;case"thick":et="edge-thickness-thick";break;case"invisible":et="edge-thickness-thick";break;default:et=""}switch(f.pattern){case"solid":et+=" edge-pattern-solid";break;case"dotted":et+=" edge-pattern-dotted";break;case"dashed":et+=" edge-pattern-dashed";break}const st=i.append("path").attr("d",W(B)).attr("id",f.id).attr("class"," "+et+(f.classes?" "+f.classes:"")).attr("style",f.style);let at="";switch((Oe().flowchart.arrowMarkerAbsolute||Oe().state.arrowMarkerAbsolute)&&(at=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,at=at.replace(/\(/g,"\\("),at=at.replace(/\)/g,"\\)")),Ut.info("arrowTypeStart",f.arrowTypeStart),Ut.info("arrowTypeEnd",f.arrowTypeEnd),f.arrowTypeStart){case"arrow_cross":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-crossStart)");break;case"arrow_point":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-pointStart)");break;case"arrow_barb":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-barbStart)");break;case"arrow_circle":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-circleStart)");break;case"aggregation":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-aggregationStart)");break;case"extension":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-extensionStart)");break;case"composition":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-compositionStart)");break;case"dependency":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-dependencyStart)");break;case"lollipop":st.attr("marker-start","url("+at+"#"+b+"_"+w+"-lollipopStart)");break}switch(f.arrowTypeEnd){case"arrow_cross":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-crossEnd)");break;case"arrow_point":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-pointEnd)");break;case"arrow_barb":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-barbEnd)");break;case"arrow_circle":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-circleEnd)");break;case"aggregation":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-aggregationEnd)");break;case"extension":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-extensionEnd)");break;case"composition":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-compositionEnd)");break;case"dependency":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-dependencyEnd)");break;case"lollipop":st.attr("marker-end","url("+at+"#"+b+"_"+w+"-lollipopEnd)");break}let bt={};return _&&(bt.updatedPath=E),bt.originalPath=f.points,bt},ABt=async(i,a,f,p,w)=>{Ut.info("Graph in recursive render: XXX",P5(a),w);const m=a.graph().rankdir;Ut.trace("Dir in recursive render - dir:",m);const b=i.insert("g").attr("class","root");a.nodes()?Ut.info("Recursive render XXX",a.nodes()):Ut.info("No nodes found for",a),a.edges().length>0&&Ut.trace("Recursive edges",a.edge(a.edges()[0]));const E=b.insert("g").attr("class","clusters"),_=b.insert("g").attr("class","edgePaths"),A=b.insert("g").attr("class","edgeLabels"),I=b.insert("g").attr("class","nodes");await Promise.all(a.nodes().map(async function(N){const R=a.node(N);if(w!==void 0){const z=JSON.parse(JSON.stringify(w.clusterData));Ut.info("Setting data for cluster XXX (",N,") ",z,w),a.setNode(w.id,z),a.parent(N)||(Ut.trace("Setting parent",N,w.id),a.setParent(N,w.id,z))}if(Ut.info("(Insert) Node XXX"+N+": "+JSON.stringify(a.node(N))),R&&R.clusterNode){Ut.info("Cluster identified",N,R.width,a.node(N));const z=await ABt(I,R.graph,f,p,a.node(N)),W=z.elem;tf(R,W),R.diff=z.diff||0,Ut.info("Node bounds (abc123)",N,R,R.width,R.x,R.y),X$e(W,R),Ut.warn("Recursive render complete ",W,R)}else a.children(N).length>0?(Ut.info("Cluster - the non recursive path XXX",N,R.id,R,a),Ut.info(CF(R.id,a)),Ho[R.id]={id:CF(R.id,a),node:R}):(Ut.info("Node - the non recursive path",N,R.id,R),await kBt(I,a.node(N),m))})),a.edges().forEach(function(N){const R=a.edge(N.v,N.w,N.name);Ut.info("Edge "+N.v+" -> "+N.w+": "+JSON.stringify(N)),Ut.info("Edge "+N.v+" -> "+N.w+": ",N," ",JSON.stringify(a.edge(N))),Ut.info("Fix",Ho,"ids:",N.v,N.w,"Translateing: ",Ho[N.v],Ho[N.w]),_Bt(A,R)}),a.edges().forEach(function(N){Ut.info("Edge "+N.v+" -> "+N.w+": "+JSON.stringify(N))}),Ut.info("#############################################"),Ut.info("### Layout ###"),Ut.info("#############################################"),Ut.info(a),aL(a),Ut.info("Graph after layout:",P5(a));let B=0;return S$e(a).forEach(function(N){const R=a.node(N);Ut.info("Position "+N+": "+JSON.stringify(a.node(N))),Ut.info("Position "+N+": ("+R.x,","+R.y,") width: ",R.width," height: ",R.height),R&&R.clusterNode?EBt(R):a.children(N).length>0?(J$e(E,R),Ho[R.id].node=R):EBt(R)}),a.edges().forEach(function(N){const R=a.edge(N);Ut.info("Edge "+N.v+" -> "+N.w+": "+JSON.stringify(R),R);const z=sze(_,N,R,Ho,f,a,p);nze(R,z)}),a.nodes().forEach(function(N){const R=a.node(N);Ut.info(N,R.type,R.diff),R.type==="group"&&(B=R.diff)}),{elem:b,diff:B}},N0t=async(i,a,f,p,w)=>{PNt(i,f,p,w),Q$e(),eze(),tze(),T$e(),Ut.warn("Graph at first:",JSON.stringify(P5(a))),_$e(a),Ut.warn("Graph after:",JSON.stringify(P5(a))),await ABt(i,a,p,w)},LBt={},aze=function(i){const a=Object.keys(i);for(const f of a)LBt[f]=i[f]},MBt=function(i,a,f,p,w,m){const b=p.select(`[id="${f}"]`);Object.keys(i).forEach(function(_){const A=i[_];let I="default";A.classes.length>0&&(I=A.classes.join(" ")),I=I+" flowchart-label";const B=im(A.styles);let N=A.text!==void 0?A.text:A.id,R;if(Ut.info("vertex",A,A.labelType),A.labelType==="markdown")Ut.info("vertex",A,A.labelType);else if(o1(Oe().flowchart.htmlLabels)){const et={label:N.replace(/fa[blrs]?:fa-[\w-]+/g,st=>``)};R=b0t(b,et).node(),R.parentNode.removeChild(R)}else{const et=w.createElementNS("http://www.w3.org/2000/svg","text");et.setAttribute("style",B.labelStyle.replace("color:","fill:"));const st=N.split(Kr.lineBreakRegex);for(const at of st){const bt=w.createElementNS("http://www.w3.org/2000/svg","tspan");bt.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),bt.setAttribute("dy","1em"),bt.setAttribute("x","1"),bt.textContent=at,et.appendChild(bt)}R=et}let z=0,W="";switch(A.type){case"round":z=5,W="rect";break;case"square":W="rect";break;case"diamond":W="question";break;case"hexagon":W="hexagon";break;case"odd":W="rect_left_inv_arrow";break;case"lean_right":W="lean_right";break;case"lean_left":W="lean_left";break;case"trapezoid":W="trapezoid";break;case"inv_trapezoid":W="inv_trapezoid";break;case"odd_right":W="rect_left_inv_arrow";break;case"circle":W="circle";break;case"ellipse":W="ellipse";break;case"stadium":W="stadium";break;case"subroutine":W="subroutine";break;case"cylinder":W="cylinder";break;case"group":W="rect";break;case"doublecircle":W="doublecircle";break;default:W="rect"}a.setNode(A.id,{labelStyle:B.labelStyle,shape:W,labelText:N,labelType:A.labelType,rx:z,ry:z,class:I,style:B.style,id:A.id,link:A.link,linkTarget:A.linkTarget,tooltip:m.db.getTooltip(A.id)||"",domId:m.db.lookUpDomId(A.id),haveCallback:A.haveCallback,width:A.type==="group"?500:void 0,dir:A.dir,type:A.type,props:A.props,padding:Oe().flowchart.padding}),Ut.info("setNode",{labelStyle:B.labelStyle,labelType:A.labelType,shape:W,labelText:N,rx:z,ry:z,class:I,style:B.style,id:A.id,domId:m.db.lookUpDomId(A.id),width:A.type==="group"?500:void 0,type:A.type,dir:A.dir,props:A.props,padding:Oe().flowchart.padding})})},DBt=function(i,a,f){Ut.info("abc78 edges = ",i);let p=0,w={},m,b;if(i.defaultStyle!==void 0){const E=im(i.defaultStyle);m=E.style,b=E.labelStyle}i.forEach(function(E){p++;const _="L-"+E.start+"-"+E.end;w[_]===void 0?(w[_]=0,Ut.info("abc78 new entry",_,w[_])):(w[_]++,Ut.info("abc78 new entry",_,w[_]));let A=_+"-"+w[_];Ut.info("abc78 new link id to be used is",_,A,w[_]);const I="LS-"+E.start,B="LE-"+E.end,N={style:"",labelStyle:""};switch(N.minlen=E.length||1,E.type==="arrow_open"?N.arrowhead="none":N.arrowhead="normal",N.arrowTypeStart="arrow_open",N.arrowTypeEnd="arrow_open",E.type){case"double_arrow_cross":N.arrowTypeStart="arrow_cross";case"arrow_cross":N.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":N.arrowTypeStart="arrow_point";case"arrow_point":N.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":N.arrowTypeStart="arrow_circle";case"arrow_circle":N.arrowTypeEnd="arrow_circle";break}let R="",z="";switch(E.stroke){case"normal":R="fill:none;",m!==void 0&&(R=m),b!==void 0&&(z=b),N.thickness="normal",N.pattern="solid";break;case"dotted":N.thickness="normal",N.pattern="dotted",N.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":N.thickness="thick",N.pattern="solid",N.style="stroke-width: 3.5px;fill:none;";break;case"invisible":N.thickness="invisible",N.pattern="solid",N.style="stroke-width: 0;fill:none;";break}if(E.style!==void 0){const W=im(E.style);R=W.style,z=W.labelStyle}N.style=N.style+=R,N.labelStyle=N.labelStyle+=z,E.interpolate!==void 0?N.curve=ew(E.interpolate,cg):i.defaultInterpolate!==void 0?N.curve=ew(i.defaultInterpolate,cg):N.curve=ew(LBt.curve,cg),E.text===void 0?E.style!==void 0&&(N.arrowheadStyle="fill: #333"):(N.arrowheadStyle="fill: #333",N.labelpos="c"),N.labelType=E.labelType,N.label=E.text.replace(Kr.lineBreakRegex,` -`),E.style===void 0&&(N.style=N.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),N.labelStyle=N.labelStyle.replace("color:","fill:"),N.id=A,N.classes="flowchart-link "+I+" "+B,a.setEdge(E.start,E.end,N,p)})},B0t={setConf:aze,addVertices:MBt,addEdges:DBt,getClasses:function(i,a){return a.db.getClasses()},draw:async function(i,a,f,p){Ut.info("Drawing flowchart");let w=p.db.getDirection();w===void 0&&(w="TD");const{securityLevel:m,flowchart:b}=Oe(),E=b.nodeSpacing||50,_=b.rankSpacing||50;let A;m==="sandbox"&&(A=yr("#i"+a));const I=yr(m==="sandbox"?A.nodes()[0].contentDocument.body:"body"),B=m==="sandbox"?A.nodes()[0].contentDocument:document,N=new c1({multigraph:!0,compound:!0}).setGraph({rankdir:w,nodesep:E,ranksep:_,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let R;const z=p.db.getSubGraphs();Ut.info("Subgraphs - ",z);for(let yt=z.length-1;yt>=0;yt--)R=z[yt],Ut.info("Subgraph - ",R),p.db.addVertex(R.id,{text:R.title,type:R.labelType},"group",void 0,R.classes,R.dir);const W=p.db.getVertices(),et=p.db.getEdges();Ut.info("Edges",et);let st=0;for(st=z.length-1;st>=0;st--){R=z[st],sMt("cluster").append("text");for(let yt=0;yt{const f=cCe,p=f(i,"r"),w=f(i,"g"),m=f(i,"b");return FA(p,w,m,a)},IBt=i=>`.label { - font-family: ${i.fontFamily}; - color: ${i.nodeTextColor||i.textColor}; - } - .cluster-label text { - fill: ${i.titleColor}; - } - .cluster-label span,p { - color: ${i.titleColor}; - } - - .label text,span,p { - fill: ${i.nodeTextColor||i.textColor}; - color: ${i.nodeTextColor||i.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; - stroke-width: 1px; - } - .flowchart-label text { - text-anchor: middle; - } - // .flowchart-label .text-outer-tspan { - // text-anchor: middle; - // } - // .flowchart-label .text-inner-tspan { - // text-anchor: start; - // } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${i.arrowheadColor}; - } - - .edgePath .path { - stroke: ${i.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${i.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${i.edgeLabelBackground}; - rect { - opacity: 0.5; - background-color: ${i.edgeLabelBackground}; - fill: ${i.edgeLabelBackground}; - } - text-align: center; - } - - /* For html labels only */ - .labelBkg { - background-color: ${oze(i.edgeLabelBackground,.5)}; - // background-color: - } - - .cluster rect { - fill: ${i.clusterBkg}; - stroke: ${i.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${i.titleColor}; - } - - .cluster span,p { - color: ${i.titleColor}; - } - /* .cluster div { - color: ${i.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${i.fontFamily}; - font-size: 12px; - background: ${i.tertiaryColor}; - border: 1px solid ${i.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor}; - } -`,cze=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Hdt,db:wT,renderer:B0t,styles:IBt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,hRe.setConf(i.flowchart),wT.clear(),wT.setGen("gen-1")}}},Symbol.toStringTag,{value:"Module"})),uze=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Hdt,db:wT,renderer:B0t,styles:IBt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,cAe({flowchart:{arrowMarkerAbsolute:i.arrowMarkerAbsolute}}),B0t.setConf(i.flowchart),wT.clear(),wT.setGen("gen-2")}}},Symbol.toStringTag,{value:"Module"}));var R0t=function(){var i=function(vt,X,pt,U){for(pt=pt||{},U=vt.length;U--;pt[vt[U]]=X);return pt},a=[6,8,10,20,22,24,26,27,28],f=[1,10],p=[1,11],w=[1,12],m=[1,13],b=[1,14],E=[1,15],_=[1,21],A=[1,22],I=[1,23],B=[1,24],N=[1,25],R=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],z=[1,34],W=[27,28,46,47],et=[41,42,43,44,45],st=[17,34],at=[1,54],bt=[1,53],mt=[17,34,36,38],yt={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(X,pt,U,Tt,nt,It,Ot){var Bt=It.length-1;switch(nt){case 1:break;case 2:this.$=[];break;case 3:It[Bt-1].push(It[Bt]),this.$=It[Bt-1];break;case 4:case 5:this.$=It[Bt];break;case 6:case 7:this.$=[];break;case 8:Tt.addEntity(It[Bt-4]),Tt.addEntity(It[Bt-2]),Tt.addRelationship(It[Bt-4],It[Bt],It[Bt-2],It[Bt-3]);break;case 9:Tt.addEntity(It[Bt-3]),Tt.addAttributes(It[Bt-3],It[Bt-1]);break;case 10:Tt.addEntity(It[Bt-2]);break;case 11:Tt.addEntity(It[Bt]);break;case 12:Tt.addEntity(It[Bt-6],It[Bt-4]),Tt.addAttributes(It[Bt-6],It[Bt-1]);break;case 13:Tt.addEntity(It[Bt-5],It[Bt-3]);break;case 14:Tt.addEntity(It[Bt-3],It[Bt-1]);break;case 15:case 16:this.$=It[Bt].trim(),Tt.setAccTitle(this.$);break;case 17:case 18:this.$=It[Bt].trim(),Tt.setAccDescription(this.$);break;case 19:case 43:this.$=It[Bt];break;case 20:case 41:case 42:this.$=It[Bt].replace(/"/g,"");break;case 21:case 29:this.$=[It[Bt]];break;case 22:It[Bt].push(It[Bt-1]),this.$=It[Bt];break;case 23:this.$={attributeType:It[Bt-1],attributeName:It[Bt]};break;case 24:this.$={attributeType:It[Bt-2],attributeName:It[Bt-1],attributeKeyTypeList:It[Bt]};break;case 25:this.$={attributeType:It[Bt-2],attributeName:It[Bt-1],attributeComment:It[Bt]};break;case 26:this.$={attributeType:It[Bt-3],attributeName:It[Bt-2],attributeKeyTypeList:It[Bt-1],attributeComment:It[Bt]};break;case 27:case 28:case 31:this.$=It[Bt];break;case 30:It[Bt-2].push(It[Bt]),this.$=It[Bt-2];break;case 32:this.$=It[Bt].replace(/"/g,"");break;case 33:this.$={cardA:It[Bt],relType:It[Bt-1],cardB:It[Bt-2]};break;case 34:this.$=Tt.Cardinality.ZERO_OR_ONE;break;case 35:this.$=Tt.Cardinality.ZERO_OR_MORE;break;case 36:this.$=Tt.Cardinality.ONE_OR_MORE;break;case 37:this.$=Tt.Cardinality.ONLY_ONE;break;case 38:this.$=Tt.Cardinality.MD_PARENT;break;case 39:this.$=Tt.Identification.NON_IDENTIFYING;break;case 40:this.$=Tt.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:f,22:p,24:w,26:m,27:b,28:E},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:16,11:9,20:f,22:p,24:w,26:m,27:b,28:E},i(a,[2,5]),i(a,[2,6]),i(a,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:_,42:A,43:I,44:B,45:N}),{21:[1,26]},{23:[1,27]},{25:[1,28]},i(a,[2,18]),i(R,[2,19]),i(R,[2,20]),i(a,[2,4]),{11:29,27:b,28:E},{16:30,17:[1,31],29:32,30:33,34:z},{11:35,27:b,28:E},{40:36,46:[1,37],47:[1,38]},i(W,[2,34]),i(W,[2,35]),i(W,[2,36]),i(W,[2,37]),i(W,[2,38]),i(a,[2,15]),i(a,[2,16]),i(a,[2,17]),{13:[1,39]},{17:[1,40]},i(a,[2,10]),{16:41,17:[2,21],29:32,30:33,34:z},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:_,42:A,43:I,44:B,45:N},i(et,[2,39]),i(et,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},i(a,[2,9]),{17:[2,22]},i(st,[2,23],{32:50,33:51,35:52,37:at,38:bt}),i([17,34,37,38],[2,28]),i(a,[2,14],{15:[1,55]}),i([27,28],[2,33]),i(a,[2,8]),i(a,[2,41]),i(a,[2,42]),i(a,[2,43]),i(st,[2,24],{33:56,36:[1,57],38:bt}),i(st,[2,25]),i(mt,[2,29]),i(st,[2,32]),i(mt,[2,31]),{16:58,17:[1,59],29:32,30:33,34:z},i(st,[2,26]),{35:60,37:at},{17:[1,61]},i(a,[2,13]),i(mt,[2,30]),i(a,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(X,pt){if(pt.recoverable)this.trace(X);else{var U=new Error(X);throw U.hash=pt,U}},parse:function(X){var pt=this,U=[0],Tt=[],nt=[null],It=[],Ot=this.table,Bt="",Et=0,Z=0,Ct=2,xt=1,Ht=It.slice.call(arguments,1),Le=Object.create(this.lexer),Ft={yy:{}};for(var gn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gn)&&(Ft.yy[gn]=this.yy[gn]);Le.setInput(X,Ft.yy),Ft.yy.lexer=Le,Ft.yy.parser=this,typeof Le.yylloc>"u"&&(Le.yylloc={});var Se=Le.yylloc;It.push(Se);var me=Le.options&&Le.options.ranges;typeof Ft.yy.parseError=="function"?this.parseError=Ft.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ve(){var on;return on=Tt.pop()||Le.lex()||xt,typeof on!="number"&&(on instanceof Array&&(Tt=on,on=Tt.pop()),on=pt.symbols_[on]||on),on}for(var Ye,ce,ke,zt,re={},se,Pe,te,Me;;){if(ce=U[U.length-1],this.defaultActions[ce]?ke=this.defaultActions[ce]:((Ye===null||typeof Ye>"u")&&(Ye=Ve()),ke=Ot[ce]&&Ot[ce][Ye]),typeof ke>"u"||!ke.length||!ke[0]){var de="";Me=[];for(se in Ot[ce])this.terminals_[se]&&se>Ct&&Me.push("'"+this.terminals_[se]+"'");Le.showPosition?de="Parse error on line "+(Et+1)+`: -`+Le.showPosition()+` -Expecting `+Me.join(", ")+", got '"+(this.terminals_[Ye]||Ye)+"'":de="Parse error on line "+(Et+1)+": Unexpected "+(Ye==xt?"end of input":"'"+(this.terminals_[Ye]||Ye)+"'"),this.parseError(de,{text:Le.match,token:this.terminals_[Ye]||Ye,line:Le.yylineno,loc:Se,expected:Me})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ce+", token: "+Ye);switch(ke[0]){case 1:U.push(Ye),nt.push(Le.yytext),It.push(Le.yylloc),U.push(ke[1]),Ye=null,Z=Le.yyleng,Bt=Le.yytext,Et=Le.yylineno,Se=Le.yylloc;break;case 2:if(Pe=this.productions_[ke[1]][1],re.$=nt[nt.length-Pe],re._$={first_line:It[It.length-(Pe||1)].first_line,last_line:It[It.length-1].last_line,first_column:It[It.length-(Pe||1)].first_column,last_column:It[It.length-1].last_column},me&&(re._$.range=[It[It.length-(Pe||1)].range[0],It[It.length-1].range[1]]),zt=this.performAction.apply(re,[Bt,Z,Et,Ft.yy,ke[1],nt,It].concat(Ht)),typeof zt<"u")return zt;Pe&&(U=U.slice(0,-1*Pe*2),nt=nt.slice(0,-1*Pe),It=It.slice(0,-1*Pe)),U.push(this.productions_[ke[1]][0]),nt.push(re.$),It.push(re._$),te=Ot[U[U.length-2]][U[U.length-1]],U.push(te);break;case 3:return!0}}return!0}},ft=function(){var vt={EOF:1,parseError:function(pt,U){if(this.yy.parser)this.yy.parser.parseError(pt,U);else throw new Error(pt)},setInput:function(X,pt){return this.yy=pt||this.yy||{},this._input=X,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var X=this._input[0];this.yytext+=X,this.yyleng++,this.offset++,this.match+=X,this.matched+=X;var pt=X.match(/(?:\r\n?|\n).*/g);return pt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),X},unput:function(X){var pt=X.length,U=X.split(/(?:\r\n?|\n)/g);this._input=X+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-pt),this.offset-=pt;var Tt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),U.length-1&&(this.yylineno-=U.length-1);var nt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:U?(U.length===Tt.length?this.yylloc.first_column:0)+Tt[Tt.length-U.length].length-U[0].length:this.yylloc.first_column-pt},this.options.ranges&&(this.yylloc.range=[nt[0],nt[0]+this.yyleng-pt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(X){this.unput(this.match.slice(X))},pastInput:function(){var X=this.matched.substr(0,this.matched.length-this.match.length);return(X.length>20?"...":"")+X.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var X=this.match;return X.length<20&&(X+=this._input.substr(0,20-X.length)),(X.substr(0,20)+(X.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var X=this.pastInput(),pt=new Array(X.length+1).join("-");return X+this.upcomingInput()+` -`+pt+"^"},test_match:function(X,pt){var U,Tt,nt;if(this.options.backtrack_lexer&&(nt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(nt.yylloc.range=this.yylloc.range.slice(0))),Tt=X[0].match(/(?:\r\n?|\n).*/g),Tt&&(this.yylineno+=Tt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Tt?Tt[Tt.length-1].length-Tt[Tt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+X[0].length},this.yytext+=X[0],this.match+=X[0],this.matches=X,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(X[0].length),this.matched+=X[0],U=this.performAction.call(this,this.yy,this,pt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),U)return U;if(this._backtrack){for(var It in nt)this[It]=nt[It];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var X,pt,U,Tt;this._more||(this.yytext="",this.match="");for(var nt=this._currentRules(),It=0;Itpt[0].length)){if(pt=U,Tt=It,this.options.backtrack_lexer){if(X=this.test_match(U,nt[It]),X!==!1)return X;if(this._backtrack){pt=!1;continue}else return!1}else if(!this.options.flex)break}return pt?(X=this.test_match(pt,nt[Tt]),X!==!1?X:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var pt=this.next();return pt||this.lex()},begin:function(pt){this.conditionStack.push(pt)},popState:function(){var pt=this.conditionStack.length-1;return pt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(pt){return pt=this.conditionStack.length-1-Math.abs(pt||0),pt>=0?this.conditionStack[pt]:"INITIAL"},pushState:function(pt){this.begin(pt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(pt,U,Tt,nt){switch(Tt){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return U.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return U.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return vt}();yt.lexer=ft;function ut(){this.yy={}}return ut.prototype=yt,yt.Parser=ut,new ut}();R0t.parser=R0t;const lze=R0t;let mk={},j0t=[];const hze={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},fze={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},OBt=function(i,a=void 0){return mk[i]===void 0?(mk[i]={attributes:[],alias:a},Ut.info("Added new entity :",i)):mk[i]&&!mk[i].alias&&a&&(mk[i].alias=a,Ut.info(`Add alias '${a}' to entity '${i}'`)),mk[i]},dze={Cardinality:hze,Identification:fze,getConfig:()=>Oe().er,addEntity:OBt,addAttributes:function(i,a){let f=OBt(i),p;for(p=a.length-1;p>=0;p--)f.attributes.push(a[p]),Ut.debug("Added attribute ",a[p].attributeName)},getEntities:()=>mk,addRelationship:function(i,a,f,p){let w={entityA:i,roleA:a,entityB:f,relSpec:p};j0t.push(w),Ut.debug("Added new relationship :",w)},getRelationships:()=>j0t,clear:function(){mk={},j0t=[],hg()},setAccTitle:E0,getAccTitle:fg,setAccDescription:dg,getAccDescription:gg,setDiagramTitle:Nb,getDiagramTitle:pg},fm={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},dm={ERMarkers:fm,insertMarkers:function(i,a){let f;i.append("defs").append("marker").attr("id",fm.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",fm.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",fm.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),i.append("defs").append("marker").attr("id",fm.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),f=i.append("defs").append("marker").attr("id",fm.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M9,0 L9,18"),f=i.append("defs").append("marker").attr("id",fm.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M21,0 L21,18"),i.append("defs").append("marker").attr("id",fm.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),i.append("defs").append("marker").attr("id",fm.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),f=i.append("defs").append("marker").attr("id",fm.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),f=i.append("defs").append("marker").attr("id",fm.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}},gze=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function pze(i){return typeof i=="string"&&gze.test(i)}const Rd=[];for(let i=0;i<256;++i)Rd.push((i+256).toString(16).slice(1));function bze(i,a=0){return(Rd[i[a+0]]+Rd[i[a+1]]+Rd[i[a+2]]+Rd[i[a+3]]+"-"+Rd[i[a+4]]+Rd[i[a+5]]+"-"+Rd[i[a+6]]+Rd[i[a+7]]+"-"+Rd[i[a+8]]+Rd[i[a+9]]+"-"+Rd[i[a+10]]+Rd[i[a+11]]+Rd[i[a+12]]+Rd[i[a+13]]+Rd[i[a+14]]+Rd[i[a+15]]).toLowerCase()}function wze(i){if(!pze(i))throw TypeError("Invalid UUID");let a;const f=new Uint8Array(16);return f[0]=(a=parseInt(i.slice(0,8),16))>>>24,f[1]=a>>>16&255,f[2]=a>>>8&255,f[3]=a&255,f[4]=(a=parseInt(i.slice(9,13),16))>>>8,f[5]=a&255,f[6]=(a=parseInt(i.slice(14,18),16))>>>8,f[7]=a&255,f[8]=(a=parseInt(i.slice(19,23),16))>>>8,f[9]=a&255,f[10]=(a=parseInt(i.slice(24,36),16))/1099511627776&255,f[11]=a/4294967296&255,f[12]=a>>>24&255,f[13]=a>>>16&255,f[14]=a>>>8&255,f[15]=a&255,f}function vze(i){i=unescape(encodeURIComponent(i));const a=[];for(let f=0;f>>32-a}function Eze(i){const a=[1518500249,1859775393,2400959708,3395469782],f=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof i=="string"){const b=unescape(encodeURIComponent(i));i=[];for(let E=0;E>>0;N=B,B=I,I=$0t(A,30)>>>0,A=_,_=W}f[0]=f[0]+_>>>0,f[1]=f[1]+A>>>0,f[2]=f[2]+I>>>0,f[3]=f[3]+B>>>0,f[4]=f[4]+N>>>0}return[f[0]>>24&255,f[0]>>16&255,f[0]>>8&255,f[0]&255,f[1]>>24&255,f[1]>>16&255,f[1]>>8&255,f[1]&255,f[2]>>24&255,f[2]>>16&255,f[2]>>8&255,f[2]&255,f[3]>>24&255,f[3]>>16&255,f[3]>>8&255,f[3]&255,f[4]>>24&255,f[4]>>16&255,f[4]>>8&255,f[4]&255]}const Tze=xze("v5",80,Eze),Cze=/[^\dA-Za-z](\W)*/g;let u1={},SF=new Map;const _ze=function(i){const a=Object.keys(i);for(const f of a)u1[f]=i[f]},Sze=(i,a,f)=>{const p=u1.entityPadding/3,w=u1.entityPadding/3,m=u1.fontSize*.85,b=a.node().getBBox(),E=[];let _=!1,A=!1,I=0,B=0,N=0,R=0,z=b.height+p*2,W=1;f.forEach(bt=>{bt.attributeKeyTypeList!==void 0&&bt.attributeKeyTypeList.length>0&&(_=!0),bt.attributeComment!==void 0&&(A=!0)}),f.forEach(bt=>{const mt=`${a.node().id}-attr-${W}`;let yt=0;const ft=YP(bt.attributeType),ut=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Oe().fontFamily).style("font-size",m+"px").text(ft),vt=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Oe().fontFamily).style("font-size",m+"px").text(bt.attributeName),X={};X.tn=ut,X.nn=vt;const pt=ut.node().getBBox(),U=vt.node().getBBox();if(I=Math.max(I,pt.width),B=Math.max(B,U.width),yt=Math.max(pt.height,U.height),_){const Tt=bt.attributeKeyTypeList!==void 0?bt.attributeKeyTypeList.join(","):"",nt=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Oe().fontFamily).style("font-size",m+"px").text(Tt);X.kn=nt;const It=nt.node().getBBox();N=Math.max(N,It.width),yt=Math.max(yt,It.height)}if(A){const Tt=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Oe().fontFamily).style("font-size",m+"px").text(bt.attributeComment||"");X.cn=Tt;const nt=Tt.node().getBBox();R=Math.max(R,nt.width),yt=Math.max(yt,nt.height)}X.height=yt,E.push(X),z+=yt+p*2,W+=1});let et=4;_&&(et+=2),A&&(et+=2);const st=I+B+N+R,at={width:Math.max(u1.minEntityWidth,Math.max(b.width+u1.entityPadding*2,st+w*et)),height:f.length>0?z:Math.max(u1.minEntityHeight,b.height+u1.entityPadding*2)};if(f.length>0){const bt=Math.max(0,(at.width-st-w*et)/(et/2));a.attr("transform","translate("+at.width/2+","+(p+b.height/2)+")");let mt=b.height+p*2,yt="attributeBoxOdd";E.forEach(ft=>{const ut=mt+p+ft.height/2;ft.tn.attr("transform","translate("+w+","+ut+")");const vt=i.insert("rect","#"+ft.tn.node().id).classed(`er ${yt}`,!0).attr("x",0).attr("y",mt).attr("width",I+w*2+bt).attr("height",ft.height+p*2),X=parseFloat(vt.attr("x"))+parseFloat(vt.attr("width"));ft.nn.attr("transform","translate("+(X+w)+","+ut+")");const pt=i.insert("rect","#"+ft.nn.node().id).classed(`er ${yt}`,!0).attr("x",X).attr("y",mt).attr("width",B+w*2+bt).attr("height",ft.height+p*2);let U=parseFloat(pt.attr("x"))+parseFloat(pt.attr("width"));if(_){ft.kn.attr("transform","translate("+(U+w)+","+ut+")");const Tt=i.insert("rect","#"+ft.kn.node().id).classed(`er ${yt}`,!0).attr("x",U).attr("y",mt).attr("width",N+w*2+bt).attr("height",ft.height+p*2);U=parseFloat(Tt.attr("x"))+parseFloat(Tt.attr("width"))}A&&(ft.cn.attr("transform","translate("+(U+w)+","+ut+")"),i.insert("rect","#"+ft.cn.node().id).classed(`er ${yt}`,"true").attr("x",U).attr("y",mt).attr("width",R+w*2+bt).attr("height",ft.height+p*2)),mt+=ft.height+p*2,yt=yt==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else at.height=Math.max(u1.minEntityHeight,z),a.attr("transform","translate("+at.width/2+","+at.height/2+")");return at},Aze=function(i,a,f){const p=Object.keys(a);let w;return p.forEach(function(m){const b=Pze(m,"entity");SF.set(m,b);const E=i.append("g").attr("id",b);w=w===void 0?b:w;const _="text-"+b,A=E.append("text").classed("er entityLabel",!0).attr("id",_).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Oe().fontFamily).style("font-size",u1.fontSize+"px").text(a[m].alias??m),{width:I,height:B}=Sze(E,A,a[m].attributes),R=E.insert("rect","#"+_).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",I).attr("height",B).node().getBBox();f.setNode(b,{width:R.width,height:R.height,shape:"rect",id:b})}),w},Lze=function(i,a){a.nodes().forEach(function(f){f!==void 0&&a.node(f)!==void 0&&i.select("#"+f).attr("transform","translate("+(a.node(f).x-a.node(f).width/2)+","+(a.node(f).y-a.node(f).height/2)+" )")})},PBt=function(i){return(i.entityA+i.roleA+i.entityB).replace(/\s/g,"")},Mze=function(i,a){return i.forEach(function(f){a.setEdge(SF.get(f.entityA),SF.get(f.entityB),{relationship:f},PBt(f))}),i};let FBt=0;const Dze=function(i,a,f,p,w){FBt++;const m=f.edge(SF.get(a.entityA),SF.get(a.entityB),PBt(a)),b=E5().x(function(z){return z.x}).y(function(z){return z.y}).curve(HP),E=i.insert("path","#"+p).classed("er relationshipLine",!0).attr("d",b(m.points)).style("stroke",u1.stroke).style("fill","none");a.relSpec.relType===w.db.Identification.NON_IDENTIFYING&&E.attr("stroke-dasharray","8,8");let _="";switch(u1.arrowMarkerAbsolute&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),a.relSpec.cardA){case w.db.Cardinality.ZERO_OR_ONE:E.attr("marker-end","url("+_+"#"+dm.ERMarkers.ZERO_OR_ONE_END+")");break;case w.db.Cardinality.ZERO_OR_MORE:E.attr("marker-end","url("+_+"#"+dm.ERMarkers.ZERO_OR_MORE_END+")");break;case w.db.Cardinality.ONE_OR_MORE:E.attr("marker-end","url("+_+"#"+dm.ERMarkers.ONE_OR_MORE_END+")");break;case w.db.Cardinality.ONLY_ONE:E.attr("marker-end","url("+_+"#"+dm.ERMarkers.ONLY_ONE_END+")");break;case w.db.Cardinality.MD_PARENT:E.attr("marker-end","url("+_+"#"+dm.ERMarkers.MD_PARENT_END+")");break}switch(a.relSpec.cardB){case w.db.Cardinality.ZERO_OR_ONE:E.attr("marker-start","url("+_+"#"+dm.ERMarkers.ZERO_OR_ONE_START+")");break;case w.db.Cardinality.ZERO_OR_MORE:E.attr("marker-start","url("+_+"#"+dm.ERMarkers.ZERO_OR_MORE_START+")");break;case w.db.Cardinality.ONE_OR_MORE:E.attr("marker-start","url("+_+"#"+dm.ERMarkers.ONE_OR_MORE_START+")");break;case w.db.Cardinality.ONLY_ONE:E.attr("marker-start","url("+_+"#"+dm.ERMarkers.ONLY_ONE_START+")");break;case w.db.Cardinality.MD_PARENT:E.attr("marker-start","url("+_+"#"+dm.ERMarkers.MD_PARENT_START+")");break}const A=E.node().getTotalLength(),I=E.node().getPointAtLength(A*.5),B="rel"+FBt,R=i.append("text").classed("er relationshipLabel",!0).attr("id",B).attr("x",I.x).attr("y",I.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Oe().fontFamily).style("font-size",u1.fontSize+"px").text(a.roleA).node().getBBox();i.insert("rect","#"+B).classed("er relationshipLabelBox",!0).attr("x",I.x-R.width/2).attr("y",I.y-R.height/2).attr("width",R.width).attr("height",R.height)},Ize=function(i,a,f,p){u1=Oe().er,Ut.info("Drawing ER diagram");const w=Oe().securityLevel;let m;w==="sandbox"&&(m=yr("#i"+a));const E=yr(w==="sandbox"?m.nodes()[0].contentDocument.body:"body").select(`[id='${a}']`);dm.insertMarkers(E,u1);let _;_=new c1({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:u1.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const A=Aze(E,p.db.getEntities(),_),I=Mze(p.db.getRelationships(),_);aL(_),Lze(E,_),I.forEach(function(W){Dze(E,W,_,A,p)});const B=u1.diagramPadding;$a.insertTitle(E,"entityTitleText",u1.titleTopMargin,p.db.getDiagramTitle());const N=E.node().getBBox(),R=N.width+B*2,z=N.height+B*2;k0(E,z,R,u1.useMaxWidth),E.attr("viewBox",`${N.x-B} ${N.y-B} ${R} ${z}`)},Oze="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function Pze(i="",a=""){const f=i.replace(Cze,"");return`${NBt(a)}${NBt(f)}${Tze(i,Oze)}`}function NBt(i=""){return i.length>0?`${i}-`:""}const Fze=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:lze,db:dze,renderer:{setConf:_ze,draw:Ize},styles:i=>` - .entityBox { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; - } - - .attributeBoxOdd { - fill: ${i.attributeBackgroundColorOdd}; - stroke: ${i.nodeBorder}; - } - - .attributeBoxEven { - fill: ${i.attributeBackgroundColorEven}; - stroke: ${i.nodeBorder}; - } - - .relationshipLabelBox { - fill: ${i.tertiaryColor}; - opacity: 0.7; - background-color: ${i.tertiaryColor}; - rect { - opacity: 0.5; - } - } - - .relationshipLine { - stroke: ${i.lineColor}; - } - - .entityTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor}; - } - #MD_PARENT_START { - fill: #f5f5f5 !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; - } - #MD_PARENT_END { - fill: #f5f5f5 !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; - } - -`}},Symbol.toStringTag,{value:"Module"}));var z0t=function(){var i=function(yt,ft,ut,vt){for(ut=ut||{},vt=yt.length;vt--;ut[yt[vt]]=ft);return ut},a=[1,3],f=[1,6],p=[1,4],w=[1,5],m=[2,5],b=[1,12],E=[5,7,13,19,21,23,24,26,28,31,36,39,46],_=[7,13,19,21,23,24,26,28,31,36,39],A=[7,12,13,19,21,23,24,26,28,31,36,39],I=[7,13,46],B=[1,42],N=[1,41],R=[7,13,29,32,34,37,46],z=[1,55],W=[1,56],et=[1,57],st=[7,13,32,34,41,46],at={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,COMMIT_TAG:34,EMPTYSTR:35,MERGE:36,COMMIT_TYPE:37,commitType:38,COMMIT:39,commit_arg:40,COMMIT_MSG:41,NORMAL:42,REVERSE:43,HIGHLIGHT:44,ID:45,";":46,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"COMMIT_TAG",35:"EMPTYSTR",36:"MERGE",37:"COMMIT_TYPE",39:"COMMIT",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",45:"ID",46:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,5],[18,5],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[40,0],[40,1],[38,1],[38,1],[38,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(ft,ut,vt,X,pt,U,Tt){var nt=U.length-1;switch(pt){case 2:return U[nt];case 3:return U[nt-1];case 4:return X.setDirection(U[nt-3]),U[nt-1];case 6:X.setOptions(U[nt-1]),this.$=U[nt];break;case 7:U[nt-1]+=U[nt],this.$=U[nt-1];break;case 9:this.$=[];break;case 10:U[nt-1].push(U[nt]),this.$=U[nt-1];break;case 11:this.$=U[nt-1];break;case 16:this.$=U[nt].trim(),X.setAccTitle(this.$);break;case 17:case 18:this.$=U[nt].trim(),X.setAccDescription(this.$);break;case 19:X.addSection(U[nt].substr(8)),this.$=U[nt].substr(8);break;case 21:X.checkout(U[nt]);break;case 22:X.branch(U[nt]);break;case 23:X.branch(U[nt-2],U[nt]);break;case 24:X.cherryPick(U[nt],"",void 0);break;case 25:X.cherryPick(U[nt-2],"",U[nt]);break;case 26:case 28:X.cherryPick(U[nt-2],"","");break;case 27:X.cherryPick(U[nt],"",U[nt-2]);break;case 29:X.merge(U[nt],"","","");break;case 30:X.merge(U[nt-2],U[nt],"","");break;case 31:X.merge(U[nt-2],"",U[nt],"");break;case 32:X.merge(U[nt-2],"","",U[nt]);break;case 33:X.merge(U[nt-4],U[nt],"",U[nt-2]);break;case 34:X.merge(U[nt-4],"",U[nt],U[nt-2]);break;case 35:X.merge(U[nt-4],"",U[nt-2],U[nt]);break;case 36:X.merge(U[nt-4],U[nt-2],U[nt],"");break;case 37:X.merge(U[nt-4],U[nt-2],"",U[nt]);break;case 38:X.merge(U[nt-4],U[nt],U[nt-2],"");break;case 39:X.merge(U[nt-6],U[nt-4],U[nt-2],U[nt]);break;case 40:X.merge(U[nt-6],U[nt],U[nt-4],U[nt-2]);break;case 41:X.merge(U[nt-6],U[nt-4],U[nt],U[nt-2]);break;case 42:X.merge(U[nt-6],U[nt-2],U[nt-4],U[nt]);break;case 43:X.merge(U[nt-6],U[nt],U[nt-2],U[nt-4]);break;case 44:X.merge(U[nt-6],U[nt-2],U[nt],U[nt-4]);break;case 45:X.commit(U[nt]);break;case 46:X.commit("","",X.commitType.NORMAL,U[nt]);break;case 47:X.commit("","",U[nt],"");break;case 48:X.commit("","",U[nt],U[nt-2]);break;case 49:X.commit("","",U[nt-2],U[nt]);break;case 50:X.commit("",U[nt],X.commitType.NORMAL,"");break;case 51:X.commit("",U[nt-2],X.commitType.NORMAL,U[nt]);break;case 52:X.commit("",U[nt],X.commitType.NORMAL,U[nt-2]);break;case 53:X.commit("",U[nt-2],U[nt],"");break;case 54:X.commit("",U[nt],U[nt-2],"");break;case 55:X.commit("",U[nt-4],U[nt-2],U[nt]);break;case 56:X.commit("",U[nt-4],U[nt],U[nt-2]);break;case 57:X.commit("",U[nt-2],U[nt-4],U[nt]);break;case 58:X.commit("",U[nt],U[nt-4],U[nt-2]);break;case 59:X.commit("",U[nt],U[nt-2],U[nt-4]);break;case 60:X.commit("",U[nt-2],U[nt],U[nt-4]);break;case 61:X.commit(U[nt],"",X.commitType.NORMAL,"");break;case 62:X.commit(U[nt],"",X.commitType.NORMAL,U[nt-2]);break;case 63:X.commit(U[nt-2],"",X.commitType.NORMAL,U[nt]);break;case 64:X.commit(U[nt-2],"",U[nt],"");break;case 65:X.commit(U[nt],"",U[nt-2],"");break;case 66:X.commit(U[nt],U[nt-2],X.commitType.NORMAL,"");break;case 67:X.commit(U[nt-2],U[nt],X.commitType.NORMAL,"");break;case 68:X.commit(U[nt-4],"",U[nt-2],U[nt]);break;case 69:X.commit(U[nt-4],"",U[nt],U[nt-2]);break;case 70:X.commit(U[nt-2],"",U[nt-4],U[nt]);break;case 71:X.commit(U[nt],"",U[nt-4],U[nt-2]);break;case 72:X.commit(U[nt],"",U[nt-2],U[nt-4]);break;case 73:X.commit(U[nt-2],"",U[nt],U[nt-4]);break;case 74:X.commit(U[nt-4],U[nt],U[nt-2],"");break;case 75:X.commit(U[nt-4],U[nt-2],U[nt],"");break;case 76:X.commit(U[nt-2],U[nt],U[nt-4],"");break;case 77:X.commit(U[nt],U[nt-2],U[nt-4],"");break;case 78:X.commit(U[nt],U[nt-4],U[nt-2],"");break;case 79:X.commit(U[nt-2],U[nt-4],U[nt],"");break;case 80:X.commit(U[nt-4],U[nt],X.commitType.NORMAL,U[nt-2]);break;case 81:X.commit(U[nt-4],U[nt-2],X.commitType.NORMAL,U[nt]);break;case 82:X.commit(U[nt-2],U[nt],X.commitType.NORMAL,U[nt-4]);break;case 83:X.commit(U[nt],U[nt-2],X.commitType.NORMAL,U[nt-4]);break;case 84:X.commit(U[nt],U[nt-4],X.commitType.NORMAL,U[nt-2]);break;case 85:X.commit(U[nt-2],U[nt-4],X.commitType.NORMAL,U[nt]);break;case 86:X.commit(U[nt-6],U[nt-4],U[nt-2],U[nt]);break;case 87:X.commit(U[nt-6],U[nt-4],U[nt],U[nt-2]);break;case 88:X.commit(U[nt-6],U[nt-2],U[nt-4],U[nt]);break;case 89:X.commit(U[nt-6],U[nt],U[nt-4],U[nt-2]);break;case 90:X.commit(U[nt-6],U[nt-2],U[nt],U[nt-4]);break;case 91:X.commit(U[nt-6],U[nt],U[nt-2],U[nt-4]);break;case 92:X.commit(U[nt-4],U[nt-6],U[nt-2],U[nt]);break;case 93:X.commit(U[nt-4],U[nt-6],U[nt],U[nt-2]);break;case 94:X.commit(U[nt-2],U[nt-6],U[nt-4],U[nt]);break;case 95:X.commit(U[nt],U[nt-6],U[nt-4],U[nt-2]);break;case 96:X.commit(U[nt-2],U[nt-6],U[nt],U[nt-4]);break;case 97:X.commit(U[nt],U[nt-6],U[nt-2],U[nt-4]);break;case 98:X.commit(U[nt],U[nt-4],U[nt-2],U[nt-6]);break;case 99:X.commit(U[nt-2],U[nt-4],U[nt],U[nt-6]);break;case 100:X.commit(U[nt],U[nt-2],U[nt-4],U[nt-6]);break;case 101:X.commit(U[nt-2],U[nt],U[nt-4],U[nt-6]);break;case 102:X.commit(U[nt-4],U[nt-2],U[nt],U[nt-6]);break;case 103:X.commit(U[nt-4],U[nt],U[nt-2],U[nt-6]);break;case 104:X.commit(U[nt-2],U[nt-4],U[nt-6],U[nt]);break;case 105:X.commit(U[nt],U[nt-4],U[nt-6],U[nt-2]);break;case 106:X.commit(U[nt-2],U[nt],U[nt-6],U[nt-4]);break;case 107:X.commit(U[nt],U[nt-2],U[nt-6],U[nt-4]);break;case 108:X.commit(U[nt-4],U[nt-2],U[nt-6],U[nt]);break;case 109:X.commit(U[nt-4],U[nt],U[nt-6],U[nt-2]);break;case 110:this.$="";break;case 111:this.$=U[nt];break;case 112:this.$=X.commitType.NORMAL;break;case 113:this.$=X.commitType.REVERSE;break;case 114:this.$=X.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:a,7:f,13:p,46:w},{1:[3]},{3:7,4:2,5:a,7:f,13:p,46:w},{6:8,7:m,8:[1,9],9:[1,10],10:11,13:b},i(E,[2,117]),i(E,[2,118]),i(E,[2,119]),{1:[2,1]},{7:[1,13]},{6:14,7:m,10:11,13:b},{8:[1,15]},i(_,[2,9],{11:16,12:[1,17]}),i(A,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:m,10:11,13:b},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],36:[1,33],39:[1,32]},i(A,[2,7]),{1:[2,3]},{7:[1,36]},i(_,[2,10]),{4:37,7:f,13:p,46:w},i(_,[2,12]),i(I,[2,13]),i(I,[2,14]),i(I,[2,15]),{20:[1,38]},{22:[1,39]},i(I,[2,18]),i(I,[2,19]),i(I,[2,20]),{27:40,33:B,45:N},i(I,[2,110],{40:43,32:[1,46],33:[1,48],34:[1,44],37:[1,45],41:[1,47]}),{27:49,33:B,45:N},{32:[1,50],34:[1,51]},{27:52,33:B,45:N},{1:[2,4]},i(_,[2,11]),i(I,[2,16]),i(I,[2,17]),i(I,[2,21]),i(R,[2,115]),i(R,[2,116]),i(I,[2,45]),{33:[1,53]},{38:54,42:z,43:W,44:et},{33:[1,58]},{33:[1,59]},i(I,[2,111]),i(I,[2,29],{32:[1,60],34:[1,62],37:[1,61]}),{33:[1,63]},{33:[1,64],35:[1,65]},i(I,[2,22],{29:[1,66]}),i(I,[2,46],{32:[1,68],37:[1,67],41:[1,69]}),i(I,[2,47],{32:[1,71],34:[1,70],41:[1,72]}),i(st,[2,112]),i(st,[2,113]),i(st,[2,114]),i(I,[2,50],{34:[1,73],37:[1,74],41:[1,75]}),i(I,[2,61],{32:[1,78],34:[1,76],37:[1,77]}),{33:[1,79]},{38:80,42:z,43:W,44:et},{33:[1,81]},i(I,[2,24],{34:[1,82]}),{32:[1,83]},{32:[1,84]},{30:[1,85]},{38:86,42:z,43:W,44:et},{33:[1,87]},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{38:93,42:z,43:W,44:et},{33:[1,94]},{33:[1,95]},{38:96,42:z,43:W,44:et},{33:[1,97]},i(I,[2,30],{34:[1,99],37:[1,98]}),i(I,[2,31],{32:[1,101],34:[1,100]}),i(I,[2,32],{32:[1,102],37:[1,103]}),{33:[1,104],35:[1,105]},{33:[1,106]},{33:[1,107]},i(I,[2,23]),i(I,[2,48],{32:[1,108],41:[1,109]}),i(I,[2,52],{37:[1,110],41:[1,111]}),i(I,[2,62],{32:[1,113],37:[1,112]}),i(I,[2,49],{32:[1,114],41:[1,115]}),i(I,[2,54],{34:[1,116],41:[1,117]}),i(I,[2,65],{32:[1,119],34:[1,118]}),i(I,[2,51],{37:[1,120],41:[1,121]}),i(I,[2,53],{34:[1,122],41:[1,123]}),i(I,[2,66],{34:[1,125],37:[1,124]}),i(I,[2,63],{32:[1,127],37:[1,126]}),i(I,[2,64],{32:[1,129],34:[1,128]}),i(I,[2,67],{34:[1,131],37:[1,130]}),{38:132,42:z,43:W,44:et},{33:[1,133]},{33:[1,134]},{33:[1,135]},{33:[1,136]},{38:137,42:z,43:W,44:et},i(I,[2,25]),i(I,[2,26]),i(I,[2,27]),i(I,[2,28]),{33:[1,138]},{33:[1,139]},{38:140,42:z,43:W,44:et},{33:[1,141]},{38:142,42:z,43:W,44:et},{33:[1,143]},{33:[1,144]},{33:[1,145]},{33:[1,146]},{33:[1,147]},{33:[1,148]},{33:[1,149]},{38:150,42:z,43:W,44:et},{33:[1,151]},{33:[1,152]},{33:[1,153]},{38:154,42:z,43:W,44:et},{33:[1,155]},{38:156,42:z,43:W,44:et},{33:[1,157]},{33:[1,158]},{33:[1,159]},{38:160,42:z,43:W,44:et},{33:[1,161]},i(I,[2,36],{34:[1,162]}),i(I,[2,37],{37:[1,163]}),i(I,[2,35],{32:[1,164]}),i(I,[2,38],{34:[1,165]}),i(I,[2,33],{37:[1,166]}),i(I,[2,34],{32:[1,167]}),i(I,[2,59],{41:[1,168]}),i(I,[2,72],{32:[1,169]}),i(I,[2,60],{41:[1,170]}),i(I,[2,83],{37:[1,171]}),i(I,[2,73],{32:[1,172]}),i(I,[2,82],{37:[1,173]}),i(I,[2,58],{41:[1,174]}),i(I,[2,71],{32:[1,175]}),i(I,[2,57],{41:[1,176]}),i(I,[2,77],{34:[1,177]}),i(I,[2,70],{32:[1,178]}),i(I,[2,76],{34:[1,179]}),i(I,[2,56],{41:[1,180]}),i(I,[2,84],{37:[1,181]}),i(I,[2,55],{41:[1,182]}),i(I,[2,78],{34:[1,183]}),i(I,[2,79],{34:[1,184]}),i(I,[2,85],{37:[1,185]}),i(I,[2,69],{32:[1,186]}),i(I,[2,80],{37:[1,187]}),i(I,[2,68],{32:[1,188]}),i(I,[2,74],{34:[1,189]}),i(I,[2,75],{34:[1,190]}),i(I,[2,81],{37:[1,191]}),{33:[1,192]},{38:193,42:z,43:W,44:et},{33:[1,194]},{33:[1,195]},{38:196,42:z,43:W,44:et},{33:[1,197]},{33:[1,198]},{33:[1,199]},{33:[1,200]},{38:201,42:z,43:W,44:et},{33:[1,202]},{38:203,42:z,43:W,44:et},{33:[1,204]},{33:[1,205]},{33:[1,206]},{33:[1,207]},{33:[1,208]},{33:[1,209]},{33:[1,210]},{38:211,42:z,43:W,44:et},{33:[1,212]},{33:[1,213]},{33:[1,214]},{38:215,42:z,43:W,44:et},{33:[1,216]},{38:217,42:z,43:W,44:et},{33:[1,218]},{33:[1,219]},{33:[1,220]},{38:221,42:z,43:W,44:et},i(I,[2,39]),i(I,[2,41]),i(I,[2,40]),i(I,[2,42]),i(I,[2,44]),i(I,[2,43]),i(I,[2,100]),i(I,[2,101]),i(I,[2,98]),i(I,[2,99]),i(I,[2,103]),i(I,[2,102]),i(I,[2,107]),i(I,[2,106]),i(I,[2,105]),i(I,[2,104]),i(I,[2,109]),i(I,[2,108]),i(I,[2,97]),i(I,[2,96]),i(I,[2,95]),i(I,[2,94]),i(I,[2,92]),i(I,[2,93]),i(I,[2,91]),i(I,[2,90]),i(I,[2,89]),i(I,[2,88]),i(I,[2,86]),i(I,[2,87])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(ft,ut){if(ut.recoverable)this.trace(ft);else{var vt=new Error(ft);throw vt.hash=ut,vt}},parse:function(ft){var ut=this,vt=[0],X=[],pt=[null],U=[],Tt=this.table,nt="",It=0,Ot=0,Bt=2,Et=1,Z=U.slice.call(arguments,1),Ct=Object.create(this.lexer),xt={yy:{}};for(var Ht in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ht)&&(xt.yy[Ht]=this.yy[Ht]);Ct.setInput(ft,xt.yy),xt.yy.lexer=Ct,xt.yy.parser=this,typeof Ct.yylloc>"u"&&(Ct.yylloc={});var Le=Ct.yylloc;U.push(Le);var Ft=Ct.options&&Ct.options.ranges;typeof xt.yy.parseError=="function"?this.parseError=xt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gn(){var te;return te=X.pop()||Ct.lex()||Et,typeof te!="number"&&(te instanceof Array&&(X=te,te=X.pop()),te=ut.symbols_[te]||te),te}for(var Se,me,Ve,Ye,ce={},ke,zt,re,se;;){if(me=vt[vt.length-1],this.defaultActions[me]?Ve=this.defaultActions[me]:((Se===null||typeof Se>"u")&&(Se=gn()),Ve=Tt[me]&&Tt[me][Se]),typeof Ve>"u"||!Ve.length||!Ve[0]){var Pe="";se=[];for(ke in Tt[me])this.terminals_[ke]&&ke>Bt&&se.push("'"+this.terminals_[ke]+"'");Ct.showPosition?Pe="Parse error on line "+(It+1)+`: -`+Ct.showPosition()+` -Expecting `+se.join(", ")+", got '"+(this.terminals_[Se]||Se)+"'":Pe="Parse error on line "+(It+1)+": Unexpected "+(Se==Et?"end of input":"'"+(this.terminals_[Se]||Se)+"'"),this.parseError(Pe,{text:Ct.match,token:this.terminals_[Se]||Se,line:Ct.yylineno,loc:Le,expected:se})}if(Ve[0]instanceof Array&&Ve.length>1)throw new Error("Parse Error: multiple actions possible at state: "+me+", token: "+Se);switch(Ve[0]){case 1:vt.push(Se),pt.push(Ct.yytext),U.push(Ct.yylloc),vt.push(Ve[1]),Se=null,Ot=Ct.yyleng,nt=Ct.yytext,It=Ct.yylineno,Le=Ct.yylloc;break;case 2:if(zt=this.productions_[Ve[1]][1],ce.$=pt[pt.length-zt],ce._$={first_line:U[U.length-(zt||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(zt||1)].first_column,last_column:U[U.length-1].last_column},Ft&&(ce._$.range=[U[U.length-(zt||1)].range[0],U[U.length-1].range[1]]),Ye=this.performAction.apply(ce,[nt,Ot,It,xt.yy,Ve[1],pt,U].concat(Z)),typeof Ye<"u")return Ye;zt&&(vt=vt.slice(0,-1*zt*2),pt=pt.slice(0,-1*zt),U=U.slice(0,-1*zt)),vt.push(this.productions_[Ve[1]][0]),pt.push(ce.$),U.push(ce._$),re=Tt[vt[vt.length-2]][vt[vt.length-1]],vt.push(re);break;case 3:return!0}}return!0}},bt=function(){var yt={EOF:1,parseError:function(ut,vt){if(this.yy.parser)this.yy.parser.parseError(ut,vt);else throw new Error(ut)},setInput:function(ft,ut){return this.yy=ut||this.yy||{},this._input=ft,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ft=this._input[0];this.yytext+=ft,this.yyleng++,this.offset++,this.match+=ft,this.matched+=ft;var ut=ft.match(/(?:\r\n?|\n).*/g);return ut?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ft},unput:function(ft){var ut=ft.length,vt=ft.split(/(?:\r\n?|\n)/g);this._input=ft+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ut),this.offset-=ut;var X=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),vt.length-1&&(this.yylineno-=vt.length-1);var pt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:vt?(vt.length===X.length?this.yylloc.first_column:0)+X[X.length-vt.length].length-vt[0].length:this.yylloc.first_column-ut},this.options.ranges&&(this.yylloc.range=[pt[0],pt[0]+this.yyleng-ut]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ft){this.unput(this.match.slice(ft))},pastInput:function(){var ft=this.matched.substr(0,this.matched.length-this.match.length);return(ft.length>20?"...":"")+ft.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ft=this.match;return ft.length<20&&(ft+=this._input.substr(0,20-ft.length)),(ft.substr(0,20)+(ft.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ft=this.pastInput(),ut=new Array(ft.length+1).join("-");return ft+this.upcomingInput()+` -`+ut+"^"},test_match:function(ft,ut){var vt,X,pt;if(this.options.backtrack_lexer&&(pt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(pt.yylloc.range=this.yylloc.range.slice(0))),X=ft[0].match(/(?:\r\n?|\n).*/g),X&&(this.yylineno+=X.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:X?X[X.length-1].length-X[X.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ft[0].length},this.yytext+=ft[0],this.match+=ft[0],this.matches=ft,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ft[0].length),this.matched+=ft[0],vt=this.performAction.call(this,this.yy,this,ut,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),vt)return vt;if(this._backtrack){for(var U in pt)this[U]=pt[U];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ft,ut,vt,X;this._more||(this.yytext="",this.match="");for(var pt=this._currentRules(),U=0;Uut[0].length)){if(ut=vt,X=U,this.options.backtrack_lexer){if(ft=this.test_match(vt,pt[U]),ft!==!1)return ft;if(this._backtrack){ut=!1;continue}else return!1}else if(!this.options.flex)break}return ut?(ft=this.test_match(ut,pt[X]),ft!==!1?ft:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ut=this.next();return ut||this.lex()},begin:function(ut){this.conditionStack.push(ut)},popState:function(){var ut=this.conditionStack.length-1;return ut>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ut){return ut=this.conditionStack.length-1-Math.abs(ut||0),ut>=0?this.conditionStack[ut]:"INITIAL"},pushState:function(ut){this.begin(ut)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ut,vt,X,pt){switch(X){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 39;case 12:return 32;case 13:return 37;case 14:return 41;case 15:return 42;case 16:return 43;case 17:return 44;case 18:return 34;case 19:return 28;case 20:return 29;case 21:return 36;case 22:return 31;case 23:return 26;case 24:return 9;case 25:return 9;case 26:return 8;case 27:return"CARET";case 28:this.begin("options");break;case 29:this.popState();break;case 30:return 12;case 31:return 35;case 32:this.begin("string");break;case 33:this.popState();break;case 34:return 33;case 35:return 30;case 36:return 45;case 37:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[29,30],inclusive:!1},string:{rules:[33,34],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,31,32,35,36,37,38],inclusive:!0}}};return yt}();at.lexer=bt;function mt(){this.yy={}}return mt.prototype=at,at.Parser=mt,new mt}();z0t.parser=z0t;const Nze=z0t;let MY=Oe().gitGraph.mainBranchName,Bze=Oe().gitGraph.mainBranchOrder,l1={},vg=null,AF={};AF[MY]={name:MY,order:Bze};let Nf={};Nf[MY]=vg;let J1=MY,BBt="LR",ET=0;function q0t(){return GIt({length:7})}function Rze(i,a){const f=Object.create(null);return i.reduce((p,w)=>{const m=a(w);return f[m]||(f[m]=!0,p.push(w)),p},[])}const jze=function(i){BBt=i};let RBt={};const $ze=function(i){Ut.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{RBt=JSON.parse(i)}catch(a){Ut.error("error while parsing gitGraph options",a.message)}},zze=function(){return RBt},qze=function(i,a,f,p){Ut.debug("Entering commit:",i,a,f,p),a=Kr.sanitizeText(a,Oe()),i=Kr.sanitizeText(i,Oe()),p=Kr.sanitizeText(p,Oe());const w={id:a||ET+"-"+q0t(),message:i,seq:ET++,type:f||LF.NORMAL,tag:p||"",parents:vg==null?[]:[vg.id],branch:J1};vg=w,l1[w.id]=w,Nf[J1]=w.id,Ut.debug("in pushCommit "+w.id)},Hze=function(i,a){if(i=Kr.sanitizeText(i,Oe()),Nf[i]===void 0)Nf[i]=vg!=null?vg.id:null,AF[i]={name:i,order:a?parseInt(a,10):null},jBt(i),Ut.debug("in createBranch");else{let f=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+i+'")');throw f.hash={text:"branch "+i,token:"branch "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+i+'"']},f}},Vze=function(i,a,f,p){i=Kr.sanitizeText(i,Oe()),a=Kr.sanitizeText(a,Oe());const w=l1[Nf[J1]],m=l1[Nf[i]];if(J1===i){let E=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},E}else if(w===void 0||!w){let E=new Error('Incorrect usage of "merge". Current branch ('+J1+")has no commits");throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},E}else if(Nf[i]===void 0){let E=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") does not exist");throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+i]},E}else if(m===void 0||!m){let E=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") has no commits");throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},E}else if(w===m){let E=new Error('Incorrect usage of "merge". Both branches have same head');throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},E}else if(a&&l1[a]!==void 0){let E=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom Id");throw E.hash={text:"merge "+i+a+f+p,token:"merge "+i+a+f+p,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+i+" "+a+"_UNIQUE "+f+" "+p]},E}const b={id:a||ET+"-"+q0t(),message:"merged branch "+i+" into "+J1,seq:ET++,parents:[vg==null?null:vg.id,Nf[i]],branch:J1,type:LF.MERGE,customType:f,customId:!!a,tag:p||""};vg=b,l1[b.id]=b,Nf[J1]=b.id,Ut.debug(Nf),Ut.debug("in mergeBranch")},Gze=function(i,a,f){if(Ut.debug("Entering cherryPick:",i,a,f),i=Kr.sanitizeText(i,Oe()),a=Kr.sanitizeText(a,Oe()),f=Kr.sanitizeText(f,Oe()),!i||l1[i]===void 0){let m=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw m.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},m}let p=l1[i],w=p.branch;if(p.type===LF.MERGE){let m=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw m.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},m}if(!a||l1[a]===void 0){if(w===J1){let E=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw E.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},E}const m=l1[Nf[J1]];if(m===void 0||!m){let E=new Error('Incorrect usage of "cherry-pick". Current branch ('+J1+")has no commits");throw E.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},E}const b={id:ET+"-"+q0t(),message:"cherry-picked "+p+" into "+J1,seq:ET++,parents:[vg==null?null:vg.id,p.id],branch:J1,type:LF.CHERRY_PICK,tag:f??"cherry-pick:"+p.id};vg=b,l1[b.id]=b,Nf[J1]=b.id,Ut.debug(Nf),Ut.debug("in cherryPick")}},jBt=function(i){if(i=Kr.sanitizeText(i,Oe()),Nf[i]===void 0){let a=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+i+'")');throw a.hash={text:"checkout "+i,token:"checkout "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+i+'"']},a}else{J1=i;const a=Nf[J1];vg=l1[a]}};function $Bt(i,a,f){const p=i.indexOf(a);p===-1?i.push(f):i.splice(p,1,f)}function zBt(i){const a=i.reduce((w,m)=>w.seq>m.seq?w:m,i[0]);let f="";i.forEach(function(w){w===a?f+=" *":f+=" |"});const p=[f,a.id,a.seq];for(let w in Nf)Nf[w]===a.id&&p.push(w);if(Ut.debug(p.join(" ")),a.parents&&a.parents.length==2){const w=l1[a.parents[0]];$Bt(i,a,w),i.push(l1[a.parents[1]])}else{if(a.parents.length==0)return;{const w=l1[a.parents];$Bt(i,a,w)}}i=Rze(i,w=>w.id),zBt(i)}const Uze=function(){Ut.debug(l1);const i=qBt()[0];zBt([i])},Wze=function(){l1={},vg=null;let i=Oe().gitGraph.mainBranchName,a=Oe().gitGraph.mainBranchOrder;Nf={},Nf[i]=null,AF={},AF[i]={name:i,order:a},J1=i,ET=0,hg()},Yze=function(){return Object.values(AF).map((a,f)=>a.order!==null?a:{...a,order:parseFloat(`0.${f}`,10)}).sort((a,f)=>a.order-f.order).map(({name:a})=>({name:a}))},Kze=function(){return Nf},Xze=function(){return l1},qBt=function(){const i=Object.keys(l1).map(function(a){return l1[a]});return i.forEach(function(a){Ut.debug(a.id)}),i.sort((a,f)=>a.seq-f.seq),i},Qze=function(){return J1},Zze=function(){return BBt},Jze=function(){return vg},LF={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},tqe={getConfig:()=>Oe().gitGraph,setDirection:jze,setOptions:$ze,getOptions:zze,commit:qze,branch:Hze,merge:Vze,cherryPick:Gze,checkout:jBt,prettyPrint:Uze,clear:Wze,getBranchesAsObjArray:Yze,getBranches:Kze,getCommits:Xze,getCommitsArray:qBt,getCurrentBranch:Qze,getDirection:Zze,getHead:Jze,setAccTitle:E0,getAccTitle:fg,getAccDescription:gg,setAccDescription:dg,setDiagramTitle:Nb,getDiagramTitle:pg,commitType:LF};let MF={};const $b={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},TT=8;let td={},DF={},DY=[],IF=0,C0="LR";const eqe=()=>{td={},DF={},MF={},IF=0,DY=[],C0="LR"},HBt=i=>{const a=document.createElementNS("http://www.w3.org/2000/svg","text");let f=[];typeof i=="string"?f=i.split(/\\n|\n|/gi):Array.isArray(i)?f=i:f=[];for(const p of f){const w=document.createElementNS("http://www.w3.org/2000/svg","tspan");w.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),w.setAttribute("dy","1em"),w.setAttribute("x","0"),w.setAttribute("class","row"),w.textContent=p.trim(),a.appendChild(w)}return a},VBt=(i,a,f)=>{const p=Oe().gitGraph,w=i.append("g").attr("class","commit-bullets"),m=i.append("g").attr("class","commit-labels");let b=0;C0==="TB"&&(b=30),Object.keys(a).sort((A,I)=>a[A].seq-a[I].seq).forEach(A=>{const I=a[A],B=C0==="TB"?b+10:td[I.branch].pos,N=C0==="TB"?td[I.branch].pos:b+10;if(f){let R,z=I.customType!==void 0&&I.customType!==""?I.customType:I.type;switch(z){case $b.NORMAL:R="commit-normal";break;case $b.REVERSE:R="commit-reverse";break;case $b.HIGHLIGHT:R="commit-highlight";break;case $b.MERGE:R="commit-merge";break;case $b.CHERRY_PICK:R="commit-cherry-pick";break;default:R="commit-normal"}if(z===$b.HIGHLIGHT){const W=w.append("rect");W.attr("x",N-10),W.attr("y",B-10),W.attr("height",20),W.attr("width",20),W.attr("class",`commit ${I.id} commit-highlight${td[I.branch].index%TT} ${R}-outer`),w.append("rect").attr("x",N-6).attr("y",B-6).attr("height",12).attr("width",12).attr("class",`commit ${I.id} commit${td[I.branch].index%TT} ${R}-inner`)}else if(z===$b.CHERRY_PICK)w.append("circle").attr("cx",N).attr("cy",B).attr("r",10).attr("class",`commit ${I.id} ${R}`),w.append("circle").attr("cx",N-3).attr("cy",B+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${I.id} ${R}`),w.append("circle").attr("cx",N+3).attr("cy",B+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${I.id} ${R}`),w.append("line").attr("x1",N+3).attr("y1",B+1).attr("x2",N).attr("y2",B-5).attr("stroke","#fff").attr("class",`commit ${I.id} ${R}`),w.append("line").attr("x1",N-3).attr("y1",B+1).attr("x2",N).attr("y2",B-5).attr("stroke","#fff").attr("class",`commit ${I.id} ${R}`);else{const W=w.append("circle");if(W.attr("cx",N),W.attr("cy",B),W.attr("r",I.type===$b.MERGE?9:10),W.attr("class",`commit ${I.id} commit${td[I.branch].index%TT}`),z===$b.MERGE){const et=w.append("circle");et.attr("cx",N),et.attr("cy",B),et.attr("r",6),et.attr("class",`commit ${R} ${I.id} commit${td[I.branch].index%TT}`)}z===$b.REVERSE&&w.append("path").attr("d",`M ${N-5},${B-5}L${N+5},${B+5}M${N-5},${B+5}L${N+5},${B-5}`).attr("class",`commit ${R} ${I.id} commit${td[I.branch].index%TT}`)}}if(C0==="TB"?DF[I.id]={x:N,y:b+10}:DF[I.id]={x:b+10,y:B},f){if(I.type!==$b.CHERRY_PICK&&(I.customId&&I.type===$b.MERGE||I.type!==$b.MERGE)&&p.showCommitLabel){const W=m.append("g"),et=W.insert("rect").attr("class","commit-label-bkg"),st=W.append("text").attr("x",b).attr("y",B+25).attr("class","commit-label").text(I.id);let at=st.node().getBBox();if(et.attr("x",b+10-at.width/2-2).attr("y",B+13.5).attr("width",at.width+2*2).attr("height",at.height+2*2),C0==="TB"&&(et.attr("x",N-(at.width+4*4+5)).attr("y",B-12),st.attr("x",N-(at.width+4*4)).attr("y",B+at.height-12)),C0!=="TB"&&st.attr("x",b+10-at.width/2),p.rotateCommitLabel)if(C0==="TB")st.attr("transform","rotate(-45, "+N+", "+B+")"),et.attr("transform","rotate(-45, "+N+", "+B+")");else{let bt=-7.5-(at.width+10)/25*9.5,mt=10+at.width/25*8.5;W.attr("transform","translate("+bt+", "+mt+") rotate(-45, "+b+", "+B+")")}}if(I.tag){const W=m.insert("polygon"),et=m.append("circle"),st=m.append("text").attr("y",B-16).attr("class","tag-label").text(I.tag);let at=st.node().getBBox();st.attr("x",b+10-at.width/2);const bt=at.height/2,mt=B-19.2;W.attr("class","tag-label-bkg").attr("points",` - ${b-at.width/2-4/2},${mt+2} - ${b-at.width/2-4/2},${mt-2} - ${b+10-at.width/2-4},${mt-bt-2} - ${b+10+at.width/2+4},${mt-bt-2} - ${b+10+at.width/2+4},${mt+bt+2} - ${b+10-at.width/2-4},${mt+bt+2}`),et.attr("cx",b-at.width/2+4/2).attr("cy",mt).attr("r",1.5).attr("class","tag-hole"),C0==="TB"&&(W.attr("class","tag-label-bkg").attr("points",` - ${N},${b+2} - ${N},${b-2} - ${N+10},${b-bt-2} - ${N+10+at.width+4},${b-bt-2} - ${N+10+at.width+4},${b+bt+2} - ${N+10},${b+bt+2}`).attr("transform","translate(12,12) rotate(45, "+N+","+b+")"),et.attr("cx",N+4/2).attr("cy",b).attr("transform","translate(12,12) rotate(45, "+N+","+b+")"),st.attr("x",N+5).attr("y",b+3).attr("transform","translate(14,14) rotate(45, "+N+","+b+")"))}}b+=50,b>IF&&(IF=b)})},nqe=(i,a,f)=>Object.keys(f).filter(m=>f[m].branch===a.branch&&f[m].seq>i.seq&&f[m].seq0,OF=(i,a,f=0)=>{const p=i+Math.abs(i-a)/2;if(f>5)return p;if(DY.every(b=>Math.abs(b-p)>=10))return DY.push(p),p;const m=Math.abs(i-a);return OF(i,a-m/5,f+1)},rqe=(i,a,f,p)=>{const w=DF[a.id],m=DF[f.id],b=nqe(a,f,p);let E="",_="",A=0,I=0,B=td[f.branch].index,N;if(b){E="A 10 10, 0, 0, 0,",_="A 10 10, 0, 0, 1,",A=10,I=10,B=td[f.branch].index;const R=w.ym.x&&(E="A 20 20, 0, 0, 0,",_="A 20 20, 0, 0, 1,",A=20,I=20,B=td[a.branch].index,N=`M ${w.x} ${w.y} L ${w.x} ${m.y-A} ${_} ${w.x-I} ${m.y} L ${m.x} ${m.y}`),w.x===m.x&&(B=td[a.branch].index,N=`M ${w.x} ${w.y} L ${w.x+A} ${w.y} ${E} ${w.x+I} ${m.y+A} L ${m.x} ${m.y}`)):(w.ym.y&&(E="A 20 20, 0, 0, 0,",A=20,I=20,B=td[a.branch].index,N=`M ${w.x} ${w.y} L ${m.x-A} ${w.y} ${E} ${m.x} ${w.y-I} L ${m.x} ${m.y}`),w.y===m.y&&(B=td[a.branch].index,N=`M ${w.x} ${w.y} L ${w.x} ${m.y-A} ${E} ${w.x+I} ${m.y} L ${m.x} ${m.y}`));i.append("path").attr("d",N).attr("class","arrow arrow"+B%TT)},iqe=(i,a)=>{const f=i.append("g").attr("class","commit-arrows");Object.keys(a).forEach(p=>{const w=a[p];w.parents&&w.parents.length>0&&w.parents.forEach(m=>{rqe(f,a[m],w,a)})})},sqe=(i,a)=>{const f=Oe().gitGraph,p=i.append("g");a.forEach((w,m)=>{const b=m%TT,E=td[w.name].pos,_=p.append("line");_.attr("x1",0),_.attr("y1",E),_.attr("x2",IF),_.attr("y2",E),_.attr("class","branch branch"+b),C0==="TB"&&(_.attr("y1",30),_.attr("x1",E),_.attr("y2",IF),_.attr("x2",E)),DY.push(E);let A=w.name;const I=HBt(A),B=p.insert("rect"),R=p.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+b);R.node().appendChild(I);let z=I.getBBox();B.attr("class","branchLabelBkg label"+b).attr("rx",4).attr("ry",4).attr("x",-z.width-4-(f.rotateCommitLabel===!0?30:0)).attr("y",-z.height/2+8).attr("width",z.width+18).attr("height",z.height+4),R.attr("transform","translate("+(-z.width-14-(f.rotateCommitLabel===!0?30:0))+", "+(E-z.height/2-1)+")"),C0==="TB"&&(B.attr("x",E-z.width/2-10).attr("y",0),R.attr("transform","translate("+(E-z.width/2-5)+", 0)")),C0!=="TB"&&B.attr("transform","translate(-19, "+(E-z.height/2)+")")})},aqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Nze,db:tqe,renderer:{draw:function(i,a,f,p){eqe();const w=Oe(),m=w.gitGraph;Ut.debug("in gitgraph renderer",i+` -`,"id:",a,f),MF=p.db.getCommits();const b=p.db.getBranchesAsObjArray();C0=p.db.getDirection();const E=yr(`[id="${a}"]`);let _=0;b.forEach((A,I)=>{const B=HBt(A.name),N=E.append("g"),R=N.insert("g").attr("class","branchLabel"),z=R.insert("g").attr("class","label branch-label");z.node().appendChild(B);let W=B.getBBox();td[A.name]={pos:_,index:I},_+=50+(m.rotateCommitLabel?40:0)+(C0==="TB"?W.width/2:0),z.remove(),R.remove(),N.remove()}),VBt(E,MF,!1),m.showBranches&&sqe(E,b),iqe(E,MF),VBt(E,MF,!0),$a.insertTitle(E,"gitTitleText",m.titleTopMargin,p.db.getDiagramTitle()),AOt(void 0,E,m.diagramPadding,m.useMaxWidth??w.useMaxWidth)}},styles:i=>` - .commit-id, - .commit-msg, - .branch-label { - fill: lightgrey; - color: lightgrey; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - ${[0,1,2,3,4,5,6,7].map(a=>` - .branch-label${a} { fill: ${i["gitBranchLabel"+a]}; } - .commit${a} { stroke: ${i["git"+a]}; fill: ${i["git"+a]}; } - .commit-highlight${a} { stroke: ${i["gitInv"+a]}; fill: ${i["gitInv"+a]}; } - .label${a} { fill: ${i["git"+a]}; } - .arrow${a} { stroke: ${i["git"+a]}; } - `).join(` -`)} - - .branch { - stroke-width: 1; - stroke: ${i.lineColor}; - stroke-dasharray: 2; - } - .commit-label { font-size: ${i.commitLabelFontSize}; fill: ${i.commitLabelColor};} - .commit-label-bkg { font-size: ${i.commitLabelFontSize}; fill: ${i.commitLabelBackground}; opacity: 0.5; } - .tag-label { font-size: ${i.tagLabelFontSize}; fill: ${i.tagLabelColor};} - .tag-label-bkg { fill: ${i.tagLabelBackground}; stroke: ${i.tagLabelBorder}; } - .tag-hole { fill: ${i.textColor}; } - - .commit-merge { - stroke: ${i.primaryColor}; - fill: ${i.primaryColor}; - } - .commit-reverse { - stroke: ${i.primaryColor}; - fill: ${i.primaryColor}; - stroke-width: 3; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${i.primaryColor}; - fill: ${i.primaryColor}; - } - - .arrow { stroke-width: 8; stroke-linecap: round; fill: none} - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor}; - } -`}},Symbol.toStringTag,{value:"Module"}));var H0t=function(){var i=function(U,Tt,nt,It){for(nt=nt||{},It=U.length;It--;nt[U[It]]=Tt);return nt},a=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],f=[1,25],p=[1,26],w=[1,27],m=[1,28],b=[1,29],E=[1,30],_=[1,31],A=[1,9],I=[1,10],B=[1,11],N=[1,12],R=[1,13],z=[1,14],W=[1,15],et=[1,16],st=[1,18],at=[1,19],bt=[1,20],mt=[1,21],yt=[1,22],ft=[1,24],ut=[1,32],vt={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(Tt,nt,It,Ot,Bt,Et,Z){var Ct=Et.length-1;switch(Bt){case 1:return Et[Ct-1];case 2:this.$=[];break;case 3:Et[Ct-1].push(Et[Ct]),this.$=Et[Ct-1];break;case 4:case 5:this.$=Et[Ct];break;case 6:case 7:this.$=[];break;case 8:Ot.setWeekday("monday");break;case 9:Ot.setWeekday("tuesday");break;case 10:Ot.setWeekday("wednesday");break;case 11:Ot.setWeekday("thursday");break;case 12:Ot.setWeekday("friday");break;case 13:Ot.setWeekday("saturday");break;case 14:Ot.setWeekday("sunday");break;case 15:Ot.setDateFormat(Et[Ct].substr(11)),this.$=Et[Ct].substr(11);break;case 16:Ot.enableInclusiveEndDates(),this.$=Et[Ct].substr(18);break;case 17:Ot.TopAxis(),this.$=Et[Ct].substr(8);break;case 18:Ot.setAxisFormat(Et[Ct].substr(11)),this.$=Et[Ct].substr(11);break;case 19:Ot.setTickInterval(Et[Ct].substr(13)),this.$=Et[Ct].substr(13);break;case 20:Ot.setExcludes(Et[Ct].substr(9)),this.$=Et[Ct].substr(9);break;case 21:Ot.setIncludes(Et[Ct].substr(9)),this.$=Et[Ct].substr(9);break;case 22:Ot.setTodayMarker(Et[Ct].substr(12)),this.$=Et[Ct].substr(12);break;case 24:Ot.setDiagramTitle(Et[Ct].substr(6)),this.$=Et[Ct].substr(6);break;case 25:this.$=Et[Ct].trim(),Ot.setAccTitle(this.$);break;case 26:case 27:this.$=Et[Ct].trim(),Ot.setAccDescription(this.$);break;case 28:Ot.addSection(Et[Ct].substr(8)),this.$=Et[Ct].substr(8);break;case 30:Ot.addTask(Et[Ct-1],Et[Ct]),this.$="task";break;case 31:this.$=Et[Ct-1],Ot.setClickEvent(Et[Ct-1],Et[Ct],null);break;case 32:this.$=Et[Ct-2],Ot.setClickEvent(Et[Ct-2],Et[Ct-1],Et[Ct]);break;case 33:this.$=Et[Ct-2],Ot.setClickEvent(Et[Ct-2],Et[Ct-1],null),Ot.setLink(Et[Ct-2],Et[Ct]);break;case 34:this.$=Et[Ct-3],Ot.setClickEvent(Et[Ct-3],Et[Ct-2],Et[Ct-1]),Ot.setLink(Et[Ct-3],Et[Ct]);break;case 35:this.$=Et[Ct-2],Ot.setClickEvent(Et[Ct-2],Et[Ct],null),Ot.setLink(Et[Ct-2],Et[Ct-1]);break;case 36:this.$=Et[Ct-3],Ot.setClickEvent(Et[Ct-3],Et[Ct-1],Et[Ct]),Ot.setLink(Et[Ct-3],Et[Ct-2]);break;case 37:this.$=Et[Ct-1],Ot.setLink(Et[Ct-1],Et[Ct]);break;case 38:case 44:this.$=Et[Ct-1]+" "+Et[Ct];break;case 39:case 40:case 42:this.$=Et[Ct-2]+" "+Et[Ct-1]+" "+Et[Ct];break;case 41:case 43:this.$=Et[Ct-3]+" "+Et[Ct-2]+" "+Et[Ct-1]+" "+Et[Ct];break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:f,13:p,14:w,15:m,16:b,17:E,18:_,19:A,20:I,21:B,22:N,23:R,24:z,25:W,26:et,27:st,28:at,30:bt,32:mt,33:yt,34:23,35:ft,37:ut},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:33,11:17,12:f,13:p,14:w,15:m,16:b,17:E,18:_,19:A,20:I,21:B,22:N,23:R,24:z,25:W,26:et,27:st,28:at,30:bt,32:mt,33:yt,34:23,35:ft,37:ut},i(a,[2,5]),i(a,[2,6]),i(a,[2,15]),i(a,[2,16]),i(a,[2,17]),i(a,[2,18]),i(a,[2,19]),i(a,[2,20]),i(a,[2,21]),i(a,[2,22]),i(a,[2,23]),i(a,[2,24]),{29:[1,34]},{31:[1,35]},i(a,[2,27]),i(a,[2,28]),i(a,[2,29]),{36:[1,36]},i(a,[2,8]),i(a,[2,9]),i(a,[2,10]),i(a,[2,11]),i(a,[2,12]),i(a,[2,13]),i(a,[2,14]),{38:[1,37],40:[1,38]},i(a,[2,4]),i(a,[2,25]),i(a,[2,26]),i(a,[2,30]),i(a,[2,31],{39:[1,39],40:[1,40]}),i(a,[2,37],{38:[1,41]}),i(a,[2,32],{40:[1,42]}),i(a,[2,33]),i(a,[2,35],{39:[1,43]}),i(a,[2,34]),i(a,[2,36])],defaultActions:{},parseError:function(Tt,nt){if(nt.recoverable)this.trace(Tt);else{var It=new Error(Tt);throw It.hash=nt,It}},parse:function(Tt){var nt=this,It=[0],Ot=[],Bt=[null],Et=[],Z=this.table,Ct="",xt=0,Ht=0,Le=2,Ft=1,gn=Et.slice.call(arguments,1),Se=Object.create(this.lexer),me={yy:{}};for(var Ve in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ve)&&(me.yy[Ve]=this.yy[Ve]);Se.setInput(Tt,me.yy),me.yy.lexer=Se,me.yy.parser=this,typeof Se.yylloc>"u"&&(Se.yylloc={});var Ye=Se.yylloc;Et.push(Ye);var ce=Se.options&&Se.options.ranges;typeof me.yy.parseError=="function"?this.parseError=me.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ke(){var ws;return ws=Ot.pop()||Se.lex()||Ft,typeof ws!="number"&&(ws instanceof Array&&(Ot=ws,ws=Ot.pop()),ws=nt.symbols_[ws]||ws),ws}for(var zt,re,se,Pe,te={},Me,de,on,ni;;){if(re=It[It.length-1],this.defaultActions[re]?se=this.defaultActions[re]:((zt===null||typeof zt>"u")&&(zt=ke()),se=Z[re]&&Z[re][zt]),typeof se>"u"||!se.length||!se[0]){var Ks="";ni=[];for(Me in Z[re])this.terminals_[Me]&&Me>Le&&ni.push("'"+this.terminals_[Me]+"'");Se.showPosition?Ks="Parse error on line "+(xt+1)+`: -`+Se.showPosition()+` -Expecting `+ni.join(", ")+", got '"+(this.terminals_[zt]||zt)+"'":Ks="Parse error on line "+(xt+1)+": Unexpected "+(zt==Ft?"end of input":"'"+(this.terminals_[zt]||zt)+"'"),this.parseError(Ks,{text:Se.match,token:this.terminals_[zt]||zt,line:Se.yylineno,loc:Ye,expected:ni})}if(se[0]instanceof Array&&se.length>1)throw new Error("Parse Error: multiple actions possible at state: "+re+", token: "+zt);switch(se[0]){case 1:It.push(zt),Bt.push(Se.yytext),Et.push(Se.yylloc),It.push(se[1]),zt=null,Ht=Se.yyleng,Ct=Se.yytext,xt=Se.yylineno,Ye=Se.yylloc;break;case 2:if(de=this.productions_[se[1]][1],te.$=Bt[Bt.length-de],te._$={first_line:Et[Et.length-(de||1)].first_line,last_line:Et[Et.length-1].last_line,first_column:Et[Et.length-(de||1)].first_column,last_column:Et[Et.length-1].last_column},ce&&(te._$.range=[Et[Et.length-(de||1)].range[0],Et[Et.length-1].range[1]]),Pe=this.performAction.apply(te,[Ct,Ht,xt,me.yy,se[1],Bt,Et].concat(gn)),typeof Pe<"u")return Pe;de&&(It=It.slice(0,-1*de*2),Bt=Bt.slice(0,-1*de),Et=Et.slice(0,-1*de)),It.push(this.productions_[se[1]][0]),Bt.push(te.$),Et.push(te._$),on=Z[It[It.length-2]][It[It.length-1]],It.push(on);break;case 3:return!0}}return!0}},X=function(){var U={EOF:1,parseError:function(nt,It){if(this.yy.parser)this.yy.parser.parseError(nt,It);else throw new Error(nt)},setInput:function(Tt,nt){return this.yy=nt||this.yy||{},this._input=Tt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Tt=this._input[0];this.yytext+=Tt,this.yyleng++,this.offset++,this.match+=Tt,this.matched+=Tt;var nt=Tt.match(/(?:\r\n?|\n).*/g);return nt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Tt},unput:function(Tt){var nt=Tt.length,It=Tt.split(/(?:\r\n?|\n)/g);this._input=Tt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-nt),this.offset-=nt;var Ot=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),It.length-1&&(this.yylineno-=It.length-1);var Bt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:It?(It.length===Ot.length?this.yylloc.first_column:0)+Ot[Ot.length-It.length].length-It[0].length:this.yylloc.first_column-nt},this.options.ranges&&(this.yylloc.range=[Bt[0],Bt[0]+this.yyleng-nt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Tt){this.unput(this.match.slice(Tt))},pastInput:function(){var Tt=this.matched.substr(0,this.matched.length-this.match.length);return(Tt.length>20?"...":"")+Tt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Tt=this.match;return Tt.length<20&&(Tt+=this._input.substr(0,20-Tt.length)),(Tt.substr(0,20)+(Tt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Tt=this.pastInput(),nt=new Array(Tt.length+1).join("-");return Tt+this.upcomingInput()+` -`+nt+"^"},test_match:function(Tt,nt){var It,Ot,Bt;if(this.options.backtrack_lexer&&(Bt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Bt.yylloc.range=this.yylloc.range.slice(0))),Ot=Tt[0].match(/(?:\r\n?|\n).*/g),Ot&&(this.yylineno+=Ot.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ot?Ot[Ot.length-1].length-Ot[Ot.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Tt[0].length},this.yytext+=Tt[0],this.match+=Tt[0],this.matches=Tt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Tt[0].length),this.matched+=Tt[0],It=this.performAction.call(this,this.yy,this,nt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),It)return It;if(this._backtrack){for(var Et in Bt)this[Et]=Bt[Et];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Tt,nt,It,Ot;this._more||(this.yytext="",this.match="");for(var Bt=this._currentRules(),Et=0;Etnt[0].length)){if(nt=It,Ot=Et,this.options.backtrack_lexer){if(Tt=this.test_match(It,Bt[Et]),Tt!==!1)return Tt;if(this._backtrack){nt=!1;continue}else return!1}else if(!this.options.flex)break}return nt?(Tt=this.test_match(nt,Bt[Ot]),Tt!==!1?Tt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var nt=this.next();return nt||this.lex()},begin:function(nt){this.conditionStack.push(nt)},popState:function(){var nt=this.conditionStack.length-1;return nt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(nt){return nt=this.conditionStack.length-1-Math.abs(nt||0),nt>=0?this.conditionStack[nt]:"INITIAL"},pushState:function(nt){this.begin(nt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(nt,It,Ot,Bt){switch(Ot){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:break;case 15:this.begin("href");break;case 16:this.popState();break;case 17:return 40;case 18:this.begin("callbackname");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callbackargs");break;case 21:return 38;case 22:this.popState();break;case 23:return 39;case 24:this.begin("click");break;case 25:this.popState();break;case 26:return 37;case 27:return 4;case 28:return 19;case 29:return 20;case 30:return 21;case 31:return 22;case 32:return 23;case 33:return 25;case 34:return 24;case 35:return 26;case 36:return 12;case 37:return 13;case 38:return 14;case 39:return 15;case 40:return 16;case 41:return 17;case 42:return 18;case 43:return"date";case 44:return 27;case 45:return"accDescription";case 46:return 33;case 47:return 35;case 48:return 36;case 49:return":";case 50:return 6;case 51:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[22,23],inclusive:!1},callbackname:{rules:[19,20,21],inclusive:!1},href:{rules:[16,17],inclusive:!1},click:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,18,24,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return U}();vt.lexer=X;function pt(){this.yy={}}return pt.prototype=vt,vt.Parser=pt,new pt}();H0t.parser=H0t;const oqe=H0t;var GBt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){var f="day";return function(p,w,m){var b=function(A){return A.add(4-A.isoWeekday(),f)},E=w.prototype;E.isoWeekYear=function(){return b(this).year()},E.isoWeek=function(A){if(!this.$utils().u(A))return this.add(7*(A-this.isoWeek()),f);var I,B,N,R,z=b(this),W=(I=this.isoWeekYear(),B=this.$u,N=(B?m.utc:m)().year(I).startOf("year"),R=4-N.isoWeekday(),N.isoWeekday()>4&&(R+=7),N.add(R,f));return z.diff(W,"week")+1},E.isoWeekday=function(A){return this.$utils().u(A)?this.day()||7:this.day(this.day()%7?A:A-7)};var _=E.startOf;E.startOf=function(A,I){var B=this.$utils(),N=!!B.u(I)||I;return B.p(A)==="isoweek"?N?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):_.bind(this)(A,I)}}})})(GBt);var cqe=GBt.exports;const uqe=G7(cqe);var UBt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){var f={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},p=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,w=/\d\d/,m=/\d\d?/,b=/\d*[^-_:/,()\s\d]+/,E={},_=function(W){return(W=+W)+(W>68?1900:2e3)},A=function(W){return function(et){this[W]=+et}},I=[/[+-]\d\d:?(\d\d)?|Z/,function(W){(this.zone||(this.zone={})).offset=function(et){if(!et||et==="Z")return 0;var st=et.match(/([+-]|\d\d)/g),at=60*st[1]+(+st[2]||0);return at===0?0:st[0]==="+"?-at:at}(W)}],B=function(W){var et=E[W];return et&&(et.indexOf?et:et.s.concat(et.f))},N=function(W,et){var st,at=E.meridiem;if(at){for(var bt=1;bt<=24;bt+=1)if(W.indexOf(at(bt,0,et))>-1){st=bt>12;break}}else st=W===(et?"pm":"PM");return st},R={A:[b,function(W){this.afternoon=N(W,!1)}],a:[b,function(W){this.afternoon=N(W,!0)}],S:[/\d/,function(W){this.milliseconds=100*+W}],SS:[w,function(W){this.milliseconds=10*+W}],SSS:[/\d{3}/,function(W){this.milliseconds=+W}],s:[m,A("seconds")],ss:[m,A("seconds")],m:[m,A("minutes")],mm:[m,A("minutes")],H:[m,A("hours")],h:[m,A("hours")],HH:[m,A("hours")],hh:[m,A("hours")],D:[m,A("day")],DD:[w,A("day")],Do:[b,function(W){var et=E.ordinal,st=W.match(/\d+/);if(this.day=st[0],et)for(var at=1;at<=31;at+=1)et(at).replace(/\[|\]/g,"")===W&&(this.day=at)}],M:[m,A("month")],MM:[w,A("month")],MMM:[b,function(W){var et=B("months"),st=(B("monthsShort")||et.map(function(at){return at.slice(0,3)})).indexOf(W)+1;if(st<1)throw new Error;this.month=st%12||st}],MMMM:[b,function(W){var et=B("months").indexOf(W)+1;if(et<1)throw new Error;this.month=et%12||et}],Y:[/[+-]?\d+/,A("year")],YY:[w,function(W){this.year=_(W)}],YYYY:[/\d{4}/,A("year")],Z:I,ZZ:I};function z(W){var et,st;et=W,st=E&&E.formats;for(var at=(W=et.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(X,pt,U){var Tt=U&&U.toUpperCase();return pt||st[U]||f[U]||st[Tt].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(nt,It,Ot){return It||Ot.slice(1)})})).match(p),bt=at.length,mt=0;mt-1)return new Date((Et==="X"?1e3:1)*Bt);var Ct=z(Et)(Bt),xt=Ct.year,Ht=Ct.month,Le=Ct.day,Ft=Ct.hours,gn=Ct.minutes,Se=Ct.seconds,me=Ct.milliseconds,Ve=Ct.zone,Ye=new Date,ce=Le||(xt||Ht?1:Ye.getDate()),ke=xt||Ye.getFullYear(),zt=0;xt&&!Ht||(zt=Ht>0?Ht-1:Ye.getMonth());var re=Ft||0,se=gn||0,Pe=Se||0,te=me||0;return Ve?new Date(Date.UTC(ke,zt,ce,re,se,Pe,te+60*Ve.offset*1e3)):Z?new Date(Date.UTC(ke,zt,ce,re,se,Pe,te)):new Date(ke,zt,ce,re,se,Pe,te)}catch{return new Date("")}}(yt,vt,ft),this.init(),Tt&&Tt!==!0&&(this.$L=this.locale(Tt).$L),U&&yt!=this.format(vt)&&(this.$d=new Date("")),E={}}else if(vt instanceof Array)for(var nt=vt.length,It=1;It<=nt;It+=1){ut[1]=vt[It-1];var Ot=st.apply(this,ut);if(Ot.isValid()){this.$d=Ot.$d,this.$L=Ot.$L,this.init();break}It===nt&&(this.$d=new Date(""))}else bt.call(this,mt)}}})})(UBt);var lqe=UBt.exports;const hqe=G7(lqe);var WBt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){return function(f,p){var w=p.prototype,m=w.format;w.format=function(b){var E=this,_=this.$locale();if(!this.isValid())return m.bind(this)(b);var A=this.$utils(),I=(b||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(B){switch(B){case"Q":return Math.ceil((E.$M+1)/3);case"Do":return _.ordinal(E.$D);case"gggg":return E.weekYear();case"GGGG":return E.isoWeekYear();case"wo":return _.ordinal(E.week(),"W");case"w":case"ww":return A.s(E.week(),B==="w"?1:2,"0");case"W":case"WW":return A.s(E.isoWeek(),B==="W"?1:2,"0");case"k":case"kk":return A.s(String(E.$H===0?24:E.$H),B==="k"?1:2,"0");case"X":return Math.floor(E.$d.getTime()/1e3);case"x":return E.$d.getTime();case"z":return"["+E.offsetName()+"]";case"zzz":return"["+E.offsetName("long")+"]";default:return B}});return m.bind(this)(I)}}})})(WBt);var fqe=WBt.exports;const dqe=G7(fqe);w0.extend(uqe),w0.extend(hqe),w0.extend(dqe);let x3="",V0t="",G0t,U0t="",PF=[],FF=[],W0t={},Y0t=[],IY=[],uL="",K0t="";const YBt=["active","done","crit","milestone"];let X0t=[],NF=!1,Q0t=!1,Z0t="sunday",J0t=0;const gqe=function(){Y0t=[],IY=[],uL="",X0t=[],OY=0,egt=void 0,PY=void 0,h1=[],x3="",V0t="",K0t="",G0t=void 0,U0t="",PF=[],FF=[],NF=!1,Q0t=!1,J0t=0,W0t={},hg(),Z0t="sunday"},pqe=function(i){V0t=i},bqe=function(){return V0t},wqe=function(i){G0t=i},vqe=function(){return G0t},mqe=function(i){U0t=i},yqe=function(){return U0t},xqe=function(i){x3=i},kqe=function(){NF=!0},Eqe=function(){return NF},Tqe=function(){Q0t=!0},Cqe=function(){return Q0t},_qe=function(i){K0t=i},Sqe=function(){return K0t},Aqe=function(){return x3},Lqe=function(i){PF=i.toLowerCase().split(/[\s,]+/)},Mqe=function(){return PF},Dqe=function(i){FF=i.toLowerCase().split(/[\s,]+/)},Iqe=function(){return FF},Oqe=function(){return W0t},Pqe=function(i){uL=i,Y0t.push(i)},Fqe=function(){return Y0t},Nqe=function(){let i=tRt();const a=10;let f=0;for(;!i&&f=6&&f.includes("weekends")||f.includes(i.format("dddd").toLowerCase())?!0:f.includes(i.format(a.trim()))},Bqe=function(i){Z0t=i},Rqe=function(){return Z0t},XBt=function(i,a,f,p){if(!f.length||i.manualEndTime)return;let w;i.startTime instanceof Date?w=w0(i.startTime):w=w0(i.startTime,a,!0),w=w.add(1,"d");let m;i.endTime instanceof Date?m=w0(i.endTime):m=w0(i.endTime,a,!0);const[b,E]=jqe(w,m,a,f,p);i.endTime=b.toDate(),i.renderEndTime=E},jqe=function(i,a,f,p,w){let m=!1,b=null;for(;i<=a;)m||(b=a.toDate()),m=KBt(i,f,p,w),m&&(a=a.add(1,"d")),i=i.add(1,"d");return[a,b]},tgt=function(i,a,f){f=f.trim();const w=/^after\s+([\d\w- ]+)/.exec(f.trim());if(w!==null){let b=null;if(w[1].split(" ").forEach(function(E){let _=hL(E);_!==void 0&&(b?_.endTime>b.endTime&&(b=_):b=_)}),b)return b.endTime;{const E=new Date;return E.setHours(0,0,0,0),E}}let m=w0(f,a.trim(),!0);if(m.isValid())return m.toDate();{Ut.debug("Invalid date:"+f),Ut.debug("With date format:"+a.trim());const b=new Date(f);if(b===void 0||isNaN(b.getTime())||b.getFullYear()<-1e4||b.getFullYear()>1e4)throw new Error("Invalid date:"+f);return b}},QBt=function(i){const a=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(i.trim());return a!==null?[Number.parseFloat(a[1]),a[2]]:[NaN,"ms"]},ZBt=function(i,a,f,p=!1){f=f.trim();let w=w0(f,a.trim(),!0);if(w.isValid())return p&&(w=w.add(1,"d")),w.toDate();let m=w0(i);const[b,E]=QBt(f);if(!Number.isNaN(b)){const _=m.add(b,E);_.isValid()&&(m=_)}return m.toDate()};let OY=0;const lL=function(i){return i===void 0?(OY=OY+1,"task"+OY):i},$qe=function(i,a){let f;a.substr(0,1)===":"?f=a.substr(1,a.length):f=a;const p=f.split(","),w={};rRt(p,w,YBt);for(let b=0;b{window.open(f,"_self")}),W0t[p]=f)}),eRt(i,"clickable")},eRt=function(i,a){i.split(",").forEach(function(f){let p=hL(f);p!==void 0&&p.classes.push(a)})},Gqe=function(i,a,f){if(Oe().securityLevel!=="loose"||a===void 0)return;let p=[];if(typeof f=="string"){p=f.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let m=0;m{$a.runFunc(a,...p)})},nRt=function(i,a){X0t.push(function(){const f=document.querySelector(`[id="${i}"]`);f!==null&&f.addEventListener("click",function(){a()})},function(){const f=document.querySelector(`[id="${i}-text"]`);f!==null&&f.addEventListener("click",function(){a()})})},Uqe={getConfig:()=>Oe().gantt,clear:gqe,setDateFormat:xqe,getDateFormat:Aqe,enableInclusiveEndDates:kqe,endDatesAreInclusive:Eqe,enableTopAxis:Tqe,topAxisEnabled:Cqe,setAxisFormat:pqe,getAxisFormat:bqe,setTickInterval:wqe,getTickInterval:vqe,setTodayMarker:mqe,getTodayMarker:yqe,setAccTitle:E0,getAccTitle:fg,setDiagramTitle:Nb,getDiagramTitle:pg,setDisplayMode:_qe,getDisplayMode:Sqe,setAccDescription:dg,getAccDescription:gg,addSection:Pqe,getSections:Fqe,getTasks:Nqe,addTask:qqe,findTaskById:hL,addTaskOrg:Hqe,setIncludes:Lqe,getIncludes:Mqe,setExcludes:Dqe,getExcludes:Iqe,setClickEvent:function(i,a,f){i.split(",").forEach(function(p){Gqe(p,a,f)}),eRt(i,"clickable")},setLink:Vqe,getLinks:Oqe,bindFunctions:function(i){X0t.forEach(function(a){a(i)})},parseDuration:QBt,isInvalidDate:KBt,setWeekday:Bqe,getWeekday:Rqe};function rRt(i,a,f){let p=!0;for(;p;)p=!1,f.forEach(function(w){const m="^\\s*"+w+"\\s*$",b=new RegExp(m);i[0].match(b)&&(a[w]=!0,i.shift(1),p=!0)})}const Wqe=function(){Ut.debug("Something is calling, setConf, remove the call")},iRt={monday:BP,tuesday:JMt,wednesday:tDt,thursday:tT,friday:eDt,saturday:nDt,sunday:NP},Yqe=(i,a)=>{let f=[...i].map(()=>-1/0),p=[...i].sort((m,b)=>m.startTime-b.startTime||m.order-b.order),w=0;for(const m of p)for(let b=0;b=f[b]){f[b]=m.endTime,m.order=b+a,b>w&&(w=b);break}return w};let N5;const Kqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:oqe,db:Uqe,renderer:{setConf:Wqe,draw:function(i,a,f,p){const w=Oe().gantt,m=Oe().securityLevel;let b;m==="sandbox"&&(b=yr("#i"+a));const E=yr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body"),_=m==="sandbox"?b.nodes()[0].contentDocument:document,A=_.getElementById(a);N5=A.parentElement.offsetWidth,N5===void 0&&(N5=1200),w.useWidth!==void 0&&(N5=w.useWidth);const I=p.db.getTasks();let B=[];for(const vt of I)B.push(vt.type);B=ut(B);const N={};let R=2*w.topPadding;if(p.db.getDisplayMode()==="compact"||w.displayMode==="compact"){const vt={};for(const pt of I)vt[pt.section]===void 0?vt[pt.section]=[pt]:vt[pt.section].push(pt);let X=0;for(const pt of Object.keys(vt)){const U=Yqe(vt[pt],X)+1;X+=U,R+=U*(w.barHeight+w.barGap),N[pt]=U}}else{R+=I.length*(w.barHeight+w.barGap);for(const vt of B)N[vt]=I.filter(X=>X.type===vt).length}A.setAttribute("viewBox","0 0 "+N5+" "+R);const z=E.select(`[id="${a}"]`),W=Y7e().domain([Mxe(I,function(vt){return vt.startTime}),Lxe(I,function(vt){return vt.endTime})]).rangeRound([0,N5-w.leftPadding-w.rightPadding]);function et(vt,X){const pt=vt.startTime,U=X.startTime;let Tt=0;return pt>U?Tt=1:ptxt.order))].map(xt=>vt.find(Ht=>Ht.order===xt));z.append("g").selectAll("rect").data(Bt).enter().append("rect").attr("x",0).attr("y",function(xt,Ht){return Ht=xt.order,Ht*X+pt-2}).attr("width",function(){return It-w.rightPadding/2}).attr("height",X).attr("class",function(xt){for(const[Ht,Le]of B.entries())if(xt.type===Le)return"section section"+Ht%w.numberSectionStyles;return"section section0"});const Et=z.append("g").selectAll("rect").data(vt).enter(),Z=p.db.getLinks();if(Et.append("rect").attr("id",function(xt){return xt.id}).attr("rx",3).attr("ry",3).attr("x",function(xt){return xt.milestone?W(xt.startTime)+U+.5*(W(xt.endTime)-W(xt.startTime))-.5*Tt:W(xt.startTime)+U}).attr("y",function(xt,Ht){return Ht=xt.order,Ht*X+pt}).attr("width",function(xt){return xt.milestone?Tt:W(xt.renderEndTime||xt.endTime)-W(xt.startTime)}).attr("height",Tt).attr("transform-origin",function(xt,Ht){return Ht=xt.order,(W(xt.startTime)+U+.5*(W(xt.endTime)-W(xt.startTime))).toString()+"px "+(Ht*X+pt+.5*Tt).toString()+"px"}).attr("class",function(xt){const Ht="task";let Le="";xt.classes.length>0&&(Le=xt.classes.join(" "));let Ft=0;for(const[Se,me]of B.entries())xt.type===me&&(Ft=Se%w.numberSectionStyles);let gn="";return xt.active?xt.crit?gn+=" activeCrit":gn=" active":xt.done?xt.crit?gn=" doneCrit":gn=" done":xt.crit&&(gn+=" crit"),gn.length===0&&(gn=" task"),xt.milestone&&(gn=" milestone "+gn),gn+=Ft,gn+=" "+Le,Ht+gn}),Et.append("text").attr("id",function(xt){return xt.id+"-text"}).text(function(xt){return xt.task}).attr("font-size",w.fontSize).attr("x",function(xt){let Ht=W(xt.startTime),Le=W(xt.renderEndTime||xt.endTime);xt.milestone&&(Ht+=.5*(W(xt.endTime)-W(xt.startTime))-.5*Tt),xt.milestone&&(Le=Ht+Tt);const Ft=this.getBBox().width;return Ft>Le-Ht?Le+Ft+1.5*w.leftPadding>It?Ht+U-5:Le+U+5:(Le-Ht)/2+Ht+U}).attr("y",function(xt,Ht){return Ht=xt.order,Ht*X+w.barHeight/2+(w.fontSize/2-2)+pt}).attr("text-height",Tt).attr("class",function(xt){const Ht=W(xt.startTime);let Le=W(xt.endTime);xt.milestone&&(Le=Ht+Tt);const Ft=this.getBBox().width;let gn="";xt.classes.length>0&&(gn=xt.classes.join(" "));let Se=0;for(const[Ve,Ye]of B.entries())xt.type===Ye&&(Se=Ve%w.numberSectionStyles);let me="";return xt.active&&(xt.crit?me="activeCritText"+Se:me="activeText"+Se),xt.done?xt.crit?me=me+" doneCritText"+Se:me=me+" doneText"+Se:xt.crit&&(me=me+" critText"+Se),xt.milestone&&(me+=" milestoneText"),Ft>Le-Ht?Le+Ft+1.5*w.leftPadding>It?gn+" taskTextOutsideLeft taskTextOutside"+Se+" "+me:gn+" taskTextOutsideRight taskTextOutside"+Se+" "+me+" width-"+Ft:gn+" taskText taskText"+Se+" "+me+" width-"+Ft}),Oe().securityLevel==="sandbox"){let xt;xt=yr("#i"+a);const Ht=xt.nodes()[0].contentDocument;Et.filter(function(Le){return Z[Le.id]!==void 0}).each(function(Le){var Ft=Ht.querySelector("#"+Le.id),gn=Ht.querySelector("#"+Le.id+"-text");const Se=Ft.parentNode;var me=Ht.createElement("a");me.setAttribute("xlink:href",Z[Le.id]),me.setAttribute("target","_top"),Se.appendChild(me),me.appendChild(Ft),me.appendChild(gn)})}}function bt(vt,X,pt,U,Tt,nt,It,Ot){if(It.length===0&&Ot.length===0)return;let Bt,Et;for(const{startTime:Ft,endTime:gn}of nt)(Bt===void 0||FtEt)&&(Et=gn);if(!Bt||!Et)return;if(w0(Et).diff(w0(Bt),"year")>5){Ut.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const Z=p.db.getDateFormat(),Ct=[];let xt=null,Ht=w0(Bt);for(;Ht.valueOf()<=Et;)p.db.isInvalidDate(Ht,Z,It,Ot)?xt?xt.end=Ht:xt={start:Ht,end:Ht}:xt&&(Ct.push(xt),xt=null),Ht=Ht.add(1,"d");z.append("g").selectAll("rect").data(Ct).enter().append("rect").attr("id",function(Ft){return"exclude-"+Ft.start.format("YYYY-MM-DD")}).attr("x",function(Ft){return W(Ft.start)+pt}).attr("y",w.gridLineStartPadding).attr("width",function(Ft){const gn=Ft.end.add(1,"day");return W(gn)-W(Ft.start)}).attr("height",Tt-X-w.gridLineStartPadding).attr("transform-origin",function(Ft,gn){return(W(Ft.start)+pt+.5*(W(Ft.end)-W(Ft.start))).toString()+"px "+(gn*vt+.5*Tt).toString()+"px"}).attr("class","exclude-range")}function mt(vt,X,pt,U){let Tt=jxe(W).tickSize(-U+X+w.gridLineStartPadding).tickFormat(ZU(p.db.getAxisFormat()||w.axisFormat||"%Y-%m-%d"));const It=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(p.db.getTickInterval()||w.tickInterval);if(It!==null){const Ot=It[1],Bt=It[2],Et=p.db.getWeekday()||w.weekday;switch(Bt){case"millisecond":Tt.ticks(LA.every(Ot));break;case"second":Tt.ticks(sk.every(Ot));break;case"minute":Tt.ticks(PP.every(Ot));break;case"hour":Tt.ticks(FP.every(Ot));break;case"day":Tt.ticks(Z7.every(Ot));break;case"week":Tt.ticks(iRt[Et].every(Ot));break;case"month":Tt.ticks(RP.every(Ot));break}}if(z.append("g").attr("class","grid").attr("transform","translate("+vt+", "+(U-50)+")").call(Tt).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),p.db.topAxisEnabled()||w.topAxis){let Ot=Rxe(W).tickSize(-U+X+w.gridLineStartPadding).tickFormat(ZU(p.db.getAxisFormat()||w.axisFormat||"%Y-%m-%d"));if(It!==null){const Bt=It[1],Et=It[2],Z=p.db.getWeekday()||w.weekday;switch(Et){case"millisecond":Ot.ticks(LA.every(Bt));break;case"second":Ot.ticks(sk.every(Bt));break;case"minute":Ot.ticks(PP.every(Bt));break;case"hour":Ot.ticks(FP.every(Bt));break;case"day":Ot.ticks(Z7.every(Bt));break;case"week":Ot.ticks(iRt[Z].every(Bt));break;case"month":Ot.ticks(RP.every(Bt));break}}z.append("g").attr("class","grid").attr("transform","translate("+vt+", "+X+")").call(Ot).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function yt(vt,X){let pt=0;const U=Object.keys(N).map(Tt=>[Tt,N[Tt]]);z.append("g").selectAll("text").data(U).enter().append(function(Tt){const nt=Tt[0].split(Kr.lineBreakRegex),It=-(nt.length-1)/2,Ot=_.createElementNS("http://www.w3.org/2000/svg","text");Ot.setAttribute("dy",It+"em");for(const[Bt,Et]of nt.entries()){const Z=_.createElementNS("http://www.w3.org/2000/svg","tspan");Z.setAttribute("alignment-baseline","central"),Z.setAttribute("x","10"),Bt>0&&Z.setAttribute("dy","1em"),Z.textContent=Et,Ot.appendChild(Z)}return Ot}).attr("x",10).attr("y",function(Tt,nt){if(nt>0)for(let It=0;It` - .mermaid-main-font { - font-family: "trebuchet ms", verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - .exclude-range { - fill: ${i.excludeBkgColor}; - } - - .section { - stroke: none; - opacity: 0.2; - } - - .section0 { - fill: ${i.sectionBkgColor}; - } - - .section2 { - fill: ${i.sectionBkgColor2}; - } - - .section1, - .section3 { - fill: ${i.altSectionBkgColor}; - opacity: 0.2; - } - - .sectionTitle0 { - fill: ${i.titleColor}; - } - - .sectionTitle1 { - fill: ${i.titleColor}; - } - - .sectionTitle2 { - fill: ${i.titleColor}; - } - - .sectionTitle3 { - fill: ${i.titleColor}; - } - - .sectionTitle { - text-anchor: start; - // font-size: ${i.ganttFontSize}; - // text-height: 14px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - - /* Grid and axis */ - - .grid .tick { - stroke: ${i.gridColor}; - opacity: 0.8; - shape-rendering: crispEdges; - text { - font-family: ${i.fontFamily}; - fill: ${i.textColor}; - } - } - - .grid path { - stroke-width: 0; - } - - - /* Today line */ - - .today { - fill: none; - stroke: ${i.todayLineColor}; - stroke-width: 2px; - } - - - /* Task styling */ - - /* Default task */ - - .task { - stroke-width: 2; - } - - .taskText { - text-anchor: middle; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - - // .taskText:not([font-size]) { - // font-size: ${i.ganttFontSize}; - // } - - .taskTextOutsideRight { - fill: ${i.taskTextDarkColor}; - text-anchor: start; - // font-size: ${i.ganttFontSize}; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - .taskTextOutsideLeft { - fill: ${i.taskTextDarkColor}; - text-anchor: end; - // font-size: ${i.ganttFontSize}; - } - - /* Special case clickable */ - .task.clickable { - cursor: pointer; - } - .taskText.clickable { - cursor: pointer; - fill: ${i.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideLeft.clickable { - cursor: pointer; - fill: ${i.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideRight.clickable { - cursor: pointer; - fill: ${i.taskTextClickableColor} !important; - font-weight: bold; - } - - /* Specific task settings for the sections*/ - - .taskText0, - .taskText1, - .taskText2, - .taskText3 { - fill: ${i.taskTextColor}; - } - - .task0, - .task1, - .task2, - .task3 { - fill: ${i.taskBkgColor}; - stroke: ${i.taskBorderColor}; - } - - .taskTextOutside0, - .taskTextOutside2 - { - fill: ${i.taskTextOutsideColor}; - } - - .taskTextOutside1, - .taskTextOutside3 { - fill: ${i.taskTextOutsideColor}; - } - - - /* Active task */ - - .active0, - .active1, - .active2, - .active3 { - fill: ${i.activeTaskBkgColor}; - stroke: ${i.activeTaskBorderColor}; - } - - .activeText0, - .activeText1, - .activeText2, - .activeText3 { - fill: ${i.taskTextDarkColor} !important; - } - - - /* Completed task */ - - .done0, - .done1, - .done2, - .done3 { - stroke: ${i.doneTaskBorderColor}; - fill: ${i.doneTaskBkgColor}; - stroke-width: 2; - } - - .doneText0, - .doneText1, - .doneText2, - .doneText3 { - fill: ${i.taskTextDarkColor} !important; - } - - - /* Tasks on the critical line */ - - .crit0, - .crit1, - .crit2, - .crit3 { - stroke: ${i.critBorderColor}; - fill: ${i.critBkgColor}; - stroke-width: 2; - } - - .activeCrit0, - .activeCrit1, - .activeCrit2, - .activeCrit3 { - stroke: ${i.critBorderColor}; - fill: ${i.activeTaskBkgColor}; - stroke-width: 2; - } - - .doneCrit0, - .doneCrit1, - .doneCrit2, - .doneCrit3 { - stroke: ${i.critBorderColor}; - fill: ${i.doneTaskBkgColor}; - stroke-width: 2; - cursor: pointer; - shape-rendering: crispEdges; - } - - .milestone { - transform: rotate(45deg) scale(0.8,0.8); - } - - .milestoneText { - font-style: italic; - } - .doneCritText0, - .doneCritText1, - .doneCritText2, - .doneCritText3 { - fill: ${i.taskTextDarkColor} !important; - } - - .activeCritText0, - .activeCritText1, - .activeCritText2, - .activeCritText3 { - fill: ${i.taskTextDarkColor} !important; - } - - .titleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor} ; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } -`}},Symbol.toStringTag,{value:"Module"}));var ngt=function(){var i=function(m,b,E,_){for(E=E||{},_=m.length;_--;E[m[_]]=b);return E},a=[6,9,10],f={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(b,E,_,A,I,B,N){switch(B.length-1,I){case 1:return A;case 4:break;case 6:A.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},i(a,[2,3]),i(a,[2,4]),i(a,[2,5]),i(a,[2,6])],defaultActions:{4:[2,1]},parseError:function(b,E){if(E.recoverable)this.trace(b);else{var _=new Error(b);throw _.hash=E,_}},parse:function(b){var E=this,_=[0],A=[],I=[null],B=[],N=this.table,R="",z=0,W=0,et=2,st=1,at=B.slice.call(arguments,1),bt=Object.create(this.lexer),mt={yy:{}};for(var yt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,yt)&&(mt.yy[yt]=this.yy[yt]);bt.setInput(b,mt.yy),mt.yy.lexer=bt,mt.yy.parser=this,typeof bt.yylloc>"u"&&(bt.yylloc={});var ft=bt.yylloc;B.push(ft);var ut=bt.options&&bt.options.ranges;typeof mt.yy.parseError=="function"?this.parseError=mt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function vt(){var Ct;return Ct=A.pop()||bt.lex()||st,typeof Ct!="number"&&(Ct instanceof Array&&(A=Ct,Ct=A.pop()),Ct=E.symbols_[Ct]||Ct),Ct}for(var X,pt,U,Tt,nt={},It,Ot,Bt,Et;;){if(pt=_[_.length-1],this.defaultActions[pt]?U=this.defaultActions[pt]:((X===null||typeof X>"u")&&(X=vt()),U=N[pt]&&N[pt][X]),typeof U>"u"||!U.length||!U[0]){var Z="";Et=[];for(It in N[pt])this.terminals_[It]&&It>et&&Et.push("'"+this.terminals_[It]+"'");bt.showPosition?Z="Parse error on line "+(z+1)+`: -`+bt.showPosition()+` -Expecting `+Et.join(", ")+", got '"+(this.terminals_[X]||X)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(X==st?"end of input":"'"+(this.terminals_[X]||X)+"'"),this.parseError(Z,{text:bt.match,token:this.terminals_[X]||X,line:bt.yylineno,loc:ft,expected:Et})}if(U[0]instanceof Array&&U.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pt+", token: "+X);switch(U[0]){case 1:_.push(X),I.push(bt.yytext),B.push(bt.yylloc),_.push(U[1]),X=null,W=bt.yyleng,R=bt.yytext,z=bt.yylineno,ft=bt.yylloc;break;case 2:if(Ot=this.productions_[U[1]][1],nt.$=I[I.length-Ot],nt._$={first_line:B[B.length-(Ot||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(Ot||1)].first_column,last_column:B[B.length-1].last_column},ut&&(nt._$.range=[B[B.length-(Ot||1)].range[0],B[B.length-1].range[1]]),Tt=this.performAction.apply(nt,[R,W,z,mt.yy,U[1],I,B].concat(at)),typeof Tt<"u")return Tt;Ot&&(_=_.slice(0,-1*Ot*2),I=I.slice(0,-1*Ot),B=B.slice(0,-1*Ot)),_.push(this.productions_[U[1]][0]),I.push(nt.$),B.push(nt._$),Bt=N[_[_.length-2]][_[_.length-1]],_.push(Bt);break;case 3:return!0}}return!0}},p=function(){var m={EOF:1,parseError:function(E,_){if(this.yy.parser)this.yy.parser.parseError(E,_);else throw new Error(E)},setInput:function(b,E){return this.yy=E||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var E=b.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},unput:function(b){var E=b.length,_=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var A=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),_.length-1&&(this.yylineno-=_.length-1);var I=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:_?(_.length===A.length?this.yylloc.first_column:0)+A[A.length-_.length].length-_[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[I[0],I[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(b){this.unput(this.match.slice(b))},pastInput:function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var b=this.pastInput(),E=new Array(b.length+1).join("-");return b+this.upcomingInput()+` -`+E+"^"},test_match:function(b,E){var _,A,I;if(this.options.backtrack_lexer&&(I={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(I.yylloc.range=this.yylloc.range.slice(0))),A=b[0].match(/(?:\r\n?|\n).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],_=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),_)return _;if(this._backtrack){for(var B in I)this[B]=I[B];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,E,_,A;this._more||(this.yytext="",this.match="");for(var I=this._currentRules(),B=0;BE[0].length)){if(E=_,A=B,this.options.backtrack_lexer){if(b=this.test_match(_,I[B]),b!==!1)return b;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(b=this.test_match(E,I[A]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var E=this.next();return E||this.lex()},begin:function(E){this.conditionStack.push(E)},popState:function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},pushState:function(E){this.begin(E)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(E,_,A,I){switch(A){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return m}();f.lexer=p;function w(){this.yy={}}return w.prototype=f,f.Parser=w,new w}();ngt.parser=ngt;const Xqe=ngt,sRt={info:!1};let rgt=sRt.info;const Qqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Xqe,db:{clear:()=>{rgt=sRt.info},setInfo:i=>{rgt=i},getInfo:()=>rgt},renderer:{draw:(i,a,f)=>{Ut.debug(`rendering info diagram -`+i);const p=VW(a);k0(p,100,400,!0),p.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${f}`)}}}},Symbol.toStringTag,{value:"Module"}));var igt=function(){var i=function(bt,mt,yt,ft){for(yt=yt||{},ft=bt.length;ft--;yt[bt[ft]]=mt);return yt},a=[1,3],f=[1,4],p=[1,5],w=[1,6],m=[1,10,12,14,16,18,19,20,21,22],b=[2,4],E=[1,5,10,12,14,16,18,19,20,21,22],_=[20,21,22],A=[2,7],I=[1,12],B=[1,13],N=[1,14],R=[1,15],z=[1,16],W=[1,17],et={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(mt,yt,ft,ut,vt,X,pt){var U=X.length-1;switch(vt){case 3:ut.setShowData(!0);break;case 6:this.$=X[U-1];break;case 8:ut.addSection(X[U-1],ut.cleanupValue(X[U]));break;case 9:this.$=X[U].trim(),ut.setDiagramTitle(this.$);break;case 10:this.$=X[U].trim(),ut.setAccTitle(this.$);break;case 11:case 12:this.$=X[U].trim(),ut.setAccDescription(this.$);break;case 13:ut.addSection(X[U].substr(8)),this.$=X[U].substr(8);break}},table:[{3:1,4:2,5:a,20:f,21:p,22:w},{1:[3]},{3:7,4:2,5:a,20:f,21:p,22:w},i(m,b,{6:8,7:[1,9]}),i(E,[2,14]),i(E,[2,15]),i(E,[2,16]),{1:[2,1]},i(_,A,{8:10,9:11,1:[2,2],10:I,12:B,14:N,16:R,18:z,19:W}),i(m,b,{6:18}),i(m,[2,5]),{4:19,20:f,21:p,22:w},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},i(_,[2,12]),i(_,[2,13]),i(_,A,{8:10,9:11,1:[2,3],10:I,12:B,14:N,16:R,18:z,19:W}),i(m,[2,6]),i(_,[2,8]),i(_,[2,9]),i(_,[2,10]),i(_,[2,11])],defaultActions:{7:[2,1]},parseError:function(mt,yt){if(yt.recoverable)this.trace(mt);else{var ft=new Error(mt);throw ft.hash=yt,ft}},parse:function(mt){var yt=this,ft=[0],ut=[],vt=[null],X=[],pt=this.table,U="",Tt=0,nt=0,It=2,Ot=1,Bt=X.slice.call(arguments,1),Et=Object.create(this.lexer),Z={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(Z.yy[Ct]=this.yy[Ct]);Et.setInput(mt,Z.yy),Z.yy.lexer=Et,Z.yy.parser=this,typeof Et.yylloc>"u"&&(Et.yylloc={});var xt=Et.yylloc;X.push(xt);var Ht=Et.options&&Et.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Le(){var se;return se=ut.pop()||Et.lex()||Ot,typeof se!="number"&&(se instanceof Array&&(ut=se,se=ut.pop()),se=yt.symbols_[se]||se),se}for(var Ft,gn,Se,me,Ve={},Ye,ce,ke,zt;;){if(gn=ft[ft.length-1],this.defaultActions[gn]?Se=this.defaultActions[gn]:((Ft===null||typeof Ft>"u")&&(Ft=Le()),Se=pt[gn]&&pt[gn][Ft]),typeof Se>"u"||!Se.length||!Se[0]){var re="";zt=[];for(Ye in pt[gn])this.terminals_[Ye]&&Ye>It&&zt.push("'"+this.terminals_[Ye]+"'");Et.showPosition?re="Parse error on line "+(Tt+1)+`: -`+Et.showPosition()+` -Expecting `+zt.join(", ")+", got '"+(this.terminals_[Ft]||Ft)+"'":re="Parse error on line "+(Tt+1)+": Unexpected "+(Ft==Ot?"end of input":"'"+(this.terminals_[Ft]||Ft)+"'"),this.parseError(re,{text:Et.match,token:this.terminals_[Ft]||Ft,line:Et.yylineno,loc:xt,expected:zt})}if(Se[0]instanceof Array&&Se.length>1)throw new Error("Parse Error: multiple actions possible at state: "+gn+", token: "+Ft);switch(Se[0]){case 1:ft.push(Ft),vt.push(Et.yytext),X.push(Et.yylloc),ft.push(Se[1]),Ft=null,nt=Et.yyleng,U=Et.yytext,Tt=Et.yylineno,xt=Et.yylloc;break;case 2:if(ce=this.productions_[Se[1]][1],Ve.$=vt[vt.length-ce],Ve._$={first_line:X[X.length-(ce||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(ce||1)].first_column,last_column:X[X.length-1].last_column},Ht&&(Ve._$.range=[X[X.length-(ce||1)].range[0],X[X.length-1].range[1]]),me=this.performAction.apply(Ve,[U,nt,Tt,Z.yy,Se[1],vt,X].concat(Bt)),typeof me<"u")return me;ce&&(ft=ft.slice(0,-1*ce*2),vt=vt.slice(0,-1*ce),X=X.slice(0,-1*ce)),ft.push(this.productions_[Se[1]][0]),vt.push(Ve.$),X.push(Ve._$),ke=pt[ft[ft.length-2]][ft[ft.length-1]],ft.push(ke);break;case 3:return!0}}return!0}},st=function(){var bt={EOF:1,parseError:function(yt,ft){if(this.yy.parser)this.yy.parser.parseError(yt,ft);else throw new Error(yt)},setInput:function(mt,yt){return this.yy=yt||this.yy||{},this._input=mt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var mt=this._input[0];this.yytext+=mt,this.yyleng++,this.offset++,this.match+=mt,this.matched+=mt;var yt=mt.match(/(?:\r\n?|\n).*/g);return yt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),mt},unput:function(mt){var yt=mt.length,ft=mt.split(/(?:\r\n?|\n)/g);this._input=mt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-yt),this.offset-=yt;var ut=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ft.length-1&&(this.yylineno-=ft.length-1);var vt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ft?(ft.length===ut.length?this.yylloc.first_column:0)+ut[ut.length-ft.length].length-ft[0].length:this.yylloc.first_column-yt},this.options.ranges&&(this.yylloc.range=[vt[0],vt[0]+this.yyleng-yt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(mt){this.unput(this.match.slice(mt))},pastInput:function(){var mt=this.matched.substr(0,this.matched.length-this.match.length);return(mt.length>20?"...":"")+mt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var mt=this.match;return mt.length<20&&(mt+=this._input.substr(0,20-mt.length)),(mt.substr(0,20)+(mt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var mt=this.pastInput(),yt=new Array(mt.length+1).join("-");return mt+this.upcomingInput()+` -`+yt+"^"},test_match:function(mt,yt){var ft,ut,vt;if(this.options.backtrack_lexer&&(vt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(vt.yylloc.range=this.yylloc.range.slice(0))),ut=mt[0].match(/(?:\r\n?|\n).*/g),ut&&(this.yylineno+=ut.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ut?ut[ut.length-1].length-ut[ut.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+mt[0].length},this.yytext+=mt[0],this.match+=mt[0],this.matches=mt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(mt[0].length),this.matched+=mt[0],ft=this.performAction.call(this,this.yy,this,yt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ft)return ft;if(this._backtrack){for(var X in vt)this[X]=vt[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var mt,yt,ft,ut;this._more||(this.yytext="",this.match="");for(var vt=this._currentRules(),X=0;Xyt[0].length)){if(yt=ft,ut=X,this.options.backtrack_lexer){if(mt=this.test_match(ft,vt[X]),mt!==!1)return mt;if(this._backtrack){yt=!1;continue}else return!1}else if(!this.options.flex)break}return yt?(mt=this.test_match(yt,vt[ut]),mt!==!1?mt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var yt=this.next();return yt||this.lex()},begin:function(yt){this.conditionStack.push(yt)},popState:function(){var yt=this.conditionStack.length-1;return yt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(yt){return yt=this.conditionStack.length-1-Math.abs(yt||0),yt>=0?this.conditionStack[yt]:"INITIAL"},pushState:function(yt){this.begin(yt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yt,ft,ut,vt){switch(ut){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return bt}();et.lexer=st;function at(){this.yy={}}return at.prototype=et,et.Parser=at,new at}();igt.parser=igt;const Zqe=igt,aRt=Zh.pie,FY={sections:{},showData:!1,config:aRt};let NY=FY.sections,sgt=FY.showData;const Jqe=structuredClone(aRt),tHe={getConfig:()=>structuredClone(Jqe),clear:()=>{NY=structuredClone(FY.sections),sgt=FY.showData,hg()},setDiagramTitle:Nb,getDiagramTitle:pg,setAccTitle:E0,getAccTitle:fg,setAccDescription:dg,getAccDescription:gg,addSection:(i,a)=>{i=Q1(i,Oe()),NY[i]===void 0&&(NY[i]=a,Ut.debug(`added new section: ${i}, with value: ${a}`))},getSections:()=>NY,cleanupValue:i=>(i.substring(0,1)===":"&&(i=i.substring(1).trim()),Number(i.trim())),setShowData:i=>{sgt=i},getShowData:()=>sgt},eHe=i=>` - .pieCircle{ - stroke: ${i.pieStrokeColor}; - stroke-width : ${i.pieStrokeWidth}; - opacity : ${i.pieOpacity}; - } - .pieOuterCircle{ - stroke: ${i.pieOuterStrokeColor}; - stroke-width: ${i.pieOuterStrokeWidth}; - fill: none; - } - .pieTitleText { - text-anchor: middle; - font-size: ${i.pieTitleTextSize}; - fill: ${i.pieTitleTextColor}; - font-family: ${i.fontFamily}; - } - .slice { - font-family: ${i.fontFamily}; - fill: ${i.pieSectionTextColor}; - font-size:${i.pieSectionTextSize}; - // fill: white; - } - .legend text { - fill: ${i.pieLegendTextColor}; - font-family: ${i.fontFamily}; - font-size: ${i.pieLegendTextSize}; - } -`,nHe=i=>{const a=Object.entries(i).map(p=>({label:p[0],value:p[1]})).sort((p,w)=>w.value-p.value);return uTe().value(p=>p.value)(a)},rHe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Zqe,db:tHe,renderer:{draw:(i,a,f,p)=>{var pt,U;Ut.debug(`rendering pie chart -`+i);const w=p.db,m=Oe(),b=rF(w.getConfig(),m.pie),E=450,_=((U=(pt=document.getElementById(a))==null?void 0:pt.parentElement)==null?void 0:U.offsetWidth)??b.useWidth,A=VW(a);A.attr("viewBox",`0 0 ${_} ${E}`),k0(A,E,_,b.useMaxWidth);const I=40,B=18,N=4,R=A.append("g");R.attr("transform","translate("+_/2+","+E/2+")");const{themeVariables:z}=m;let[W]=VA(z.pieOuterStrokeWidth);W??(W=2);const et=b.textPosition,st=Math.min(_,E)/2-I,at=OA().innerRadius(0).outerRadius(st),bt=OA().innerRadius(st*et).outerRadius(st*et);R.append("circle").attr("cx",0).attr("cy",0).attr("r",st+W/2).attr("class","pieOuterCircle");const mt=w.getSections(),yt=nHe(mt),ft=[z.pie1,z.pie2,z.pie3,z.pie4,z.pie5,z.pie6,z.pie7,z.pie8,z.pie9,z.pie10,z.pie11,z.pie12],ut=XU(ft);R.selectAll("mySlices").data(yt).enter().append("path").attr("d",at).attr("fill",Tt=>ut(Tt.data.label)).attr("class","pieCircle");let vt=0;Object.keys(mt).forEach(Tt=>{vt+=mt[Tt]}),R.selectAll("mySlices").data(yt).enter().append("text").text(Tt=>(Tt.data.value/vt*100).toFixed(0)+"%").attr("transform",Tt=>"translate("+bt.centroid(Tt)+")").style("text-anchor","middle").attr("class","slice"),R.append("text").text(w.getDiagramTitle()).attr("x",0).attr("y",-(E-50)/2).attr("class","pieTitleText");const X=R.selectAll(".legend").data(ut.domain()).enter().append("g").attr("class","legend").attr("transform",(Tt,nt)=>{const It=B+N,Ot=It*ut.domain().length/2,Bt=12*B,Et=nt*It-Ot;return"translate("+Bt+","+Et+")"});X.append("rect").attr("width",B).attr("height",B).style("fill",ut).style("stroke",ut),X.data(yt).append("text").attr("x",B+N).attr("y",B-N).text(Tt=>{const{label:nt,value:It}=Tt.data;return w.getShowData()?`${nt} [${It}]`:nt})}},styles:eHe}},Symbol.toStringTag,{value:"Module"}));var agt=function(){var i=function(Se,me,Ve,Ye){for(Ve=Ve||{},Ye=Se.length;Ye--;Ve[Se[Ye]]=me);return Ve},a=[1,3],f=[1,4],p=[1,5],w=[1,6],m=[1,7],b=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],E=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],_=[32,33,34],A=[2,7],I=[1,13],B=[1,17],N=[1,18],R=[1,19],z=[1,20],W=[1,21],et=[1,22],st=[1,23],at=[1,24],bt=[1,25],mt=[1,26],yt=[1,27],ft=[1,30],ut=[1,31],vt=[1,32],X=[1,33],pt=[1,34],U=[1,35],Tt=[1,36],nt=[1,37],It=[1,38],Ot=[1,39],Bt=[1,40],Et=[1,41],Z=[1,42],Ct=[1,57],xt=[1,58],Ht=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],Le={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(me,Ve,Ye,ce,ke,zt,re){var se=zt.length-1;switch(ke){case 12:this.$=zt[se].trim(),ce.setDiagramTitle(this.$);break;case 13:this.$=zt[se].trim(),ce.setAccTitle(this.$);break;case 14:case 15:this.$=zt[se].trim(),ce.setAccDescription(this.$);break;case 16:ce.addSection(zt[se].substr(8)),this.$=zt[se].substr(8);break;case 17:ce.addPoint(zt[se-3],zt[se-1],zt[se]);break;case 18:ce.setXAxisLeftText(zt[se-2]),ce.setXAxisRightText(zt[se]);break;case 19:zt[se-1].text+=" ⟶ ",ce.setXAxisLeftText(zt[se-1]);break;case 20:ce.setXAxisLeftText(zt[se]);break;case 21:ce.setYAxisBottomText(zt[se-2]),ce.setYAxisTopText(zt[se]);break;case 22:zt[se-1].text+=" ⟶ ",ce.setYAxisBottomText(zt[se-1]);break;case 23:ce.setYAxisBottomText(zt[se]);break;case 24:ce.setQuadrant1Text(zt[se]);break;case 25:ce.setQuadrant2Text(zt[se]);break;case 26:ce.setQuadrant3Text(zt[se]);break;case 27:ce.setQuadrant4Text(zt[se]);break;case 31:this.$={text:zt[se],type:"text"};break;case 32:this.$={text:zt[se-1].text+""+zt[se],type:zt[se-1].type};break;case 33:this.$={text:zt[se],type:"text"};break;case 34:this.$={text:zt[se],type:"markdown"};break;case 35:this.$=zt[se];break;case 36:this.$=zt[se-1]+""+zt[se];break}},table:[{3:1,4:2,5:a,6:f,32:p,33:w,34:m},{1:[3]},{3:8,4:2,5:a,6:f,32:p,33:w,34:m},{3:9,4:2,5:a,6:f,32:p,33:w,34:m},i(b,[2,4],{7:10}),i(E,[2,28]),i(E,[2,29]),i(E,[2,30]),{1:[2,1]},{1:[2,2]},i(_,A,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:I,13:B,15:N,17:R,19:z,20:W,25:et,27:st,28:at,29:bt,30:mt,31:yt,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z}),i(b,[2,5]),{4:43,32:p,33:w,34:m},i(_,A,{10:14,11:15,12:16,21:28,35:29,9:44,5:I,13:B,15:N,17:R,19:z,20:W,25:et,27:st,28:at,29:bt,30:mt,31:yt,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z}),i(_,[2,9]),i(_,[2,10]),i(_,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},i(_,[2,15]),i(_,[2,16]),{21:48,35:29,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z},{21:49,35:29,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z},{21:50,35:29,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z},{21:51,35:29,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z},{21:52,35:29,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z},{21:53,35:29,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z},{5:Ct,22:[1,54],35:56,36:55,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt},i(Ht,[2,31]),i(Ht,[2,33]),i(Ht,[2,34]),i(Ht,[2,37]),i(Ht,[2,38]),i(Ht,[2,39]),i(Ht,[2,40]),i(Ht,[2,41]),i(Ht,[2,42]),i(Ht,[2,43]),i(Ht,[2,44]),i(Ht,[2,45]),i(Ht,[2,46]),i(Ht,[2,47]),i(b,[2,6]),i(_,[2,8]),i(_,[2,12]),i(_,[2,13]),i(_,[2,14]),i(_,[2,20],{36:55,35:56,5:Ct,26:[1,59],40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,23],{36:55,35:56,5:Ct,26:[1,60],40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,24],{36:55,35:56,5:Ct,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,25],{36:55,35:56,5:Ct,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,26],{36:55,35:56,5:Ct,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,27],{36:55,35:56,5:Ct,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),{23:[1,61]},i(Ht,[2,32]),i(Ht,[2,48]),i(Ht,[2,49]),i(Ht,[2,50]),i(_,[2,19],{35:29,21:62,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z}),i(_,[2,22],{35:29,21:63,37:ft,38:ut,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z}),{24:[1,64]},i(_,[2,18],{36:55,35:56,5:Ct,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,21],{36:55,35:56,5:Ct,40:vt,41:X,42:pt,43:U,44:Tt,45:nt,46:It,47:Ot,48:Bt,49:Et,50:Z,51:xt}),i(_,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(me,Ve){if(Ve.recoverable)this.trace(me);else{var Ye=new Error(me);throw Ye.hash=Ve,Ye}},parse:function(me){var Ve=this,Ye=[0],ce=[],ke=[null],zt=[],re=this.table,se="",Pe=0,te=0,Me=2,de=1,on=zt.slice.call(arguments,1),ni=Object.create(this.lexer),Ks={yy:{}};for(var ws in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ws)&&(Ks.yy[ws]=this.yy[ws]);ni.setInput(me,Ks.yy),Ks.yy.lexer=ni,Ks.yy.parser=this,typeof ni.yylloc>"u"&&(ni.yylloc={});var fo=ni.yylloc;zt.push(fo);var Xi=ni.options&&ni.options.ranges;typeof Ks.yy.parseError=="function"?this.parseError=Ks.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Er(){var Gs;return Gs=ce.pop()||ni.lex()||de,typeof Gs!="number"&&(Gs instanceof Array&&(ce=Gs,Gs=ce.pop()),Gs=Ve.symbols_[Gs]||Gs),Gs}for(var Xn,di,Ee,Kn,He={},Ti,pn,Es,qa;;){if(di=Ye[Ye.length-1],this.defaultActions[di]?Ee=this.defaultActions[di]:((Xn===null||typeof Xn>"u")&&(Xn=Er()),Ee=re[di]&&re[di][Xn]),typeof Ee>"u"||!Ee.length||!Ee[0]){var Ma="";qa=[];for(Ti in re[di])this.terminals_[Ti]&&Ti>Me&&qa.push("'"+this.terminals_[Ti]+"'");ni.showPosition?Ma="Parse error on line "+(Pe+1)+`: -`+ni.showPosition()+` -Expecting `+qa.join(", ")+", got '"+(this.terminals_[Xn]||Xn)+"'":Ma="Parse error on line "+(Pe+1)+": Unexpected "+(Xn==de?"end of input":"'"+(this.terminals_[Xn]||Xn)+"'"),this.parseError(Ma,{text:ni.match,token:this.terminals_[Xn]||Xn,line:ni.yylineno,loc:fo,expected:qa})}if(Ee[0]instanceof Array&&Ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+di+", token: "+Xn);switch(Ee[0]){case 1:Ye.push(Xn),ke.push(ni.yytext),zt.push(ni.yylloc),Ye.push(Ee[1]),Xn=null,te=ni.yyleng,se=ni.yytext,Pe=ni.yylineno,fo=ni.yylloc;break;case 2:if(pn=this.productions_[Ee[1]][1],He.$=ke[ke.length-pn],He._$={first_line:zt[zt.length-(pn||1)].first_line,last_line:zt[zt.length-1].last_line,first_column:zt[zt.length-(pn||1)].first_column,last_column:zt[zt.length-1].last_column},Xi&&(He._$.range=[zt[zt.length-(pn||1)].range[0],zt[zt.length-1].range[1]]),Kn=this.performAction.apply(He,[se,te,Pe,Ks.yy,Ee[1],ke,zt].concat(on)),typeof Kn<"u")return Kn;pn&&(Ye=Ye.slice(0,-1*pn*2),ke=ke.slice(0,-1*pn),zt=zt.slice(0,-1*pn)),Ye.push(this.productions_[Ee[1]][0]),ke.push(He.$),zt.push(He._$),Es=re[Ye[Ye.length-2]][Ye[Ye.length-1]],Ye.push(Es);break;case 3:return!0}}return!0}},Ft=function(){var Se={EOF:1,parseError:function(Ve,Ye){if(this.yy.parser)this.yy.parser.parseError(Ve,Ye);else throw new Error(Ve)},setInput:function(me,Ve){return this.yy=Ve||this.yy||{},this._input=me,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var me=this._input[0];this.yytext+=me,this.yyleng++,this.offset++,this.match+=me,this.matched+=me;var Ve=me.match(/(?:\r\n?|\n).*/g);return Ve?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),me},unput:function(me){var Ve=me.length,Ye=me.split(/(?:\r\n?|\n)/g);this._input=me+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ve),this.offset-=Ve;var ce=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ye.length-1&&(this.yylineno-=Ye.length-1);var ke=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ye?(Ye.length===ce.length?this.yylloc.first_column:0)+ce[ce.length-Ye.length].length-Ye[0].length:this.yylloc.first_column-Ve},this.options.ranges&&(this.yylloc.range=[ke[0],ke[0]+this.yyleng-Ve]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(me){this.unput(this.match.slice(me))},pastInput:function(){var me=this.matched.substr(0,this.matched.length-this.match.length);return(me.length>20?"...":"")+me.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var me=this.match;return me.length<20&&(me+=this._input.substr(0,20-me.length)),(me.substr(0,20)+(me.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var me=this.pastInput(),Ve=new Array(me.length+1).join("-");return me+this.upcomingInput()+` -`+Ve+"^"},test_match:function(me,Ve){var Ye,ce,ke;if(this.options.backtrack_lexer&&(ke={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ke.yylloc.range=this.yylloc.range.slice(0))),ce=me[0].match(/(?:\r\n?|\n).*/g),ce&&(this.yylineno+=ce.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ce?ce[ce.length-1].length-ce[ce.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+me[0].length},this.yytext+=me[0],this.match+=me[0],this.matches=me,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(me[0].length),this.matched+=me[0],Ye=this.performAction.call(this,this.yy,this,Ve,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ye)return Ye;if(this._backtrack){for(var zt in ke)this[zt]=ke[zt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var me,Ve,Ye,ce;this._more||(this.yytext="",this.match="");for(var ke=this._currentRules(),zt=0;ztVe[0].length)){if(Ve=Ye,ce=zt,this.options.backtrack_lexer){if(me=this.test_match(Ye,ke[zt]),me!==!1)return me;if(this._backtrack){Ve=!1;continue}else return!1}else if(!this.options.flex)break}return Ve?(me=this.test_match(Ve,ke[ce]),me!==!1?me:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ve=this.next();return Ve||this.lex()},begin:function(Ve){this.conditionStack.push(Ve)},popState:function(){var Ve=this.conditionStack.length-1;return Ve>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ve){return Ve=this.conditionStack.length-1-Math.abs(Ve||0),Ve>=0?this.conditionStack[Ve]:"INITIAL"},pushState:function(Ve){this.begin(Ve)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ve,Ye,ce,ke){switch(ce){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return Se}();Le.lexer=Ft;function gn(){this.yy={}}return gn.prototype=Le,Le.Parser=gn,new gn}();agt.parser=agt;const iHe=agt,mg=X1t();class sHe{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var a,f,p,w,m,b,E,_,A,I,B,N,R,z,W,et,st,at;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((a=Zh.quadrantChart)==null?void 0:a.chartWidth)||500,chartWidth:((f=Zh.quadrantChart)==null?void 0:f.chartHeight)||500,titlePadding:((p=Zh.quadrantChart)==null?void 0:p.titlePadding)||10,titleFontSize:((w=Zh.quadrantChart)==null?void 0:w.titleFontSize)||20,quadrantPadding:((m=Zh.quadrantChart)==null?void 0:m.quadrantPadding)||5,xAxisLabelPadding:((b=Zh.quadrantChart)==null?void 0:b.xAxisLabelPadding)||5,yAxisLabelPadding:((E=Zh.quadrantChart)==null?void 0:E.yAxisLabelPadding)||5,xAxisLabelFontSize:((_=Zh.quadrantChart)==null?void 0:_.xAxisLabelFontSize)||16,yAxisLabelFontSize:((A=Zh.quadrantChart)==null?void 0:A.yAxisLabelFontSize)||16,quadrantLabelFontSize:((I=Zh.quadrantChart)==null?void 0:I.quadrantLabelFontSize)||16,quadrantTextTopPadding:((B=Zh.quadrantChart)==null?void 0:B.quadrantTextTopPadding)||5,pointTextPadding:((N=Zh.quadrantChart)==null?void 0:N.pointTextPadding)||5,pointLabelFontSize:((R=Zh.quadrantChart)==null?void 0:R.pointLabelFontSize)||12,pointRadius:((z=Zh.quadrantChart)==null?void 0:z.pointRadius)||5,xAxisPosition:((W=Zh.quadrantChart)==null?void 0:W.xAxisPosition)||"top",yAxisPosition:((et=Zh.quadrantChart)==null?void 0:et.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((st=Zh.quadrantChart)==null?void 0:st.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((at=Zh.quadrantChart)==null?void 0:at.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:mg.quadrant1Fill,quadrant2Fill:mg.quadrant2Fill,quadrant3Fill:mg.quadrant3Fill,quadrant4Fill:mg.quadrant4Fill,quadrant1TextFill:mg.quadrant1TextFill,quadrant2TextFill:mg.quadrant2TextFill,quadrant3TextFill:mg.quadrant3TextFill,quadrant4TextFill:mg.quadrant4TextFill,quadrantPointFill:mg.quadrantPointFill,quadrantPointTextFill:mg.quadrantPointTextFill,quadrantXAxisTextFill:mg.quadrantXAxisTextFill,quadrantYAxisTextFill:mg.quadrantYAxisTextFill,quadrantTitleFill:mg.quadrantTitleFill,quadrantInternalBorderStrokeFill:mg.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:mg.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),Ut.info("clear called")}setData(a){this.data={...this.data,...a}}addPoints(a){this.data.points=[...a,...this.data.points]}setConfig(a){Ut.trace("setConfig called with: ",a),this.config={...this.config,...a}}setThemeConfig(a){Ut.trace("setThemeConfig called with: ",a),this.themeConfig={...this.themeConfig,...a}}calculateSpace(a,f,p,w){const m=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,b={top:a==="top"&&f?m:0,bottom:a==="bottom"&&f?m:0},E=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,_={left:this.config.yAxisPosition==="left"&&p?E:0,right:this.config.yAxisPosition==="right"&&p?E:0},A=this.config.titleFontSize+this.config.titlePadding*2,I={top:w?A:0},B=this.config.quadrantPadding+_.left,N=this.config.quadrantPadding+b.top+I.top,R=this.config.chartWidth-this.config.quadrantPadding*2-_.left-_.right,z=this.config.chartHeight-this.config.quadrantPadding*2-b.top-b.bottom-I.top,W=R/2,et=z/2;return{xAxisSpace:b,yAxisSpace:_,titleSpace:I,quadrantSpace:{quadrantLeft:B,quadrantTop:N,quadrantWidth:R,quadrantHalfWidth:W,quadrantHeight:z,quadrantHalfHeight:et}}}getAxisLabels(a,f,p,w){const{quadrantSpace:m,titleSpace:b}=w,{quadrantHalfHeight:E,quadrantHeight:_,quadrantLeft:A,quadrantHalfWidth:I,quadrantTop:B,quadrantWidth:N}=m,R=!!this.data.xAxisRightText,z=!!this.data.yAxisTopText,W=[];return this.data.xAxisLeftText&&f&&W.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:A+(R?I/2:0),y:a==="top"?this.config.xAxisLabelPadding+b.top:this.config.xAxisLabelPadding+B+_+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:R?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&f&&W.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:A+I+(R?I/2:0),y:a==="top"?this.config.xAxisLabelPadding+b.top:this.config.xAxisLabelPadding+B+_+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:R?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&p&&W.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+A+N+this.config.quadrantPadding,y:B+_-(z?E/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:z?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&p&&W.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+A+N+this.config.quadrantPadding,y:B+E-(z?E/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:z?"center":"left",horizontalPos:"top",rotation:-90}),W}getQuadrants(a){const{quadrantSpace:f}=a,{quadrantHalfHeight:p,quadrantLeft:w,quadrantHalfWidth:m,quadrantTop:b}=f,E=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w+m,y:b,width:m,height:p,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w,y:b,width:m,height:p,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w,y:b+p,width:m,height:p,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w+m,y:b+p,width:m,height:p,fill:this.themeConfig.quadrant4Fill}];for(const _ of E)_.text.x=_.x+_.width/2,this.data.points.length===0?(_.text.y=_.y+_.height/2,_.text.horizontalPos="middle"):(_.text.y=_.y+this.config.quadrantTextTopPadding,_.text.horizontalPos="top");return E}getQuadrantPoints(a){const{quadrantSpace:f}=a,{quadrantHeight:p,quadrantLeft:w,quadrantTop:m,quadrantWidth:b}=f,E=AA().domain([0,1]).range([w,b+w]),_=AA().domain([0,1]).range([p+m,m]);return this.data.points.map(I=>({x:E(I.x),y:_(I.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:I.text,fill:this.themeConfig.quadrantPointTextFill,x:E(I.x),y:_(I.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(a){const f=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:p}=a,{quadrantHalfHeight:w,quadrantHeight:m,quadrantLeft:b,quadrantHalfWidth:E,quadrantTop:_,quadrantWidth:A}=p;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b-f,y1:_,x2:b+A+f,y2:_},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b+A,y1:_+f,x2:b+A,y2:_+m-f},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b-f,y1:_+m,x2:b+A+f,y2:_+m},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b,y1:_+f,x2:b,y2:_+m-f},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:b+E,y1:_+f,x2:b+E,y2:_+m-f},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:b+f,y1:_+w,x2:b+A-f,y2:_+w}]}getTitle(a){if(a)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const a=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),f=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),p=this.config.showTitle&&!!this.data.titleText,w=this.data.points.length>0?"bottom":this.config.xAxisPosition,m=this.calculateSpace(w,a,f,p);return{points:this.getQuadrantPoints(m),quadrants:this.getQuadrants(m),axisLabels:this.getAxisLabels(w,a,f,m),borderLines:this.getBorders(m),title:this.getTitle(p)}}}const aHe=Oe();function B5(i){return Q1(i.trim(),aHe)}const _0=new sHe;function oHe(i){_0.setData({quadrant1Text:B5(i.text)})}function cHe(i){_0.setData({quadrant2Text:B5(i.text)})}function uHe(i){_0.setData({quadrant3Text:B5(i.text)})}function lHe(i){_0.setData({quadrant4Text:B5(i.text)})}function hHe(i){_0.setData({xAxisLeftText:B5(i.text)})}function fHe(i){_0.setData({xAxisRightText:B5(i.text)})}function dHe(i){_0.setData({yAxisTopText:B5(i.text)})}function gHe(i){_0.setData({yAxisBottomText:B5(i.text)})}function pHe(i,a,f){_0.addPoints([{x:a,y:f,text:B5(i.text)}])}function bHe(i){_0.setConfig({chartWidth:i})}function wHe(i){_0.setConfig({chartHeight:i})}function vHe(){const i=Oe(),{themeVariables:a,quadrantChart:f}=i;return f&&_0.setConfig(f),_0.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),_0.setData({titleText:pg()}),_0.build()}const mHe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:iHe,db:{setWidth:bHe,setHeight:wHe,setQuadrant1Text:oHe,setQuadrant2Text:cHe,setQuadrant3Text:uHe,setQuadrant4Text:lHe,setXAxisLeftText:hHe,setXAxisRightText:fHe,setYAxisTopText:dHe,setYAxisBottomText:gHe,addPoint:pHe,getQuadrantData:vHe,clear:function(){_0.clear(),hg()},setAccTitle:E0,getAccTitle:fg,setDiagramTitle:Nb,getDiagramTitle:pg,getAccDescription:gg,setAccDescription:dg},renderer:{draw:(i,a,f,p)=>{var vt,X,pt;function w(U){return U==="top"?"hanging":"middle"}function m(U){return U==="left"?"start":"middle"}function b(U){return`translate(${U.x}, ${U.y}) rotate(${U.rotation||0})`}const E=Oe();Ut.debug(`Rendering quadrant chart -`+i);const _=E.securityLevel;let A;_==="sandbox"&&(A=yr("#i"+a));const B=yr(_==="sandbox"?A.nodes()[0].contentDocument.body:"body").select(`[id="${a}"]`),N=B.append("g").attr("class","main"),R=((vt=E.quadrantChart)==null?void 0:vt.chartWidth)||500,z=((X=E.quadrantChart)==null?void 0:X.chartHeight)||500;k0(B,z,R,((pt=E.quadrantChart)==null?void 0:pt.useMaxWidth)||!0),B.attr("viewBox","0 0 "+R+" "+z),p.db.setHeight(z),p.db.setWidth(R);const W=p.db.getQuadrantData(),et=N.append("g").attr("class","quadrants"),st=N.append("g").attr("class","border"),at=N.append("g").attr("class","data-points"),bt=N.append("g").attr("class","labels"),mt=N.append("g").attr("class","title");W.title&&mt.append("text").attr("x",0).attr("y",0).attr("fill",W.title.fill).attr("font-size",W.title.fontSize).attr("dominant-baseline",w(W.title.horizontalPos)).attr("text-anchor",m(W.title.verticalPos)).attr("transform",b(W.title)).text(W.title.text),W.borderLines&&st.selectAll("line").data(W.borderLines).enter().append("line").attr("x1",U=>U.x1).attr("y1",U=>U.y1).attr("x2",U=>U.x2).attr("y2",U=>U.y2).style("stroke",U=>U.strokeFill).style("stroke-width",U=>U.strokeWidth);const yt=et.selectAll("g.quadrant").data(W.quadrants).enter().append("g").attr("class","quadrant");yt.append("rect").attr("x",U=>U.x).attr("y",U=>U.y).attr("width",U=>U.width).attr("height",U=>U.height).attr("fill",U=>U.fill),yt.append("text").attr("x",0).attr("y",0).attr("fill",U=>U.text.fill).attr("font-size",U=>U.text.fontSize).attr("dominant-baseline",U=>w(U.text.horizontalPos)).attr("text-anchor",U=>m(U.text.verticalPos)).attr("transform",U=>b(U.text)).text(U=>U.text.text),bt.selectAll("g.label").data(W.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(U=>U.text).attr("fill",U=>U.fill).attr("font-size",U=>U.fontSize).attr("dominant-baseline",U=>w(U.horizontalPos)).attr("text-anchor",U=>m(U.verticalPos)).attr("transform",U=>b(U));const ut=at.selectAll("g.data-point").data(W.points).enter().append("g").attr("class","data-point");ut.append("circle").attr("cx",U=>U.x).attr("cy",U=>U.y).attr("r",U=>U.radius).attr("fill",U=>U.fill),ut.append("text").attr("x",0).attr("y",0).text(U=>U.text.text).attr("fill",U=>U.text.fill).attr("font-size",U=>U.text.fontSize).attr("dominant-baseline",U=>w(U.text.horizontalPos)).attr("text-anchor",U=>m(U.text.verticalPos)).attr("transform",U=>b(U.text))}},styles:()=>""}},Symbol.toStringTag,{value:"Module"}));var ogt=function(){var i=function(Ot,Bt,Et,Z){for(Et=Et||{},Z=Ot.length;Z--;Et[Ot[Z]]=Bt);return Et},a=[1,10,12,14,16,18,19,21,23],f=[2,6],p=[1,3],w=[1,5],m=[1,6],b=[1,7],E=[1,5,10,12,14,16,18,19,21,23,34,35,36],_=[1,25],A=[1,26],I=[1,28],B=[1,29],N=[1,30],R=[1,31],z=[1,32],W=[1,33],et=[1,34],st=[1,35],at=[1,36],bt=[1,37],mt=[1,43],yt=[1,42],ft=[1,47],ut=[1,50],vt=[1,10,12,14,16,18,19,21,23,34,35,36],X=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],pt=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],U=[1,64],Tt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(Bt,Et,Z,Ct,xt,Ht,Le){var Ft=Ht.length-1;switch(xt){case 5:Ct.setOrientation(Ht[Ft]);break;case 9:Ct.setDiagramTitle(Ht[Ft].text.trim());break;case 12:Ct.setLineData({text:"",type:"text"},Ht[Ft]);break;case 13:Ct.setLineData(Ht[Ft-1],Ht[Ft]);break;case 14:Ct.setBarData({text:"",type:"text"},Ht[Ft]);break;case 15:Ct.setBarData(Ht[Ft-1],Ht[Ft]);break;case 16:this.$=Ht[Ft].trim(),Ct.setAccTitle(this.$);break;case 17:case 18:this.$=Ht[Ft].trim(),Ct.setAccDescription(this.$);break;case 19:this.$=Ht[Ft-1];break;case 20:this.$=[Number(Ht[Ft-2]),...Ht[Ft]];break;case 21:this.$=[Number(Ht[Ft])];break;case 22:Ct.setXAxisTitle(Ht[Ft]);break;case 23:Ct.setXAxisTitle(Ht[Ft-1]);break;case 24:Ct.setXAxisTitle({type:"text",text:""});break;case 25:Ct.setXAxisBand(Ht[Ft]);break;case 26:Ct.setXAxisRangeData(Number(Ht[Ft-2]),Number(Ht[Ft]));break;case 27:this.$=Ht[Ft-1];break;case 28:this.$=[Ht[Ft-2],...Ht[Ft]];break;case 29:this.$=[Ht[Ft]];break;case 30:Ct.setYAxisTitle(Ht[Ft]);break;case 31:Ct.setYAxisTitle(Ht[Ft-1]);break;case 32:Ct.setYAxisTitle({type:"text",text:""});break;case 33:Ct.setYAxisRangeData(Number(Ht[Ft-2]),Number(Ht[Ft]));break;case 37:this.$={text:Ht[Ft],type:"text"};break;case 38:this.$={text:Ht[Ft],type:"text"};break;case 39:this.$={text:Ht[Ft],type:"markdown"};break;case 40:this.$=Ht[Ft];break;case 41:this.$=Ht[Ft-1]+""+Ht[Ft];break}},table:[i(a,f,{3:1,4:2,7:4,5:p,34:w,35:m,36:b}),{1:[3]},i(a,f,{4:2,7:4,3:8,5:p,34:w,35:m,36:b}),i(a,f,{4:2,7:4,6:9,3:10,5:p,8:[1,11],34:w,35:m,36:b}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(E,[2,34]),i(E,[2,35]),i(E,[2,36]),{1:[2,1]},i(a,f,{4:2,7:4,3:21,5:p,34:w,35:m,36:b}),{1:[2,3]},i(E,[2,5]),i(a,[2,7],{4:22,34:w,35:m,36:b}),{11:23,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},{11:39,13:38,24:mt,27:yt,29:40,30:41,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},{11:45,15:44,27:ft,33:46,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},{11:49,17:48,24:ut,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},{11:52,17:51,24:ut,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},{20:[1,53]},{22:[1,54]},i(vt,[2,18]),{1:[2,2]},i(vt,[2,8]),i(vt,[2,9]),i(X,[2,37],{40:55,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt}),i(X,[2,38]),i(X,[2,39]),i(pt,[2,40]),i(pt,[2,42]),i(pt,[2,43]),i(pt,[2,44]),i(pt,[2,45]),i(pt,[2,46]),i(pt,[2,47]),i(pt,[2,48]),i(pt,[2,49]),i(pt,[2,50]),i(pt,[2,51]),i(vt,[2,10]),i(vt,[2,22],{30:41,29:56,24:mt,27:yt}),i(vt,[2,24]),i(vt,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},i(vt,[2,11]),i(vt,[2,30],{33:60,27:ft}),i(vt,[2,32]),{31:[1,61]},i(vt,[2,12]),{17:62,24:ut},{25:63,27:U},i(vt,[2,14]),{17:65,24:ut},i(vt,[2,16]),i(vt,[2,17]),i(pt,[2,41]),i(vt,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},i(vt,[2,31]),{27:[1,69]},i(vt,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},i(vt,[2,15]),i(vt,[2,26]),i(vt,[2,27]),{11:59,32:72,37:24,38:_,39:A,40:27,41:I,42:B,43:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt},i(vt,[2,33]),i(vt,[2,19]),{25:73,27:U},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(Bt,Et){if(Et.recoverable)this.trace(Bt);else{var Z=new Error(Bt);throw Z.hash=Et,Z}},parse:function(Bt){var Et=this,Z=[0],Ct=[],xt=[null],Ht=[],Le=this.table,Ft="",gn=0,Se=0,me=2,Ve=1,Ye=Ht.slice.call(arguments,1),ce=Object.create(this.lexer),ke={yy:{}};for(var zt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,zt)&&(ke.yy[zt]=this.yy[zt]);ce.setInput(Bt,ke.yy),ke.yy.lexer=ce,ke.yy.parser=this,typeof ce.yylloc>"u"&&(ce.yylloc={});var re=ce.yylloc;Ht.push(re);var se=ce.options&&ce.options.ranges;typeof ke.yy.parseError=="function"?this.parseError=ke.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pe(){var Xn;return Xn=Ct.pop()||ce.lex()||Ve,typeof Xn!="number"&&(Xn instanceof Array&&(Ct=Xn,Xn=Ct.pop()),Xn=Et.symbols_[Xn]||Xn),Xn}for(var te,Me,de,on,ni={},Ks,ws,fo,Xi;;){if(Me=Z[Z.length-1],this.defaultActions[Me]?de=this.defaultActions[Me]:((te===null||typeof te>"u")&&(te=Pe()),de=Le[Me]&&Le[Me][te]),typeof de>"u"||!de.length||!de[0]){var Er="";Xi=[];for(Ks in Le[Me])this.terminals_[Ks]&&Ks>me&&Xi.push("'"+this.terminals_[Ks]+"'");ce.showPosition?Er="Parse error on line "+(gn+1)+`: -`+ce.showPosition()+` -Expecting `+Xi.join(", ")+", got '"+(this.terminals_[te]||te)+"'":Er="Parse error on line "+(gn+1)+": Unexpected "+(te==Ve?"end of input":"'"+(this.terminals_[te]||te)+"'"),this.parseError(Er,{text:ce.match,token:this.terminals_[te]||te,line:ce.yylineno,loc:re,expected:Xi})}if(de[0]instanceof Array&&de.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Me+", token: "+te);switch(de[0]){case 1:Z.push(te),xt.push(ce.yytext),Ht.push(ce.yylloc),Z.push(de[1]),te=null,Se=ce.yyleng,Ft=ce.yytext,gn=ce.yylineno,re=ce.yylloc;break;case 2:if(ws=this.productions_[de[1]][1],ni.$=xt[xt.length-ws],ni._$={first_line:Ht[Ht.length-(ws||1)].first_line,last_line:Ht[Ht.length-1].last_line,first_column:Ht[Ht.length-(ws||1)].first_column,last_column:Ht[Ht.length-1].last_column},se&&(ni._$.range=[Ht[Ht.length-(ws||1)].range[0],Ht[Ht.length-1].range[1]]),on=this.performAction.apply(ni,[Ft,Se,gn,ke.yy,de[1],xt,Ht].concat(Ye)),typeof on<"u")return on;ws&&(Z=Z.slice(0,-1*ws*2),xt=xt.slice(0,-1*ws),Ht=Ht.slice(0,-1*ws)),Z.push(this.productions_[de[1]][0]),xt.push(ni.$),Ht.push(ni._$),fo=Le[Z[Z.length-2]][Z[Z.length-1]],Z.push(fo);break;case 3:return!0}}return!0}},nt=function(){var Ot={EOF:1,parseError:function(Et,Z){if(this.yy.parser)this.yy.parser.parseError(Et,Z);else throw new Error(Et)},setInput:function(Bt,Et){return this.yy=Et||this.yy||{},this._input=Bt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Bt=this._input[0];this.yytext+=Bt,this.yyleng++,this.offset++,this.match+=Bt,this.matched+=Bt;var Et=Bt.match(/(?:\r\n?|\n).*/g);return Et?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Bt},unput:function(Bt){var Et=Bt.length,Z=Bt.split(/(?:\r\n?|\n)/g);this._input=Bt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Et),this.offset-=Et;var Ct=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Z.length-1&&(this.yylineno-=Z.length-1);var xt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Z?(Z.length===Ct.length?this.yylloc.first_column:0)+Ct[Ct.length-Z.length].length-Z[0].length:this.yylloc.first_column-Et},this.options.ranges&&(this.yylloc.range=[xt[0],xt[0]+this.yyleng-Et]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Bt){this.unput(this.match.slice(Bt))},pastInput:function(){var Bt=this.matched.substr(0,this.matched.length-this.match.length);return(Bt.length>20?"...":"")+Bt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Bt=this.match;return Bt.length<20&&(Bt+=this._input.substr(0,20-Bt.length)),(Bt.substr(0,20)+(Bt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Bt=this.pastInput(),Et=new Array(Bt.length+1).join("-");return Bt+this.upcomingInput()+` -`+Et+"^"},test_match:function(Bt,Et){var Z,Ct,xt;if(this.options.backtrack_lexer&&(xt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(xt.yylloc.range=this.yylloc.range.slice(0))),Ct=Bt[0].match(/(?:\r\n?|\n).*/g),Ct&&(this.yylineno+=Ct.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ct?Ct[Ct.length-1].length-Ct[Ct.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Bt[0].length},this.yytext+=Bt[0],this.match+=Bt[0],this.matches=Bt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Bt[0].length),this.matched+=Bt[0],Z=this.performAction.call(this,this.yy,this,Et,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Z)return Z;if(this._backtrack){for(var Ht in xt)this[Ht]=xt[Ht];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Bt,Et,Z,Ct;this._more||(this.yytext="",this.match="");for(var xt=this._currentRules(),Ht=0;HtEt[0].length)){if(Et=Z,Ct=Ht,this.options.backtrack_lexer){if(Bt=this.test_match(Z,xt[Ht]),Bt!==!1)return Bt;if(this._backtrack){Et=!1;continue}else return!1}else if(!this.options.flex)break}return Et?(Bt=this.test_match(Et,xt[Ct]),Bt!==!1?Bt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Et=this.next();return Et||this.lex()},begin:function(Et){this.conditionStack.push(Et)},popState:function(){var Et=this.conditionStack.length-1;return Et>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Et){return Et=this.conditionStack.length-1-Math.abs(Et||0),Et>=0?this.conditionStack[Et]:"INITIAL"},pushState:function(Et){this.begin(Et)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Et,Z,Ct,xt){switch(Ct){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return Ot}();Tt.lexer=nt;function It(){this.yy={}}return It.prototype=Tt,Tt.Parser=It,new It}();ogt.parser=ogt;const yHe=ogt;function oRt(i){return i.type==="bar"}function cRt(i){return i.type==="band"}function BF(i){return i.type==="linear"}class uRt{constructor(a){this.parentGroup=a}getMaxDimension(a,f){if(!this.parentGroup)return{width:a.reduce((m,b)=>Math.max(b.length,m),0)*f,height:f};const p={width:0,height:0},w=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",f);for(const m of a){const b=k$e(w,1,m),E=b?b.width:m.length*f,_=b?b.height:f;p.width=Math.max(p.width,E),p.height=Math.max(p.height,_)}return w.remove(),p}}const lRt=.7,hRt=.2;class fRt{constructor(a,f,p,w){this.axisConfig=a,this.title=f,this.textDimensionCalculator=p,this.axisThemeConfig=w,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(a){this.range=a,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=a[1]-a[0]:this.boundingRect.width=a[1]-a[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(a){this.axisPosition=a,this.setRange(this.range)}getTickDistance(){const a=this.getRange();return Math.abs(a[0]-a[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(a=>a.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){lRt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(lRt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(a){let f=a.height;if(this.axisConfig.showAxisLine&&f>this.axisConfig.axisLineWidth&&(f-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const p=this.getLabelDimension(),w=hRt*a.width;this.outerPadding=Math.min(p.width/2,w);const m=p.height+this.axisConfig.labelPadding*2;this.labelTextHeight=p.height,m<=f&&(f-=m,this.showLabel=!0)}if(this.axisConfig.showTick&&f>=this.axisConfig.tickLength&&(this.showTick=!0,f-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const p=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),w=p.height+this.axisConfig.titlePadding*2;this.titleTextHeight=p.height,w<=f&&(f-=w,this.showTitle=!0)}this.boundingRect.width=a.width,this.boundingRect.height=a.height-f}calculateSpaceIfDrawnVertical(a){let f=a.width;if(this.axisConfig.showAxisLine&&f>this.axisConfig.axisLineWidth&&(f-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const p=this.getLabelDimension(),w=hRt*a.height;this.outerPadding=Math.min(p.height/2,w);const m=p.width+this.axisConfig.labelPadding*2;m<=f&&(f-=m,this.showLabel=!0)}if(this.axisConfig.showTick&&f>=this.axisConfig.tickLength&&(this.showTick=!0,f-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const p=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),w=p.height+this.axisConfig.titlePadding*2;this.titleTextHeight=p.height,w<=f&&(f-=w,this.showTitle=!0)}this.boundingRect.width=a.width-f,this.boundingRect.height=a.height}calculateSpace(a){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(a):this.calculateSpaceIfDrawnHorizontally(a),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}getDrawableElementsForLeftAxis(){const a=[];if(this.showAxisLine){const f=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${f},${this.boundingRect.y} L ${f},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(f=>({text:f.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(f),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const f=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);a.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(p=>({path:`M ${f},${this.getScaleValue(p)} L ${f-this.axisConfig.tickLength},${this.getScaleValue(p)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElementsForBottomAxis(){const a=[];if(this.showAxisLine){const f=this.boundingRect.y+this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${f} L ${this.boundingRect.x+this.boundingRect.width},${f}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(f=>({text:f.toString(),x:this.getScaleValue(f),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const f=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);a.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(p=>({path:`M ${this.getScaleValue(p)},${f} L ${this.getScaleValue(p)},${f+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElementsForTopAxis(){const a=[];if(this.showAxisLine){const f=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${f} L ${this.boundingRect.x+this.boundingRect.width},${f}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(f=>({text:f.toString(),x:this.getScaleValue(f),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const f=this.boundingRect.y;a.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(p=>({path:`M ${this.getScaleValue(p)},${f+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(p)},${f+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class xHe extends fRt{constructor(a,f,p,w,m){super(a,w,m,f),this.categories=p,this.scale=S1t().domain(this.categories).range(this.getRange())}setRange(a){super.setRange(a)}recalculateScale(){this.scale=S1t().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Ut.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(a){return this.scale(a)||this.getRange()[0]}}class kHe extends fRt{constructor(a,f,p,w,m){super(a,w,m,f),this.domain=p,this.scale=AA().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const a=[...this.domain];this.axisPosition==="left"&&a.reverse(),this.scale=AA().domain(a).range(this.getRange())}getScaleValue(a){return this.scale(a)}}function dRt(i,a,f,p){const w=new uRt(p);return cRt(i)?new xHe(a,f,i.categories,i.title,w):new kHe(a,f,[i.min,i.max],i.title,w)}class EHe{constructor(a,f,p,w){this.textDimensionCalculator=a,this.chartConfig=f,this.chartData=p,this.chartThemeConfig=w,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}calculateSpace(a){const f=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),p=Math.max(f.width,a.width),w=f.height+2*this.chartConfig.titlePadding;return f.width<=p&&f.height<=w&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=p,this.boundingRect.height=w,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const a=[];return this.showChartTitle&&a.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),a}}function THe(i,a,f,p){const w=new uRt(p);return new EHe(w,i,a,f)}class CHe{constructor(a,f,p,w,m){this.plotData=a,this.xAxis=f,this.yAxis=p,this.orientation=w,this.plotIndex=m}getDrawableElement(){const a=this.plotData.data.map(p=>[this.xAxis.getScaleValue(p[0]),this.yAxis.getScaleValue(p[1])]);let f;return this.orientation==="horizontal"?f=E5().y(p=>p[0]).x(p=>p[1])(a):f=E5().x(p=>p[0]).y(p=>p[1])(a),f?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:f,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class _He{constructor(a,f,p,w,m,b){this.barData=a,this.boundingRect=f,this.xAxis=p,this.yAxis=w,this.orientation=m,this.plotIndex=b}getDrawableElement(){const a=this.barData.data.map(m=>[this.xAxis.getScaleValue(m[0]),this.yAxis.getScaleValue(m[1])]),f=.05,p=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-f),w=p/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:a.map(m=>({x:this.boundingRect.x,y:m[0]-w,height:p,width:m[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:a.map(m=>({x:m[0]-w,y:m[1],width:p,height:this.boundingRect.y+this.boundingRect.height-m[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class SHe{constructor(a,f,p){this.chartConfig=a,this.chartData=f,this.chartThemeConfig=p,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(a,f){this.xAxis=a,this.yAxis=f}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}calculateSpace(a){return this.boundingRect.width=a.width,this.boundingRect.height=a.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const a=[];for(const[f,p]of this.chartData.plots.entries())switch(p.type){case"line":{const w=new CHe(p,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,f);a.push(...w.getDrawableElement())}break;case"bar":{const w=new _He(p,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,f);a.push(...w.getDrawableElement())}break}return a}}function AHe(i,a,f){return new SHe(i,a,f)}class LHe{constructor(a,f,p,w){this.chartConfig=a,this.chartData=f,this.componentStore={title:THe(a,f,p,w),plot:AHe(a,f,p),xAxis:dRt(f.xAxis,a.xAxis,{titleColor:p.xAxisTitleColor,labelColor:p.xAxisLabelColor,tickColor:p.xAxisTickColor,axisLineColor:p.xAxisLineColor},w),yAxis:dRt(f.yAxis,a.yAxis,{titleColor:p.yAxisTitleColor,labelColor:p.yAxisLabelColor,tickColor:p.yAxisTickColor,axisLineColor:p.yAxisLineColor},w)}}calculateVerticalSpace(){let a=this.chartConfig.width,f=this.chartConfig.height,p=0,w=0,m=Math.floor(a*this.chartConfig.plotReservedSpacePercent/100),b=Math.floor(f*this.chartConfig.plotReservedSpacePercent/100),E=this.componentStore.plot.calculateSpace({width:m,height:b});a-=E.width,f-=E.height,E=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:f}),w=E.height,f-=E.height,this.componentStore.xAxis.setAxisPosition("bottom"),E=this.componentStore.xAxis.calculateSpace({width:a,height:f}),f-=E.height,this.componentStore.yAxis.setAxisPosition("left"),E=this.componentStore.yAxis.calculateSpace({width:a,height:f}),p=E.width,a-=E.width,a>0&&(m+=a,a=0),f>0&&(b+=f,f=0),this.componentStore.plot.calculateSpace({width:m,height:b}),this.componentStore.plot.setBoundingBoxXY({x:p,y:w}),this.componentStore.xAxis.setRange([p,p+m]),this.componentStore.xAxis.setBoundingBoxXY({x:p,y:w+b}),this.componentStore.yAxis.setRange([w,w+b]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:w}),this.chartData.plots.some(_=>oRt(_))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizonatalSpace(){let a=this.chartConfig.width,f=this.chartConfig.height,p=0,w=0,m=0,b=Math.floor(a*this.chartConfig.plotReservedSpacePercent/100),E=Math.floor(f*this.chartConfig.plotReservedSpacePercent/100),_=this.componentStore.plot.calculateSpace({width:b,height:E});a-=_.width,f-=_.height,_=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:f}),p=_.height,f-=_.height,this.componentStore.xAxis.setAxisPosition("left"),_=this.componentStore.xAxis.calculateSpace({width:a,height:f}),a-=_.width,w=_.width,this.componentStore.yAxis.setAxisPosition("top"),_=this.componentStore.yAxis.calculateSpace({width:a,height:f}),f-=_.height,m=p+_.height,a>0&&(b+=a,a=0),f>0&&(E+=f,f=0),this.componentStore.plot.calculateSpace({width:b,height:E}),this.componentStore.plot.setBoundingBoxXY({x:w,y:m}),this.componentStore.yAxis.setRange([w,w+b]),this.componentStore.yAxis.setBoundingBoxXY({x:w,y:p}),this.componentStore.xAxis.setRange([m,m+E]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:m}),this.chartData.plots.some(A=>oRt(A))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizonatalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const a=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const f of Object.values(this.componentStore))a.push(...f.getDrawableElements());return a}}class MHe{static build(a,f,p,w){return new LHe(a,f,p,w).getDrawableElement()}}let RF=0,gRt,jF=bRt(),$F=pRt(),fu=wRt(),cgt=$F.plotColorPalette.split(",").map(i=>i.trim()),BY=!1,ugt=!1;function pRt(){const i=X1t(),a=Fd();return rF(i.xyChart,a.themeVariables.xyChart)}function bRt(){const i=Fd();return rF(Zh.xyChart,i.xyChart)}function wRt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function lgt(i){const a=Fd();return Q1(i.trim(),a)}function DHe(i){gRt=i}function IHe(i){i==="horizontal"?jF.chartOrientation="horizontal":jF.chartOrientation="vertical"}function OHe(i){fu.xAxis.title=lgt(i.text)}function vRt(i,a){fu.xAxis={type:"linear",title:fu.xAxis.title,min:i,max:a},BY=!0}function PHe(i){fu.xAxis={type:"band",title:fu.xAxis.title,categories:i.map(a=>lgt(a.text))},BY=!0}function FHe(i){fu.yAxis.title=lgt(i.text)}function NHe(i,a){fu.yAxis={type:"linear",title:fu.yAxis.title,min:i,max:a},ugt=!0}function BHe(i){const a=Math.min(...i),f=Math.max(...i),p=BF(fu.yAxis)?fu.yAxis.min:1/0,w=BF(fu.yAxis)?fu.yAxis.max:-1/0;fu.yAxis={type:"linear",title:fu.yAxis.title,min:Math.min(p,a),max:Math.max(w,f)}}function mRt(i){let a=[];if(i.length===0)return a;if(!BY){const f=BF(fu.xAxis)?fu.xAxis.min:1/0,p=BF(fu.xAxis)?fu.xAxis.max:-1/0;vRt(Math.min(f,1),Math.max(p,i.length))}if(ugt||BHe(i),cRt(fu.xAxis)&&(a=fu.xAxis.categories.map((f,p)=>[f,i[p]])),BF(fu.xAxis)){const f=fu.xAxis.min,p=fu.xAxis.max,w=(p-f+1)/i.length,m=[];for(let b=f;b<=p;b+=w)m.push(`${b}`);a=m.map((b,E)=>[b,i[E]])}return a}function yRt(i){return cgt[i===0?0:i%cgt.length]}function RHe(i,a){const f=mRt(a);fu.plots.push({type:"line",strokeFill:yRt(RF),strokeWidth:2,data:f}),RF++}function jHe(i,a){const f=mRt(a);fu.plots.push({type:"bar",fill:yRt(RF),data:f}),RF++}function $He(){if(fu.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return fu.title=pg(),MHe.build(jF,fu,$F,gRt)}function zHe(){return $F}function qHe(){return jF}const HHe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:yHe,db:{getDrawableElem:$He,clear:function(){hg(),RF=0,jF=bRt(),fu=wRt(),$F=pRt(),cgt=$F.plotColorPalette.split(",").map(i=>i.trim()),BY=!1,ugt=!1},setAccTitle:E0,getAccTitle:fg,setDiagramTitle:Nb,getDiagramTitle:pg,getAccDescription:gg,setAccDescription:dg,setOrientation:IHe,setXAxisTitle:OHe,setXAxisRangeData:vRt,setXAxisBand:PHe,setYAxisTitle:FHe,setYAxisRangeData:NHe,setLineData:RHe,setBarData:jHe,setTmpSVGG:DHe,getChartThemeConfig:zHe,getChartConfig:qHe},renderer:{draw:(i,a,f,p)=>{const w=p.db,m=w.getChartThemeConfig(),b=w.getChartConfig();function E(et){return et==="top"?"text-before-edge":"middle"}function _(et){return et==="left"?"start":et==="right"?"end":"middle"}function A(et){return`translate(${et.x}, ${et.y}) rotate(${et.rotation||0})`}Ut.debug(`Rendering xychart chart -`+i);const I=VW(a),B=I.append("g").attr("class","main"),N=B.append("rect").attr("width",b.width).attr("height",b.height).attr("class","background");k0(I,b.height,b.width,!0),I.attr("viewBox",`0 0 ${b.width} ${b.height}`),N.attr("fill",m.backgroundColor),w.setTmpSVGG(I.append("g").attr("class","mermaid-tmp-group"));const R=w.getDrawableElem(),z={};function W(et){let st=B,at="";for(const[bt]of et.entries()){let mt=B;bt>0&&z[at]&&(mt=z[at]),at+=et[bt],st=z[at],st||(st=z[at]=mt.append("g").attr("class",et[bt]))}return st}for(const et of R){if(et.data.length===0)continue;const st=W(et.groupTexts);switch(et.type){case"rect":st.selectAll("rect").data(et.data).enter().append("rect").attr("x",at=>at.x).attr("y",at=>at.y).attr("width",at=>at.width).attr("height",at=>at.height).attr("fill",at=>at.fill).attr("stroke",at=>at.strokeFill).attr("stroke-width",at=>at.strokeWidth);break;case"text":st.selectAll("text").data(et.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",at=>at.fill).attr("font-size",at=>at.fontSize).attr("dominant-baseline",at=>E(at.verticalPos)).attr("text-anchor",at=>_(at.horizontalPos)).attr("transform",at=>A(at)).text(at=>at.text);break;case"path":st.selectAll("path").data(et.data).enter().append("path").attr("d",at=>at.path).attr("fill",at=>at.fill?at.fill:"none").attr("stroke",at=>at.strokeFill).attr("stroke-width",at=>at.strokeWidth);break}}}}}},Symbol.toStringTag,{value:"Module"}));var hgt=function(){var i=function(Se,me,Ve,Ye){for(Ve=Ve||{},Ye=Se.length;Ye--;Ve[Se[Ye]]=me);return Ve},a=[1,3],f=[1,4],p=[1,5],w=[1,6],m=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],b=[1,18],E=[2,7],_=[1,22],A=[1,23],I=[1,24],B=[1,25],N=[1,26],R=[1,27],z=[1,20],W=[1,28],et=[1,29],st=[62,63],at=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],bt=[1,47],mt=[1,48],yt=[1,49],ft=[1,50],ut=[1,51],vt=[1,52],X=[1,53],pt=[53,54],U=[1,64],Tt=[1,60],nt=[1,61],It=[1,62],Ot=[1,63],Bt=[1,65],Et=[1,69],Z=[1,70],Ct=[1,67],xt=[1,68],Ht=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],Le={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(me,Ve,Ye,ce,ke,zt,re){var se=zt.length-1;switch(ke){case 4:this.$=zt[se].trim(),ce.setAccTitle(this.$);break;case 5:case 6:this.$=zt[se].trim(),ce.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:ce.addRequirement(zt[se-3],zt[se-4]);break;case 14:ce.setNewReqId(zt[se-2]);break;case 15:ce.setNewReqText(zt[se-2]);break;case 16:ce.setNewReqRisk(zt[se-2]);break;case 17:ce.setNewReqVerifyMethod(zt[se-2]);break;case 20:this.$=ce.RequirementType.REQUIREMENT;break;case 21:this.$=ce.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=ce.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=ce.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=ce.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=ce.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=ce.RiskLevel.LOW_RISK;break;case 27:this.$=ce.RiskLevel.MED_RISK;break;case 28:this.$=ce.RiskLevel.HIGH_RISK;break;case 29:this.$=ce.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=ce.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=ce.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=ce.VerifyType.VERIFY_TEST;break;case 33:ce.addElement(zt[se-3]);break;case 34:ce.setNewElementType(zt[se-2]);break;case 35:ce.setNewElementDocRef(zt[se-2]);break;case 38:ce.addRelationship(zt[se-2],zt[se],zt[se-4]);break;case 39:ce.addRelationship(zt[se-2],zt[se-4],zt[se]);break;case 40:this.$=ce.Relationships.CONTAINS;break;case 41:this.$=ce.Relationships.COPIES;break;case 42:this.$=ce.Relationships.DERIVES;break;case 43:this.$=ce.Relationships.SATISFIES;break;case 44:this.$=ce.Relationships.VERIFIES;break;case 45:this.$=ce.Relationships.REFINES;break;case 46:this.$=ce.Relationships.TRACES;break}},table:[{3:1,4:2,6:a,9:f,11:p,13:w},{1:[3]},{3:8,4:2,5:[1,7],6:a,9:f,11:p,13:w},{5:[1,9]},{10:[1,10]},{12:[1,11]},i(m,[2,6]),{3:12,4:2,6:a,9:f,11:p,13:w},{1:[2,2]},{4:17,5:b,7:13,8:E,9:f,11:p,13:w,14:14,15:15,16:16,17:19,23:21,31:_,32:A,33:I,34:B,35:N,36:R,44:z,62:W,63:et},i(m,[2,4]),i(m,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:b,7:31,8:E,9:f,11:p,13:w,14:14,15:15,16:16,17:19,23:21,31:_,32:A,33:I,34:B,35:N,36:R,44:z,62:W,63:et},{4:17,5:b,7:32,8:E,9:f,11:p,13:w,14:14,15:15,16:16,17:19,23:21,31:_,32:A,33:I,34:B,35:N,36:R,44:z,62:W,63:et},{4:17,5:b,7:33,8:E,9:f,11:p,13:w,14:14,15:15,16:16,17:19,23:21,31:_,32:A,33:I,34:B,35:N,36:R,44:z,62:W,63:et},{4:17,5:b,7:34,8:E,9:f,11:p,13:w,14:14,15:15,16:16,17:19,23:21,31:_,32:A,33:I,34:B,35:N,36:R,44:z,62:W,63:et},{4:17,5:b,7:35,8:E,9:f,11:p,13:w,14:14,15:15,16:16,17:19,23:21,31:_,32:A,33:I,34:B,35:N,36:R,44:z,62:W,63:et},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},i(st,[2,20]),i(st,[2,21]),i(st,[2,22]),i(st,[2,23]),i(st,[2,24]),i(st,[2,25]),i(at,[2,49]),i(at,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:bt,56:mt,57:yt,58:ft,59:ut,60:vt,61:X},{52:54,55:bt,56:mt,57:yt,58:ft,59:ut,60:vt,61:X},{5:[1,55]},{5:[1,56]},{53:[1,57]},i(pt,[2,40]),i(pt,[2,41]),i(pt,[2,42]),i(pt,[2,43]),i(pt,[2,44]),i(pt,[2,45]),i(pt,[2,46]),{54:[1,58]},{5:U,20:59,21:Tt,24:nt,26:It,28:Ot,30:Bt},{5:Et,30:Z,46:66,47:Ct,49:xt},{23:71,62:W,63:et},{23:72,62:W,63:et},i(Ht,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:U,20:77,21:Tt,24:nt,26:It,28:Ot,30:Bt},i(Ht,[2,19]),i(Ht,[2,33]),{22:[1,78]},{22:[1,79]},{5:Et,30:Z,46:80,47:Ct,49:xt},i(Ht,[2,37]),i(Ht,[2,38]),i(Ht,[2,39]),{23:81,62:W,63:et},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},i(Ht,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},i(Ht,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:U,20:106,21:Tt,24:nt,26:It,28:Ot,30:Bt},{5:U,20:107,21:Tt,24:nt,26:It,28:Ot,30:Bt},{5:U,20:108,21:Tt,24:nt,26:It,28:Ot,30:Bt},{5:U,20:109,21:Tt,24:nt,26:It,28:Ot,30:Bt},{5:Et,30:Z,46:110,47:Ct,49:xt},{5:Et,30:Z,46:111,47:Ct,49:xt},i(Ht,[2,14]),i(Ht,[2,15]),i(Ht,[2,16]),i(Ht,[2,17]),i(Ht,[2,34]),i(Ht,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(me,Ve){if(Ve.recoverable)this.trace(me);else{var Ye=new Error(me);throw Ye.hash=Ve,Ye}},parse:function(me){var Ve=this,Ye=[0],ce=[],ke=[null],zt=[],re=this.table,se="",Pe=0,te=0,Me=2,de=1,on=zt.slice.call(arguments,1),ni=Object.create(this.lexer),Ks={yy:{}};for(var ws in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ws)&&(Ks.yy[ws]=this.yy[ws]);ni.setInput(me,Ks.yy),Ks.yy.lexer=ni,Ks.yy.parser=this,typeof ni.yylloc>"u"&&(ni.yylloc={});var fo=ni.yylloc;zt.push(fo);var Xi=ni.options&&ni.options.ranges;typeof Ks.yy.parseError=="function"?this.parseError=Ks.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Er(){var Gs;return Gs=ce.pop()||ni.lex()||de,typeof Gs!="number"&&(Gs instanceof Array&&(ce=Gs,Gs=ce.pop()),Gs=Ve.symbols_[Gs]||Gs),Gs}for(var Xn,di,Ee,Kn,He={},Ti,pn,Es,qa;;){if(di=Ye[Ye.length-1],this.defaultActions[di]?Ee=this.defaultActions[di]:((Xn===null||typeof Xn>"u")&&(Xn=Er()),Ee=re[di]&&re[di][Xn]),typeof Ee>"u"||!Ee.length||!Ee[0]){var Ma="";qa=[];for(Ti in re[di])this.terminals_[Ti]&&Ti>Me&&qa.push("'"+this.terminals_[Ti]+"'");ni.showPosition?Ma="Parse error on line "+(Pe+1)+`: -`+ni.showPosition()+` -Expecting `+qa.join(", ")+", got '"+(this.terminals_[Xn]||Xn)+"'":Ma="Parse error on line "+(Pe+1)+": Unexpected "+(Xn==de?"end of input":"'"+(this.terminals_[Xn]||Xn)+"'"),this.parseError(Ma,{text:ni.match,token:this.terminals_[Xn]||Xn,line:ni.yylineno,loc:fo,expected:qa})}if(Ee[0]instanceof Array&&Ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+di+", token: "+Xn);switch(Ee[0]){case 1:Ye.push(Xn),ke.push(ni.yytext),zt.push(ni.yylloc),Ye.push(Ee[1]),Xn=null,te=ni.yyleng,se=ni.yytext,Pe=ni.yylineno,fo=ni.yylloc;break;case 2:if(pn=this.productions_[Ee[1]][1],He.$=ke[ke.length-pn],He._$={first_line:zt[zt.length-(pn||1)].first_line,last_line:zt[zt.length-1].last_line,first_column:zt[zt.length-(pn||1)].first_column,last_column:zt[zt.length-1].last_column},Xi&&(He._$.range=[zt[zt.length-(pn||1)].range[0],zt[zt.length-1].range[1]]),Kn=this.performAction.apply(He,[se,te,Pe,Ks.yy,Ee[1],ke,zt].concat(on)),typeof Kn<"u")return Kn;pn&&(Ye=Ye.slice(0,-1*pn*2),ke=ke.slice(0,-1*pn),zt=zt.slice(0,-1*pn)),Ye.push(this.productions_[Ee[1]][0]),ke.push(He.$),zt.push(He._$),Es=re[Ye[Ye.length-2]][Ye[Ye.length-1]],Ye.push(Es);break;case 3:return!0}}return!0}},Ft=function(){var Se={EOF:1,parseError:function(Ve,Ye){if(this.yy.parser)this.yy.parser.parseError(Ve,Ye);else throw new Error(Ve)},setInput:function(me,Ve){return this.yy=Ve||this.yy||{},this._input=me,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var me=this._input[0];this.yytext+=me,this.yyleng++,this.offset++,this.match+=me,this.matched+=me;var Ve=me.match(/(?:\r\n?|\n).*/g);return Ve?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),me},unput:function(me){var Ve=me.length,Ye=me.split(/(?:\r\n?|\n)/g);this._input=me+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ve),this.offset-=Ve;var ce=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ye.length-1&&(this.yylineno-=Ye.length-1);var ke=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ye?(Ye.length===ce.length?this.yylloc.first_column:0)+ce[ce.length-Ye.length].length-Ye[0].length:this.yylloc.first_column-Ve},this.options.ranges&&(this.yylloc.range=[ke[0],ke[0]+this.yyleng-Ve]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(me){this.unput(this.match.slice(me))},pastInput:function(){var me=this.matched.substr(0,this.matched.length-this.match.length);return(me.length>20?"...":"")+me.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var me=this.match;return me.length<20&&(me+=this._input.substr(0,20-me.length)),(me.substr(0,20)+(me.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var me=this.pastInput(),Ve=new Array(me.length+1).join("-");return me+this.upcomingInput()+` -`+Ve+"^"},test_match:function(me,Ve){var Ye,ce,ke;if(this.options.backtrack_lexer&&(ke={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ke.yylloc.range=this.yylloc.range.slice(0))),ce=me[0].match(/(?:\r\n?|\n).*/g),ce&&(this.yylineno+=ce.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ce?ce[ce.length-1].length-ce[ce.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+me[0].length},this.yytext+=me[0],this.match+=me[0],this.matches=me,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(me[0].length),this.matched+=me[0],Ye=this.performAction.call(this,this.yy,this,Ve,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ye)return Ye;if(this._backtrack){for(var zt in ke)this[zt]=ke[zt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var me,Ve,Ye,ce;this._more||(this.yytext="",this.match="");for(var ke=this._currentRules(),zt=0;ztVe[0].length)){if(Ve=Ye,ce=zt,this.options.backtrack_lexer){if(me=this.test_match(Ye,ke[zt]),me!==!1)return me;if(this._backtrack){Ve=!1;continue}else return!1}else if(!this.options.flex)break}return Ve?(me=this.test_match(Ve,ke[ce]),me!==!1?me:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ve=this.next();return Ve||this.lex()},begin:function(Ve){this.conditionStack.push(Ve)},popState:function(){var Ve=this.conditionStack.length-1;return Ve>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ve){return Ve=this.conditionStack.length-1-Math.abs(Ve||0),Ve>=0?this.conditionStack[Ve]:"INITIAL"},pushState:function(Ve){this.begin(Ve)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ve,Ye,ce,ke){switch(ce){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return Ye.yytext=Ye.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return Se}();Le.lexer=Ft;function gn(){this.yy={}}return gn.prototype=Le,Le.Parser=gn,new gn}();hgt.parser=hgt;const VHe=hgt;let fgt=[],wp={},zF={},yk={},qF={};const GHe={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},getConfig:()=>Oe().req,addRequirement:(i,a)=>(zF[i]===void 0&&(zF[i]={name:i,type:a,id:wp.id,text:wp.text,risk:wp.risk,verifyMethod:wp.verifyMethod}),wp={},zF[i]),getRequirements:()=>zF,setNewReqId:i=>{wp!==void 0&&(wp.id=i)},setNewReqText:i=>{wp!==void 0&&(wp.text=i)},setNewReqRisk:i=>{wp!==void 0&&(wp.risk=i)},setNewReqVerifyMethod:i=>{wp!==void 0&&(wp.verifyMethod=i)},setAccTitle:E0,getAccTitle:fg,setAccDescription:dg,getAccDescription:gg,addElement:i=>(qF[i]===void 0&&(qF[i]={name:i,type:yk.type,docRef:yk.docRef},Ut.info("Added new requirement: ",i)),yk={},qF[i]),getElements:()=>qF,setNewElementType:i=>{yk!==void 0&&(yk.type=i)},setNewElementDocRef:i=>{yk!==void 0&&(yk.docRef=i)},addRelationship:(i,a,f)=>{fgt.push({type:i,src:a,dst:f})},getRelationships:()=>fgt,clear:()=>{fgt=[],wp={},zF={},yk={},qF={},hg()}},UHe=i=>` - - marker { - fill: ${i.relationColor}; - stroke: ${i.relationColor}; - } - - marker.cross { - stroke: ${i.lineColor}; - } - - svg { - font-family: ${i.fontFamily}; - font-size: ${i.fontSize}; - } - - .reqBox { - fill: ${i.requirementBackground}; - fill-opacity: 1.0; - stroke: ${i.requirementBorderColor}; - stroke-width: ${i.requirementBorderSize}; - } - - .reqTitle, .reqLabel{ - fill: ${i.requirementTextColor}; - } - .reqLabelBox { - fill: ${i.relationLabelBackground}; - fill-opacity: 1.0; - } - - .req-title-line { - stroke: ${i.requirementBorderColor}; - stroke-width: ${i.requirementBorderSize}; - } - .relationshipLine { - stroke: ${i.relationColor}; - stroke-width: 1; - } - .relationshipLabel { - fill: ${i.relationLabelColor}; - } - -`,dgt={CONTAINS:"contains",ARROW:"arrow"},xRt={ReqMarkers:dgt,insertLineEndings:(i,a)=>{let f=i.append("defs").append("marker").attr("id",dgt.CONTAINS+"_line_ending").attr("refX",0).attr("refY",a.line_height/2).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("g");f.append("circle").attr("cx",a.line_height/2).attr("cy",a.line_height/2).attr("r",a.line_height/2).attr("fill","none"),f.append("line").attr("x1",0).attr("x2",a.line_height).attr("y1",a.line_height/2).attr("y2",a.line_height/2).attr("stroke-width",1),f.append("line").attr("y1",0).attr("y2",a.line_height).attr("x1",a.line_height/2).attr("x2",a.line_height/2).attr("stroke-width",1),i.append("defs").append("marker").attr("id",dgt.ARROW+"_line_ending").attr("refX",a.line_height).attr("refY",.5*a.line_height).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("path").attr("d",`M0,0 - L${a.line_height},${a.line_height/2} - M${a.line_height},${a.line_height/2} - L0,${a.line_height}`).attr("stroke-width",1)}};let Eh={},kRt=0;const ERt=(i,a)=>i.insert("rect","#"+a).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Eh.rect_min_width+"px").attr("height",Eh.rect_min_height+"px"),TRt=(i,a,f)=>{let p=Eh.rect_min_width/2,w=i.append("text").attr("class","req reqLabel reqTitle").attr("id",a).attr("x",p).attr("y",Eh.rect_padding).attr("dominant-baseline","hanging"),m=0;f.forEach(A=>{m==0?w.append("tspan").attr("text-anchor","middle").attr("x",Eh.rect_min_width/2).attr("dy",0).text(A):w.append("tspan").attr("text-anchor","middle").attr("x",Eh.rect_min_width/2).attr("dy",Eh.line_height*.75).text(A),m++});let b=1.5*Eh.rect_padding,E=m*Eh.line_height*.75,_=b+E;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Eh.rect_min_width).attr("y1",_).attr("y2",_),{titleNode:w,y:_}},CRt=(i,a,f,p)=>{let w=i.append("text").attr("class","req reqLabel").attr("id",a).attr("x",Eh.rect_padding).attr("y",p).attr("dominant-baseline","hanging"),m=0;const b=30;let E=[];return f.forEach(_=>{let A=_.length;for(;A>b&&m<3;){let I=_.substring(0,b);_=_.substring(b,_.length),A=_.length,E[E.length]=I,m++}if(m==3){let I=E[E.length-1];E[E.length-1]=I.substring(0,I.length-4)+"..."}else E[E.length]=_;m=0}),E.forEach(_=>{w.append("tspan").attr("x",Eh.rect_padding).attr("dy",Eh.line_height).text(_)}),w},WHe=(i,a,f,p)=>{const w=a.node().getTotalLength(),m=a.node().getPointAtLength(w*.5),b="rel"+kRt;kRt++;const _=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",m.x).attr("y",m.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(p).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",m.x-_.width/2).attr("y",m.y-_.height/2).attr("width",_.width).attr("height",_.height).attr("fill","white").attr("fill-opacity","85%")},YHe=function(i,a,f,p,w){const m=f.edge(fL(a.src),fL(a.dst)),b=E5().x(function(_){return _.x}).y(function(_){return _.y}),E=i.insert("path","#"+p).attr("class","er relationshipLine").attr("d",b(m.points)).attr("fill","none");a.type==w.db.Relationships.CONTAINS?E.attr("marker-start","url("+Kr.getUrl(Eh.arrowMarkerAbsolute)+"#"+a.type+"_line_ending)"):(E.attr("stroke-dasharray","10,7"),E.attr("marker-end","url("+Kr.getUrl(Eh.arrowMarkerAbsolute)+"#"+xRt.ReqMarkers.ARROW+"_line_ending)")),WHe(i,E,Eh,`<<${a.type}>>`)},KHe=(i,a,f)=>{Object.keys(i).forEach(p=>{let w=i[p];p=fL(p),Ut.info("Added new requirement: ",p);const m=f.append("g").attr("id",p),b="req-"+p,E=ERt(m,b);let _=TRt(m,p+"_title",[`<<${w.type}>>`,`${w.name}`]);CRt(m,p+"_body",[`Id: ${w.id}`,`Text: ${w.text}`,`Risk: ${w.risk}`,`Verification: ${w.verifyMethod}`],_.y);const A=E.node().getBBox();a.setNode(p,{width:A.width,height:A.height,shape:"rect",id:p})})},XHe=(i,a,f)=>{Object.keys(i).forEach(p=>{let w=i[p];const m=fL(p),b=f.append("g").attr("id",m),E="element-"+m,_=ERt(b,E);let A=TRt(b,E+"_title",["<>",`${p}`]);CRt(b,E+"_body",[`Type: ${w.type||"Not Specified"}`,`Doc Ref: ${w.docRef||"None"}`],A.y);const I=_.node().getBBox();a.setNode(m,{width:I.width,height:I.height,shape:"rect",id:m})})},QHe=(i,a)=>(i.forEach(function(f){let p=fL(f.src),w=fL(f.dst);a.setEdge(p,w,{relationship:f})}),i),ZHe=function(i,a){a.nodes().forEach(function(f){f!==void 0&&a.node(f)!==void 0&&(i.select("#"+f),i.select("#"+f).attr("transform","translate("+(a.node(f).x-a.node(f).width/2)+","+(a.node(f).y-a.node(f).height/2)+" )"))})},fL=i=>i.replace(/\s/g,"").replace(/\./g,"_"),JHe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:VHe,db:GHe,renderer:{draw:(i,a,f,p)=>{Eh=Oe().requirement;const w=Eh.securityLevel;let m;w==="sandbox"&&(m=yr("#i"+a));const E=yr(w==="sandbox"?m.nodes()[0].contentDocument.body:"body").select(`[id='${a}']`);xRt.insertLineEndings(E,Eh);const _=new c1({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Eh.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let A=p.db.getRequirements(),I=p.db.getElements(),B=p.db.getRelationships();KHe(A,_,E),XHe(I,_,E),QHe(B,_),aL(_),ZHe(E,_),B.forEach(function(et){YHe(E,et,_,a,p)});const N=Eh.rect_padding,R=E.node().getBBox(),z=R.width+N*2,W=R.height+N*2;k0(E,W,z,Eh.useMaxWidth),E.attr("viewBox",`${R.x-N} ${R.y-N} ${z} ${W}`)}},styles:UHe}},Symbol.toStringTag,{value:"Module"}));var ggt=function(){var i=function(ce,ke,zt,re){for(zt=zt||{},re=ce.length;re--;zt[ce[re]]=ke);return zt},a=[1,2],f=[1,3],p=[1,4],w=[2,4],m=[1,9],b=[1,11],E=[1,13],_=[1,14],A=[1,16],I=[1,17],B=[1,18],N=[1,24],R=[1,25],z=[1,26],W=[1,27],et=[1,28],st=[1,29],at=[1,30],bt=[1,31],mt=[1,32],yt=[1,33],ft=[1,34],ut=[1,35],vt=[1,36],X=[1,37],pt=[1,38],U=[1,39],Tt=[1,41],nt=[1,42],It=[1,43],Ot=[1,44],Bt=[1,45],Et=[1,46],Z=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],Ct=[4,5,16,50,52,53],xt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Ht=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],Le=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Ft=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],gn=[68,69,70],Se=[1,120],me={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(ke,zt,re,se,Pe,te,Me){var de=te.length-1;switch(Pe){case 3:return se.apply(te[de]),te[de];case 4:case 9:this.$=[];break;case 5:case 10:te[de-1].push(te[de]),this.$=te[de-1];break;case 6:case 7:case 11:case 12:this.$=te[de];break;case 8:case 13:this.$=[];break;case 15:te[de].type="createParticipant",this.$=te[de];break;case 16:te[de-1].unshift({type:"boxStart",boxData:se.parseBoxData(te[de-2])}),te[de-1].push({type:"boxEnd",boxText:te[de-2]}),this.$=te[de-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(te[de-2]),sequenceIndexStep:Number(te[de-1]),sequenceVisible:!0,signalType:se.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(te[de-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:se.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:se.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:se.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:se.LINETYPE.ACTIVE_START,actor:te[de-1]};break;case 23:this.$={type:"activeEnd",signalType:se.LINETYPE.ACTIVE_END,actor:te[de-1]};break;case 29:se.setDiagramTitle(te[de].substring(6)),this.$=te[de].substring(6);break;case 30:se.setDiagramTitle(te[de].substring(7)),this.$=te[de].substring(7);break;case 31:this.$=te[de].trim(),se.setAccTitle(this.$);break;case 32:case 33:this.$=te[de].trim(),se.setAccDescription(this.$);break;case 34:te[de-1].unshift({type:"loopStart",loopText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.LOOP_START}),te[de-1].push({type:"loopEnd",loopText:te[de-2],signalType:se.LINETYPE.LOOP_END}),this.$=te[de-1];break;case 35:te[de-1].unshift({type:"rectStart",color:se.parseMessage(te[de-2]),signalType:se.LINETYPE.RECT_START}),te[de-1].push({type:"rectEnd",color:se.parseMessage(te[de-2]),signalType:se.LINETYPE.RECT_END}),this.$=te[de-1];break;case 36:te[de-1].unshift({type:"optStart",optText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.OPT_START}),te[de-1].push({type:"optEnd",optText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.OPT_END}),this.$=te[de-1];break;case 37:te[de-1].unshift({type:"altStart",altText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.ALT_START}),te[de-1].push({type:"altEnd",signalType:se.LINETYPE.ALT_END}),this.$=te[de-1];break;case 38:te[de-1].unshift({type:"parStart",parText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.PAR_START}),te[de-1].push({type:"parEnd",signalType:se.LINETYPE.PAR_END}),this.$=te[de-1];break;case 39:te[de-1].unshift({type:"parStart",parText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.PAR_OVER_START}),te[de-1].push({type:"parEnd",signalType:se.LINETYPE.PAR_END}),this.$=te[de-1];break;case 40:te[de-1].unshift({type:"criticalStart",criticalText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.CRITICAL_START}),te[de-1].push({type:"criticalEnd",signalType:se.LINETYPE.CRITICAL_END}),this.$=te[de-1];break;case 41:te[de-1].unshift({type:"breakStart",breakText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.BREAK_START}),te[de-1].push({type:"breakEnd",optText:se.parseMessage(te[de-2]),signalType:se.LINETYPE.BREAK_END}),this.$=te[de-1];break;case 43:this.$=te[de-3].concat([{type:"option",optionText:se.parseMessage(te[de-1]),signalType:se.LINETYPE.CRITICAL_OPTION},te[de]]);break;case 45:this.$=te[de-3].concat([{type:"and",parText:se.parseMessage(te[de-1]),signalType:se.LINETYPE.PAR_AND},te[de]]);break;case 47:this.$=te[de-3].concat([{type:"else",altText:se.parseMessage(te[de-1]),signalType:se.LINETYPE.ALT_ELSE},te[de]]);break;case 48:te[de-3].draw="participant",te[de-3].type="addParticipant",te[de-3].description=se.parseMessage(te[de-1]),this.$=te[de-3];break;case 49:te[de-1].draw="participant",te[de-1].type="addParticipant",this.$=te[de-1];break;case 50:te[de-3].draw="actor",te[de-3].type="addParticipant",te[de-3].description=se.parseMessage(te[de-1]),this.$=te[de-3];break;case 51:te[de-1].draw="actor",te[de-1].type="addParticipant",this.$=te[de-1];break;case 52:te[de-1].type="destroyParticipant",this.$=te[de-1];break;case 53:this.$=[te[de-1],{type:"addNote",placement:te[de-2],actor:te[de-1].actor,text:te[de]}];break;case 54:te[de-2]=[].concat(te[de-1],te[de-1]).slice(0,2),te[de-2][0]=te[de-2][0].actor,te[de-2][1]=te[de-2][1].actor,this.$=[te[de-1],{type:"addNote",placement:se.PLACEMENT.OVER,actor:te[de-2].slice(0,2),text:te[de]}];break;case 55:this.$=[te[de-1],{type:"addLinks",actor:te[de-1].actor,text:te[de]}];break;case 56:this.$=[te[de-1],{type:"addALink",actor:te[de-1].actor,text:te[de]}];break;case 57:this.$=[te[de-1],{type:"addProperties",actor:te[de-1].actor,text:te[de]}];break;case 58:this.$=[te[de-1],{type:"addDetails",actor:te[de-1].actor,text:te[de]}];break;case 61:this.$=[te[de-2],te[de]];break;case 62:this.$=te[de];break;case 63:this.$=se.PLACEMENT.LEFTOF;break;case 64:this.$=se.PLACEMENT.RIGHTOF;break;case 65:this.$=[te[de-4],te[de-1],{type:"addMessage",from:te[de-4].actor,to:te[de-1].actor,signalType:te[de-3],msg:te[de],activate:!0},{type:"activeStart",signalType:se.LINETYPE.ACTIVE_START,actor:te[de-1]}];break;case 66:this.$=[te[de-4],te[de-1],{type:"addMessage",from:te[de-4].actor,to:te[de-1].actor,signalType:te[de-3],msg:te[de]},{type:"activeEnd",signalType:se.LINETYPE.ACTIVE_END,actor:te[de-4]}];break;case 67:this.$=[te[de-3],te[de-1],{type:"addMessage",from:te[de-3].actor,to:te[de-1].actor,signalType:te[de-2],msg:te[de]}];break;case 68:this.$={type:"addParticipant",actor:te[de]};break;case 69:this.$=se.LINETYPE.SOLID_OPEN;break;case 70:this.$=se.LINETYPE.DOTTED_OPEN;break;case 71:this.$=se.LINETYPE.SOLID;break;case 72:this.$=se.LINETYPE.DOTTED;break;case 73:this.$=se.LINETYPE.SOLID_CROSS;break;case 74:this.$=se.LINETYPE.DOTTED_CROSS;break;case 75:this.$=se.LINETYPE.SOLID_POINT;break;case 76:this.$=se.LINETYPE.DOTTED_POINT;break;case 77:this.$=se.parseMessage(te[de].trim().substring(1));break}},table:[{3:1,4:a,5:f,6:p},{1:[3]},{3:5,4:a,5:f,6:p},{3:6,4:a,5:f,6:p},i([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],w,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:m,5:b,8:8,9:10,12:12,13:E,14:_,17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},i(Z,[2,5]),{9:47,12:12,13:E,14:_,17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},i(Z,[2,7]),i(Z,[2,8]),i(Z,[2,14]),{12:48,50:X,52:pt,53:U},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:Et},{22:55,70:Et},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},i(Z,[2,29]),i(Z,[2,30]),{32:[1,61]},{34:[1,62]},i(Z,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:Et},{22:72,70:Et},{22:73,70:Et},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:Et},{22:88,70:Et},{22:89,70:Et},{22:90,70:Et},i([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),i(Z,[2,6]),i(Z,[2,15]),i(Ct,[2,9],{10:91}),i(Z,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},i(Z,[2,21]),{5:[1,95]},{5:[1,96]},i(Z,[2,24]),i(Z,[2,25]),i(Z,[2,26]),i(Z,[2,27]),i(Z,[2,28]),i(Z,[2,31]),i(Z,[2,32]),i(xt,w,{7:97}),i(xt,w,{7:98}),i(xt,w,{7:99}),i(Ht,w,{40:100,7:101}),i(Le,w,{42:102,7:103}),i(Le,w,{7:103,42:104}),i(Ft,w,{45:105,7:106}),i(xt,w,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:Et},i(gn,[2,69]),i(gn,[2,70]),i(gn,[2,71]),i(gn,[2,72]),i(gn,[2,73]),i(gn,[2,74]),i(gn,[2,75]),i(gn,[2,76]),{22:116,70:Et},{22:118,58:117,70:Et},{70:[2,63]},{70:[2,64]},{56:119,79:Se},{56:121,79:Se},{56:122,79:Se},{56:123,79:Se},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:X,52:pt,53:U},{5:[1,129]},i(Z,[2,19]),i(Z,[2,20]),i(Z,[2,22]),i(Z,[2,23]),{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[1,130],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[1,131],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[1,132],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{16:[1,133]},{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[2,46],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,49:[1,134],50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{16:[1,135]},{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[2,44],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,48:[1,136],50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{16:[1,137]},{16:[1,138]},{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[2,42],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,47:[1,139],50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{4:m,5:b,8:8,9:10,12:12,13:E,14:_,16:[1,140],17:15,18:A,21:I,22:40,23:B,24:19,25:20,26:21,27:22,28:23,29:N,30:R,31:z,33:W,35:et,36:st,37:at,38:bt,39:mt,41:yt,43:ft,44:ut,46:vt,50:X,52:pt,53:U,54:Tt,59:nt,60:It,61:Ot,62:Bt,70:Et},{15:[1,141]},i(Z,[2,49]),{15:[1,142]},i(Z,[2,51]),i(Z,[2,52]),{22:143,70:Et},{22:144,70:Et},{56:145,79:Se},{56:146,79:Se},{56:147,79:Se},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},i(Z,[2,16]),i(Ct,[2,10]),{12:149,50:X,52:pt,53:U},i(Ct,[2,12]),i(Ct,[2,13]),i(Z,[2,18]),i(Z,[2,34]),i(Z,[2,35]),i(Z,[2,36]),i(Z,[2,37]),{15:[1,150]},i(Z,[2,38]),{15:[1,151]},i(Z,[2,39]),i(Z,[2,40]),{15:[1,152]},i(Z,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:Se},{56:156,79:Se},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:Et},i(Ct,[2,11]),i(Ht,w,{7:101,40:158}),i(Le,w,{7:103,42:159}),i(Ft,w,{7:106,45:160}),i(Z,[2,48]),i(Z,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(ke,zt){if(zt.recoverable)this.trace(ke);else{var re=new Error(ke);throw re.hash=zt,re}},parse:function(ke){var zt=this,re=[0],se=[],Pe=[null],te=[],Me=this.table,de="",on=0,ni=0,Ks=2,ws=1,fo=te.slice.call(arguments,1),Xi=Object.create(this.lexer),Er={yy:{}};for(var Xn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Xn)&&(Er.yy[Xn]=this.yy[Xn]);Xi.setInput(ke,Er.yy),Er.yy.lexer=Xi,Er.yy.parser=this,typeof Xi.yylloc>"u"&&(Xi.yylloc={});var di=Xi.yylloc;te.push(di);var Ee=Xi.options&&Xi.options.ranges;typeof Er.yy.parseError=="function"?this.parseError=Er.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Kn(){var zs;return zs=se.pop()||Xi.lex()||ws,typeof zs!="number"&&(zs instanceof Array&&(se=zs,zs=se.pop()),zs=zt.symbols_[zs]||zs),zs}for(var He,Ti,pn,Es,qa={},Ma,Gs,Po,vs;;){if(Ti=re[re.length-1],this.defaultActions[Ti]?pn=this.defaultActions[Ti]:((He===null||typeof He>"u")&&(He=Kn()),pn=Me[Ti]&&Me[Ti][He]),typeof pn>"u"||!pn.length||!pn[0]){var ru="";vs=[];for(Ma in Me[Ti])this.terminals_[Ma]&&Ma>Ks&&vs.push("'"+this.terminals_[Ma]+"'");Xi.showPosition?ru="Parse error on line "+(on+1)+`: -`+Xi.showPosition()+` -Expecting `+vs.join(", ")+", got '"+(this.terminals_[He]||He)+"'":ru="Parse error on line "+(on+1)+": Unexpected "+(He==ws?"end of input":"'"+(this.terminals_[He]||He)+"'"),this.parseError(ru,{text:Xi.match,token:this.terminals_[He]||He,line:Xi.yylineno,loc:di,expected:vs})}if(pn[0]instanceof Array&&pn.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ti+", token: "+He);switch(pn[0]){case 1:re.push(He),Pe.push(Xi.yytext),te.push(Xi.yylloc),re.push(pn[1]),He=null,ni=Xi.yyleng,de=Xi.yytext,on=Xi.yylineno,di=Xi.yylloc;break;case 2:if(Gs=this.productions_[pn[1]][1],qa.$=Pe[Pe.length-Gs],qa._$={first_line:te[te.length-(Gs||1)].first_line,last_line:te[te.length-1].last_line,first_column:te[te.length-(Gs||1)].first_column,last_column:te[te.length-1].last_column},Ee&&(qa._$.range=[te[te.length-(Gs||1)].range[0],te[te.length-1].range[1]]),Es=this.performAction.apply(qa,[de,ni,on,Er.yy,pn[1],Pe,te].concat(fo)),typeof Es<"u")return Es;Gs&&(re=re.slice(0,-1*Gs*2),Pe=Pe.slice(0,-1*Gs),te=te.slice(0,-1*Gs)),re.push(this.productions_[pn[1]][0]),Pe.push(qa.$),te.push(qa._$),Po=Me[re[re.length-2]][re[re.length-1]],re.push(Po);break;case 3:return!0}}return!0}},Ve=function(){var ce={EOF:1,parseError:function(zt,re){if(this.yy.parser)this.yy.parser.parseError(zt,re);else throw new Error(zt)},setInput:function(ke,zt){return this.yy=zt||this.yy||{},this._input=ke,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ke=this._input[0];this.yytext+=ke,this.yyleng++,this.offset++,this.match+=ke,this.matched+=ke;var zt=ke.match(/(?:\r\n?|\n).*/g);return zt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ke},unput:function(ke){var zt=ke.length,re=ke.split(/(?:\r\n?|\n)/g);this._input=ke+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-zt),this.offset-=zt;var se=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),re.length-1&&(this.yylineno-=re.length-1);var Pe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:re?(re.length===se.length?this.yylloc.first_column:0)+se[se.length-re.length].length-re[0].length:this.yylloc.first_column-zt},this.options.ranges&&(this.yylloc.range=[Pe[0],Pe[0]+this.yyleng-zt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ke){this.unput(this.match.slice(ke))},pastInput:function(){var ke=this.matched.substr(0,this.matched.length-this.match.length);return(ke.length>20?"...":"")+ke.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ke=this.match;return ke.length<20&&(ke+=this._input.substr(0,20-ke.length)),(ke.substr(0,20)+(ke.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ke=this.pastInput(),zt=new Array(ke.length+1).join("-");return ke+this.upcomingInput()+` -`+zt+"^"},test_match:function(ke,zt){var re,se,Pe;if(this.options.backtrack_lexer&&(Pe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Pe.yylloc.range=this.yylloc.range.slice(0))),se=ke[0].match(/(?:\r\n?|\n).*/g),se&&(this.yylineno+=se.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:se?se[se.length-1].length-se[se.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ke[0].length},this.yytext+=ke[0],this.match+=ke[0],this.matches=ke,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ke[0].length),this.matched+=ke[0],re=this.performAction.call(this,this.yy,this,zt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),re)return re;if(this._backtrack){for(var te in Pe)this[te]=Pe[te];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ke,zt,re,se;this._more||(this.yytext="",this.match="");for(var Pe=this._currentRules(),te=0;tezt[0].length)){if(zt=re,se=te,this.options.backtrack_lexer){if(ke=this.test_match(re,Pe[te]),ke!==!1)return ke;if(this._backtrack){zt=!1;continue}else return!1}else if(!this.options.flex)break}return zt?(ke=this.test_match(zt,Pe[se]),ke!==!1?ke:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var zt=this.next();return zt||this.lex()},begin:function(zt){this.conditionStack.push(zt)},popState:function(){var zt=this.conditionStack.length-1;return zt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(zt){return zt=this.conditionStack.length-1-Math.abs(zt||0),zt>=0?this.conditionStack[zt]:"INITIAL"},pushState:function(zt){this.begin(zt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(zt,re,se,Pe){switch(se){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return re.yytext=re.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return re.yytext=re.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return ce}();me.lexer=Ve;function Ye(){this.yy={}}return Ye.prototype=me,me.Parser=Ye,new Ye}();ggt.parser=ggt;const tVe=ggt;let HF,R5={},pgt={},bgt={},dL=[],zb=[],RY=!1,wgt,j5,VF,gL;const eVe=function(i){dL.push({name:i.text,wrap:i.wrap===void 0&&CT()||!!i.wrap,fill:i.color,actorKeys:[]}),j5=dL.slice(-1)[0]},vgt=function(i,a,f,p){let w=j5;const m=R5[i];if(m){if(j5&&m.box&&j5!==m.box)throw new Error("A same participant should only be defined in one Box: "+m.name+" can't be in '"+m.box.name+"' and in '"+j5.name+"' at the same time.");if(w=m.box?m.box:j5,m.box=w,m&&a===m.name&&f==null)return}(f==null||f.text==null)&&(f={text:a,wrap:null,type:p}),(p==null||f.text==null)&&(f={text:a,wrap:null,type:p}),R5[i]={box:w,name:a,description:f.text,wrap:f.wrap===void 0&&CT()||!!f.wrap,prevActor:HF,links:{},properties:{},actorCnt:null,rectData:null,type:p||"participant"},HF&&R5[HF]&&(R5[HF].nextActor=i),j5&&j5.actorKeys.push(i),HF=i},nVe=i=>{let a,f=0;for(a=0;a>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},b}return zb.push({from:i,to:a,message:f.text,wrap:f.wrap===void 0&&CT()||!!f.wrap,type:p,activate:w}),!0},iVe=function(){return dL.length>0},sVe=function(){return dL.some(i=>i.name)},aVe=function(){return zb},oVe=function(){return dL},cVe=function(){return R5},uVe=function(){return pgt},lVe=function(){return bgt},GF=function(i){return R5[i]},hVe=function(){return Object.keys(R5)},fVe=function(){RY=!0},dVe=function(){RY=!1},gVe=()=>RY,pVe=function(i){wgt=i},CT=()=>wgt!==void 0?wgt:Oe().sequence.wrap,bVe=function(){R5={},pgt={},bgt={},dL=[],zb=[],RY=!1,hg()},wVe=function(i){const a=i.trim(),f={text:a.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:a.match(/^:?wrap:/)!==null?!0:a.match(/^:?nowrap:/)!==null?!1:void 0};return Ut.debug("parseMessage:",f),f},vVe=function(i){const a=i.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let f=a!=null&&a[1]?a[1].trim():"transparent",p=a!=null&&a[2]?a[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",f)||(f="transparent",p=i.trim());else{const m=new Option().style;m.color=f,m.color!==f&&(f="transparent",p=i.trim())}return{color:f,text:p!==void 0?Q1(p.replace(/^:?(?:no)?wrap:/,""),Oe()):void 0,wrap:p!==void 0?p.match(/^:?wrap:/)!==null?!0:p.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},UF={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},mVe={FILLED:0,OPEN:1},yVe={LEFTOF:0,RIGHTOF:1,OVER:2},_Rt=function(i,a,f){f.text,f.wrap===void 0&&CT()||f.wrap;const p=[].concat(i,i);zb.push({from:p[0],to:p[1],message:f.text,wrap:f.wrap===void 0&&CT()||!!f.wrap,type:UF.NOTE,placement:a})},SRt=function(i,a){const f=GF(i);try{let p=Q1(a.text,Oe());p=p.replace(/&/g,"&"),p=p.replace(/=/g,"=");const w=JSON.parse(p);mgt(f,w)}catch(p){Ut.error("error while parsing actor link text",p)}},xVe=function(i,a){const f=GF(i);try{const b={};let E=Q1(a.text,Oe());var p=E.indexOf("@");E=E.replace(/&/g,"&"),E=E.replace(/=/g,"=");var w=E.slice(0,p-1).trim(),m=E.slice(p+1).trim();b[w]=m,mgt(f,b)}catch(b){Ut.error("error while parsing actor link text",b)}};function mgt(i,a){if(i.links==null)i.links=a;else for(let f in a)i.links[f]=a[f]}const ARt=function(i,a){const f=GF(i);try{let p=Q1(a.text,Oe());const w=JSON.parse(p);LRt(f,w)}catch(p){Ut.error("error while parsing actor properties text",p)}};function LRt(i,a){if(i.properties==null)i.properties=a;else for(let f in a)i.properties[f]=a[f]}function kVe(){j5=void 0}const MRt=function(i,a){const f=GF(i),p=document.getElementById(a.text);try{const w=p.innerHTML,m=JSON.parse(w);m.properties&&LRt(f,m.properties),m.links&&mgt(f,m.links)}catch(w){Ut.error("error while parsing actor details text",w)}},EVe=function(i,a){if(i!==void 0&&i.properties!==void 0)return i.properties[a]},DRt=function(i){if(Array.isArray(i))i.forEach(function(a){DRt(a)});else switch(i.type){case"sequenceIndex":zb.push({from:void 0,to:void 0,message:{start:i.sequenceIndex,step:i.sequenceIndexStep,visible:i.sequenceVisible},wrap:!1,type:i.signalType});break;case"addParticipant":vgt(i.actor,i.actor,i.description,i.draw);break;case"createParticipant":if(R5[i.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");VF=i.actor,vgt(i.actor,i.actor,i.description,i.draw),pgt[i.actor]=zb.length;break;case"destroyParticipant":gL=i.actor,bgt[i.actor]=zb.length;break;case"activeStart":ef(i.actor,void 0,void 0,i.signalType);break;case"activeEnd":ef(i.actor,void 0,void 0,i.signalType);break;case"addNote":_Rt(i.actor,i.placement,i.text);break;case"addLinks":SRt(i.actor,i.text);break;case"addALink":xVe(i.actor,i.text);break;case"addProperties":ARt(i.actor,i.text);break;case"addDetails":MRt(i.actor,i.text);break;case"addMessage":if(VF){if(i.to!==VF)throw new Error("The created participant "+VF+" does not have an associated creating message after its declaration. Please check the sequence diagram.");VF=void 0}else if(gL){if(i.to!==gL&&i.from!==gL)throw new Error("The destroyed participant "+gL+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");gL=void 0}ef(i.from,i.to,i.msg,i.signalType,i.activate);break;case"boxStart":eVe(i.boxData);break;case"boxEnd":kVe();break;case"loopStart":ef(void 0,void 0,i.loopText,i.signalType);break;case"loopEnd":ef(void 0,void 0,void 0,i.signalType);break;case"rectStart":ef(void 0,void 0,i.color,i.signalType);break;case"rectEnd":ef(void 0,void 0,void 0,i.signalType);break;case"optStart":ef(void 0,void 0,i.optText,i.signalType);break;case"optEnd":ef(void 0,void 0,void 0,i.signalType);break;case"altStart":ef(void 0,void 0,i.altText,i.signalType);break;case"else":ef(void 0,void 0,i.altText,i.signalType);break;case"altEnd":ef(void 0,void 0,void 0,i.signalType);break;case"setAccTitle":E0(i.text);break;case"parStart":ef(void 0,void 0,i.parText,i.signalType);break;case"and":ef(void 0,void 0,i.parText,i.signalType);break;case"parEnd":ef(void 0,void 0,void 0,i.signalType);break;case"criticalStart":ef(void 0,void 0,i.criticalText,i.signalType);break;case"option":ef(void 0,void 0,i.optionText,i.signalType);break;case"criticalEnd":ef(void 0,void 0,void 0,i.signalType);break;case"breakStart":ef(void 0,void 0,i.breakText,i.signalType);break;case"breakEnd":ef(void 0,void 0,void 0,i.signalType);break}},IRt={addActor:vgt,addMessage:rVe,addSignal:ef,addLinks:SRt,addDetails:MRt,addProperties:ARt,autoWrap:CT,setWrap:pVe,enableSequenceNumbers:fVe,disableSequenceNumbers:dVe,showSequenceNumbers:gVe,getMessages:aVe,getActors:cVe,getCreatedActors:uVe,getDestroyedActors:lVe,getActor:GF,getActorKeys:hVe,getActorProperty:EVe,getAccTitle:fg,getBoxes:oVe,getDiagramTitle:pg,setDiagramTitle:Nb,getConfig:()=>Oe().sequence,clear:bVe,parseMessage:wVe,parseBoxData:vVe,LINETYPE:UF,ARROWTYPE:mVe,PLACEMENT:yVe,addNote:_Rt,setAccTitle:E0,apply:DRt,setAccDescription:dg,getAccDescription:gg,hasAtLeastOneBox:iVe,hasAtLeastOneBoxWithTitle:sVe},TVe=i=>`.actor { - stroke: ${i.actorBorder}; - fill: ${i.actorBkg}; - } - - text.actor > tspan { - fill: ${i.actorTextColor}; - stroke: none; - } - - .actor-line { - stroke: ${i.actorLineColor}; - } - - .messageLine0 { - stroke-width: 1.5; - stroke-dasharray: none; - stroke: ${i.signalColor}; - } - - .messageLine1 { - stroke-width: 1.5; - stroke-dasharray: 2, 2; - stroke: ${i.signalColor}; - } - - #arrowhead path { - fill: ${i.signalColor}; - stroke: ${i.signalColor}; - } - - .sequenceNumber { - fill: ${i.sequenceNumberColor}; - } - - #sequencenumber { - fill: ${i.signalColor}; - } - - #crosshead path { - fill: ${i.signalColor}; - stroke: ${i.signalColor}; - } - - .messageText { - fill: ${i.signalTextColor}; - stroke: none; - } - - .labelBox { - stroke: ${i.labelBoxBorderColor}; - fill: ${i.labelBoxBkgColor}; - } - - .labelText, .labelText > tspan { - fill: ${i.labelTextColor}; - stroke: none; - } - - .loopText, .loopText > tspan { - fill: ${i.loopTextColor}; - stroke: none; - } - - .loopLine { - stroke-width: 2px; - stroke-dasharray: 2, 2; - stroke: ${i.labelBoxBorderColor}; - fill: ${i.labelBoxBorderColor}; - } - - .note { - //stroke: #decc93; - stroke: ${i.noteBorderColor}; - fill: ${i.noteBkgColor}; - } - - .noteText, .noteText > tspan { - fill: ${i.noteTextColor}; - stroke: none; - } - - .activation0 { - fill: ${i.activationBkgColor}; - stroke: ${i.activationBorderColor}; - } - - .activation1 { - fill: ${i.activationBkgColor}; - stroke: ${i.activationBorderColor}; - } - - .activation2 { - fill: ${i.activationBkgColor}; - stroke: ${i.activationBorderColor}; - } - - .actorPopupMenu { - position: absolute; - } - - .actorPopupMenuPanel { - position: absolute; - fill: ${i.actorBkg}; - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); -} - .actor-man line { - stroke: ${i.actorBorder}; - fill: ${i.actorBkg}; - } - .actor-man circle, line { - stroke: ${i.actorBorder}; - fill: ${i.actorBkg}; - stroke-width: 2px; - } -`,_T=18*2,ygt=function(i,a){return JW(i,a)},ORt=(i,a)=>{vAe(()=>{const f=document.querySelectorAll(i);f.length!==0&&(f[0].addEventListener("mouseover",function(){AVe("actor"+a+"_popup")}),f[0].addEventListener("mouseout",function(){LVe("actor"+a+"_popup")}))})},CVe=function(i,a,f,p,w){if(a.links===void 0||a.links===null||Object.keys(a.links).length===0)return{height:0,width:0};const m=a.links,b=a.actorCnt,E=a.rectData;var _="none";w&&(_="block !important");const A=i.append("g");A.attr("id","actor"+b+"_popup"),A.attr("class","actorPopupMenu"),A.attr("display",_),ORt("#actor"+b+"_popup",b);var I="";E.class!==void 0&&(I=" "+E.class);let B=E.width>f?E.width:f;const N=A.append("rect");if(N.attr("class","actorPopupMenuPanel"+I),N.attr("x",E.x),N.attr("y",E.height),N.attr("fill",E.fill),N.attr("stroke",E.stroke),N.attr("width",B),N.attr("height",E.height),N.attr("rx",E.rx),N.attr("ry",E.ry),m!=null){var R=20;for(let et in m){var z=A.append("a"),W=ik(m[et]);z.attr("xlink:href",W),z.attr("target","_blank"),GVe(p)(et,z,E.x+10,E.height+R,B,20,{class:"actor"},p),R+=30}}return N.attr("height",R),{height:E.height+R,width:B}},_Ve=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = 'block'; }"},SVe=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = 'none'; }"},AVe=function(i){var a=document.getElementById(i);a!=null&&(a.style.display="block")},LVe=function(i){var a=document.getElementById(i);a!=null&&(a.style.display="none")},pL=function(i,a){let f=0,p=0;const w=a.text.split(Kr.lineBreakRegex),[m,b]=VA(a.fontSize);let E=[],_=0,A=()=>a.y;if(a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0)switch(a.valign){case"top":case"start":A=()=>Math.round(a.y+a.textMargin);break;case"middle":case"center":A=()=>Math.round(a.y+(f+p+a.textMargin)/2);break;case"bottom":case"end":A=()=>Math.round(a.y+(f+p+2*a.textMargin)-a.textMargin);break}if(a.anchor!==void 0&&a.textMargin!==void 0&&a.width!==void 0)switch(a.anchor){case"left":case"start":a.x=Math.round(a.x+a.textMargin),a.anchor="start",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"middle":case"center":a.x=Math.round(a.x+a.width/2),a.anchor="middle",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"right":case"end":a.x=Math.round(a.x+a.width-a.textMargin),a.anchor="end",a.dominantBaseline="middle",a.alignmentBaseline="middle";break}for(let[I,B]of w.entries()){a.textMargin!==void 0&&a.textMargin===0&&m!==void 0&&(_=I*m);const N=i.append("text");N.attr("x",a.x),N.attr("y",A()),a.anchor!==void 0&&N.attr("text-anchor",a.anchor).attr("dominant-baseline",a.dominantBaseline).attr("alignment-baseline",a.alignmentBaseline),a.fontFamily!==void 0&&N.style("font-family",a.fontFamily),b!==void 0&&N.style("font-size",b),a.fontWeight!==void 0&&N.style("font-weight",a.fontWeight),a.fill!==void 0&&N.attr("fill",a.fill),a.class!==void 0&&N.attr("class",a.class),a.dy!==void 0?N.attr("dy",a.dy):_!==0&&N.attr("dy",_);const R=B||jIt;if(a.tspan){const z=N.append("tspan");z.attr("x",a.x),a.fill!==void 0&&z.attr("fill",a.fill),z.text(R)}else N.text(R);a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0&&(p+=(N._groups||N)[0][0].getBBox().height,f=p),E.push(N)}return E},PRt=function(i,a){function f(w,m,b,E,_){return w+","+m+" "+(w+b)+","+m+" "+(w+b)+","+(m+E-_)+" "+(w+b-_*1.2)+","+(m+E)+" "+w+","+(m+E)}const p=i.append("polygon");return p.attr("points",f(a.x,a.y,a.width,a.height,7)),p.attr("class","labelBox"),a.y=a.y+a.height/2,pL(i,a),p};let gm=-1;const FRt=(i,a,f,p)=>{i.select&&f.forEach(w=>{const m=a[w],b=i.select("#actor"+m.actorCnt);!p.mirrorActors&&m.stopy?b.attr("y2",m.stopy+m.height/2):p.mirrorActors&&b.attr("y2",m.stopy)})},MVe=function(i,a,f,p){const w=p?a.stopy:a.starty,m=a.x+a.width/2,b=w+5,E=i.append("g").lower();var _=E;p||(gm++,_.append("line").attr("id","actor"+gm).attr("x1",m).attr("y1",b).attr("x2",m).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),_=E.append("g"),a.actorCnt=gm,a.links!=null&&(_.attr("id","root-"+gm),ORt("#root-"+gm,gm)));const A=bT();var I="actor";a.properties!=null&&a.properties.class?I=a.properties.class:A.fill="#eaeaea",A.x=a.x,A.y=w,A.width=a.width,A.height=a.height,A.class=I,A.rx=3,A.ry=3;const B=ygt(_,A);if(a.rectData=A,a.properties!=null&&a.properties.icon){const R=a.properties.icon.trim();R.charAt(0)==="@"?$De(_,A.x+A.width-20,A.y+10,R.substr(1)):jDe(_,A.x+A.width-20,A.y+10,R)}xgt(f)(a.description,_,A.x,A.y,A.width,A.height,{class:"actor"},f);let N=a.height;if(B.node){const R=B.node().getBBox();a.height=R.height,N=R.height}return N},DVe=function(i,a,f,p){const w=p?a.stopy:a.starty,m=a.x+a.width/2,b=w+80;i.lower(),p||(gm++,i.append("line").attr("id","actor"+gm).attr("x1",m).attr("y1",b).attr("x2",m).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),a.actorCnt=gm);const E=i.append("g");E.attr("class","actor-man");const _=bT();_.x=a.x,_.y=w,_.fill="#eaeaea",_.width=a.width,_.height=a.height,_.class="actor",_.rx=3,_.ry=3,E.append("line").attr("id","actor-man-torso"+gm).attr("x1",m).attr("y1",w+25).attr("x2",m).attr("y2",w+45),E.append("line").attr("id","actor-man-arms"+gm).attr("x1",m-_T/2).attr("y1",w+33).attr("x2",m+_T/2).attr("y2",w+33),E.append("line").attr("x1",m-_T/2).attr("y1",w+60).attr("x2",m).attr("y2",w+45),E.append("line").attr("x1",m).attr("y1",w+45).attr("x2",m+_T/2-2).attr("y2",w+60);const A=E.append("circle");A.attr("cx",a.x+a.width/2),A.attr("cy",w+10),A.attr("r",15),A.attr("width",a.width),A.attr("height",a.height);const I=E.node().getBBox();return a.height=I.height,xgt(f)(a.description,E,_.x,_.y+35,_.width,_.height,{class:"actor"},f),a.height},IVe=function(i,a,f,p){switch(a.type){case"actor":return DVe(i,a,f,p);case"participant":return MVe(i,a,f,p)}},OVe=function(i,a,f){const w=i.append("g");NRt(w,a),a.name&&xgt(f)(a.name,w,a.x,a.y+(a.textMaxHeight||0)/2,a.width,0,{class:"text"},f),w.lower()},PVe=function(i){return i.append("g")},FVe=function(i,a,f,p,w){const m=bT(),b=a.anchored;m.x=a.startx,m.y=a.starty,m.class="activation"+w%3,m.width=a.stopx-a.startx,m.height=f-a.starty,ygt(b,m)},NVe=function(i,a,f,p){const{boxMargin:w,boxTextMargin:m,labelBoxHeight:b,labelBoxWidth:E,messageFontFamily:_,messageFontSize:A,messageFontWeight:I}=p,B=i.append("g"),N=function(W,et,st,at){return B.append("line").attr("x1",W).attr("y1",et).attr("x2",st).attr("y2",at).attr("class","loopLine")};N(a.startx,a.starty,a.stopx,a.starty),N(a.stopx,a.starty,a.stopx,a.stopy),N(a.startx,a.stopy,a.stopx,a.stopy),N(a.startx,a.starty,a.startx,a.stopy),a.sections!==void 0&&a.sections.forEach(function(W){N(a.startx,W.y,a.stopx,W.y).style("stroke-dasharray","3, 3")});let R=Rdt();R.text=f,R.x=a.startx,R.y=a.starty,R.fontFamily=_,R.fontSize=A,R.fontWeight=I,R.anchor="middle",R.valign="middle",R.tspan=!1,R.width=E||50,R.height=b||20,R.textMargin=m,R.class="labelText",PRt(B,R),R=BRt(),R.text=a.title,R.x=a.startx+E/2+(a.stopx-a.startx)/2,R.y=a.starty+w+m,R.anchor="middle",R.valign="middle",R.textMargin=m,R.class="loopText",R.fontFamily=_,R.fontSize=A,R.fontWeight=I,R.wrap=!0;let z=pL(B,R);return a.sectionTitles!==void 0&&a.sectionTitles.forEach(function(W,et){if(W.message){R.text=W.message,R.x=a.startx+(a.stopx-a.startx)/2,R.y=a.sections[et].y+w+m,R.class="loopText",R.anchor="middle",R.valign="middle",R.tspan=!1,R.fontFamily=_,R.fontSize=A,R.fontWeight=I,R.wrap=a.wrap,z=pL(B,R);let st=Math.round(z.map(at=>(at._groups||at)[0][0].getBBox().height).reduce((at,bt)=>at+bt));a.sections[et].height+=st-(w+m)}}),a.height=Math.round(a.stopy-a.starty),B},NRt=function(i,a){mPt(i,a)},BVe=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},RVe=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},jVe=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},$Ve=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},zVe=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},qVe=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},HVe=function(i){i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},BRt=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},VVe=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},xgt=function(){function i(w,m,b,E,_,A,I){const B=m.append("text").attr("x",b+_/2).attr("y",E+A/2+5).style("text-anchor","middle").text(w);p(B,I)}function a(w,m,b,E,_,A,I,B){const{actorFontSize:N,actorFontFamily:R,actorFontWeight:z}=B,[W,et]=VA(N),st=w.split(Kr.lineBreakRegex);for(let at=0;ati.height||0))+(this.loops.length===0?0:this.loops.map(i=>i.height||0).reduce((i,a)=>i+a))+(this.messages.length===0?0:this.messages.map(i=>i.height||0).reduce((i,a)=>i+a))+(this.notes.length===0?0:this.notes.map(i=>i.height||0).reduce((i,a)=>i+a))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(i){this.boxes.push(i)},addActor:function(i){this.actors.push(i)},addLoop:function(i){this.loops.push(i)},addMessage:function(i){this.messages.push(i)},addNote:function(i){this.notes.push(i)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,jRt(Oe())},updateVal:function(i,a,f,p){i[a]===void 0?i[a]=f:i[a]=p(f,i[a])},updateBounds:function(i,a,f,p){const w=this;let m=0;function b(E){return function(A){m++;const I=w.sequenceItems.length-m+1;w.updateVal(A,"starty",a-I*fn.boxMargin,Math.min),w.updateVal(A,"stopy",p+I*fn.boxMargin,Math.max),w.updateVal(Fr.data,"startx",i-I*fn.boxMargin,Math.min),w.updateVal(Fr.data,"stopx",f+I*fn.boxMargin,Math.max),E!=="activation"&&(w.updateVal(A,"startx",i-I*fn.boxMargin,Math.min),w.updateVal(A,"stopx",f+I*fn.boxMargin,Math.max),w.updateVal(Fr.data,"starty",a-I*fn.boxMargin,Math.min),w.updateVal(Fr.data,"stopy",p+I*fn.boxMargin,Math.max))}}this.sequenceItems.forEach(b()),this.activations.forEach(b("activation"))},insert:function(i,a,f,p){const w=Kr.getMin(i,f),m=Kr.getMax(i,f),b=Kr.getMin(a,p),E=Kr.getMax(a,p);this.updateVal(Fr.data,"startx",w,Math.min),this.updateVal(Fr.data,"starty",b,Math.min),this.updateVal(Fr.data,"stopx",m,Math.max),this.updateVal(Fr.data,"stopy",E,Math.max),this.updateBounds(w,b,m,E)},newActivation:function(i,a,f){const p=f[i.from.actor],w=jY(i.from.actor).length||0,m=p.x+p.width/2+(w-1)*fn.activationWidth/2;this.activations.push({startx:m,starty:this.verticalPos+2,stopx:m+fn.activationWidth,stopy:void 0,actor:i.from.actor,anchored:nf.anchorElement(a)})},endActivation:function(i){const a=this.activations.map(function(f){return f.actor}).lastIndexOf(i.from.actor);return this.activations.splice(a,1)[0]},createLoop:function(i={message:void 0,wrap:!1,width:void 0},a){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:i.message,wrap:i.wrap,width:i.width,height:0,fill:a}},newLoop:function(i={message:void 0,wrap:!1,width:void 0},a){this.sequenceItems.push(this.createLoop(i,a))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(i){const a=this.sequenceItems.pop();a.sections=a.sections||[],a.sectionTitles=a.sectionTitles||[],a.sections.push({y:Fr.getVerticalPos(),height:0}),a.sectionTitles.push(i),this.sequenceItems.push(a)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=Kr.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},UVe=function(i,a){Fr.bumpVerticalPos(fn.boxMargin),a.height=fn.boxMargin,a.starty=Fr.getVerticalPos();const f=bT();f.x=a.startx,f.y=a.starty,f.width=a.width||fn.width,f.class="note";const p=i.append("g"),w=nf.drawRect(p,f),m=Rdt();m.x=a.startx,m.y=a.starty,m.width=f.width,m.dy="1em",m.text=a.message,m.class="noteText",m.fontFamily=fn.noteFontFamily,m.fontSize=fn.noteFontSize,m.fontWeight=fn.noteFontWeight,m.anchor=fn.noteAlign,m.textMargin=fn.noteMargin,m.valign="center";const b=pL(p,m),E=Math.round(b.map(_=>(_._groups||_)[0][0].getBBox().height).reduce((_,A)=>_+A));w.attr("height",E+2*fn.noteMargin),a.height+=E+2*fn.noteMargin,Fr.bumpVerticalPos(E+2*fn.noteMargin),a.stopy=a.starty+E+2*fn.noteMargin,a.stopx=a.startx+f.width,Fr.insert(a.startx,a.starty,a.stopx,a.stopy),Fr.models.addNote(a)},ST=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight}),bL=i=>({fontFamily:i.noteFontFamily,fontSize:i.noteFontSize,fontWeight:i.noteFontWeight}),kgt=i=>({fontFamily:i.actorFontFamily,fontSize:i.actorFontSize,fontWeight:i.actorFontWeight});function WVe(i,a){Fr.bumpVerticalPos(10);const{startx:f,stopx:p,message:w}=a,m=Kr.splitBreaks(w).length,b=$a.calculateTextDimensions(w,ST(fn)),E=b.height/m;a.height+=E,Fr.bumpVerticalPos(E);let _,A=b.height-10;const I=b.width;if(f===p){_=Fr.getVerticalPos()+A,fn.rightAngles||(A+=fn.boxMargin,_=Fr.getVerticalPos()+A),A+=30;const B=Kr.getMax(I/2,fn.width/2);Fr.insert(f-B,Fr.getVerticalPos()-10+A,p+B,Fr.getVerticalPos()+30+A)}else A+=fn.boxMargin,_=Fr.getVerticalPos()+A,Fr.insert(f,_-10,p,_);return Fr.bumpVerticalPos(A),a.height+=A,a.stopy=a.starty+a.height,Fr.insert(a.fromBounds,a.starty,a.toBounds,a.stopy),_}const YVe=function(i,a,f,p){const{startx:w,stopx:m,starty:b,message:E,type:_,sequenceIndex:A,sequenceVisible:I}=a,B=$a.calculateTextDimensions(E,ST(fn)),N=Rdt();N.x=w,N.y=b+10,N.width=m-w,N.class="messageText",N.dy="1em",N.text=E,N.fontFamily=fn.messageFontFamily,N.fontSize=fn.messageFontSize,N.fontWeight=fn.messageFontWeight,N.anchor=fn.messageAlign,N.valign="center",N.textMargin=fn.wrapPadding,N.tspan=!1,pL(i,N);const R=B.width;let z;w===m?fn.rightAngles?z=i.append("path").attr("d",`M ${w},${f} H ${w+Kr.getMax(fn.width/2,R/2)} V ${f+25} H ${w}`):z=i.append("path").attr("d","M "+w+","+f+" C "+(w+60)+","+(f-10)+" "+(w+60)+","+(f+30)+" "+w+","+(f+20)):(z=i.append("line"),z.attr("x1",w),z.attr("y1",f),z.attr("x2",m),z.attr("y2",f)),_===p.db.LINETYPE.DOTTED||_===p.db.LINETYPE.DOTTED_CROSS||_===p.db.LINETYPE.DOTTED_POINT||_===p.db.LINETYPE.DOTTED_OPEN?(z.style("stroke-dasharray","3, 3"),z.attr("class","messageLine1")):z.attr("class","messageLine0");let W="";fn.arrowMarkerAbsolute&&(W=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,W=W.replace(/\(/g,"\\("),W=W.replace(/\)/g,"\\)")),z.attr("stroke-width",2),z.attr("stroke","none"),z.style("fill","none"),(_===p.db.LINETYPE.SOLID||_===p.db.LINETYPE.DOTTED)&&z.attr("marker-end","url("+W+"#arrowhead)"),(_===p.db.LINETYPE.SOLID_POINT||_===p.db.LINETYPE.DOTTED_POINT)&&z.attr("marker-end","url("+W+"#filled-head)"),(_===p.db.LINETYPE.SOLID_CROSS||_===p.db.LINETYPE.DOTTED_CROSS)&&z.attr("marker-end","url("+W+"#crosshead)"),(I||fn.showSequenceNumbers)&&(z.attr("marker-start","url("+W+"#sequencenumber)"),i.append("text").attr("x",w).attr("y",f+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(A))},KVe=function(i,a,f,p,w,m,b){let E=0,_=0,A,I=0;for(const B of p){const N=a[B],R=N.box;A&&A!=R&&(b||Fr.models.addBox(A),_+=fn.boxMargin+A.margin),R&&R!=A&&(b||(R.x=E+_,R.y=w),_+=R.margin),N.width=N.width||fn.width,N.height=Kr.getMax(N.height||fn.height,fn.height),N.margin=N.margin||fn.actorMargin,I=Kr.getMax(I,N.height),f[N.name]&&(_+=N.width/2),N.x=E+_,N.starty=Fr.getVerticalPos(),Fr.insert(N.x,w,N.x+N.width,N.height),E+=N.width+_,N.box&&(N.box.width=E+R.margin-N.box.x),_=N.margin,A=N.box,Fr.models.addActor(N)}A&&!b&&Fr.models.addBox(A),Fr.bumpVerticalPos(I)},Egt=function(i,a,f,p){if(p){let w=0;Fr.bumpVerticalPos(fn.boxMargin*2);for(const m of f){const b=a[m];b.stopy||(b.stopy=Fr.getVerticalPos());const E=nf.drawActor(i,b,fn,!0);w=Kr.getMax(w,E)}Fr.bumpVerticalPos(w+fn.boxMargin)}else for(const w of f){const m=a[w];nf.drawActor(i,m,fn,!1)}},RRt=function(i,a,f,p){let w=0,m=0;for(const b of f){const E=a[b],_=JVe(E),A=nf.drawPopup(i,E,_,fn,fn.forceMenus,p);A.height>w&&(w=A.height),A.width+E.x>m&&(m=A.width+E.x)}return{maxHeight:w,maxWidth:m}},jRt=function(i){Z1(fn,i),i.fontFamily&&(fn.actorFontFamily=fn.noteFontFamily=fn.messageFontFamily=i.fontFamily),i.fontSize&&(fn.actorFontSize=fn.noteFontSize=fn.messageFontSize=i.fontSize),i.fontWeight&&(fn.actorFontWeight=fn.noteFontWeight=fn.messageFontWeight=i.fontWeight)},jY=function(i){return Fr.activations.filter(function(a){return a.actor===i})},$Rt=function(i,a){const f=a[i],p=jY(i),w=p.reduce(function(b,E){return Kr.getMin(b,E.startx)},f.x+f.width/2-1),m=p.reduce(function(b,E){return Kr.getMax(b,E.stopx)},f.x+f.width/2+1);return[w,m]};function k3(i,a,f,p,w){Fr.bumpVerticalPos(f);let m=p;if(a.id&&a.message&&i[a.id]){const b=i[a.id].width,E=ST(fn);a.message=$a.wrapLabel(`[${a.message}]`,b-2*fn.wrapPadding,E),a.width=b,a.wrap=!0;const _=$a.calculateTextDimensions(a.message,E),A=Kr.getMax(_.height,fn.labelBoxHeight);m=p+A,Ut.debug(`${A} - ${a.message}`)}w(a),Fr.bumpVerticalPos(m)}function XVe(i,a,f,p,w,m,b){function E(A,I){A.x{Et.add(Z.from),Et.add(Z.to)}),z=z.filter(Z=>Et.has(Z))}KVe(A,I,B,z,0,W,!1);const mt=rGe(W,I,bt,p);nf.insertArrowHead(A),nf.insertArrowCrossHead(A),nf.insertArrowFilledHead(A),nf.insertSequenceNumber(A);function yt(Et,Z){const Ct=Fr.endActivation(Et);Ct.starty+18>Z&&(Ct.starty=Z-6,Z+=12),nf.drawActivation(A,Ct,Z,fn,jY(Et.from.actor).length),Fr.insert(Ct.startx,Z-10,Ct.stopx,Z)}let ft=1,ut=1;const vt=[],X=[];W.forEach(function(Et,Z){let Ct,xt,Ht;switch(Et.type){case p.db.LINETYPE.NOTE:Fr.resetVerticalPos(),xt=Et.noteModel,UVe(A,xt);break;case p.db.LINETYPE.ACTIVE_START:Fr.newActivation(Et,A,I);break;case p.db.LINETYPE.ACTIVE_END:yt(Et,Fr.getVerticalPos());break;case p.db.LINETYPE.LOOP_START:k3(mt,Et,fn.boxMargin,fn.boxMargin+fn.boxTextMargin,Le=>Fr.newLoop(Le));break;case p.db.LINETYPE.LOOP_END:Ct=Fr.endLoop(),nf.drawLoop(A,Ct,"loop",fn),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos()),Fr.models.addLoop(Ct);break;case p.db.LINETYPE.RECT_START:k3(mt,Et,fn.boxMargin,fn.boxMargin,Le=>Fr.newLoop(void 0,Le.message));break;case p.db.LINETYPE.RECT_END:Ct=Fr.endLoop(),X.push(Ct),Fr.models.addLoop(Ct),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos());break;case p.db.LINETYPE.OPT_START:k3(mt,Et,fn.boxMargin,fn.boxMargin+fn.boxTextMargin,Le=>Fr.newLoop(Le));break;case p.db.LINETYPE.OPT_END:Ct=Fr.endLoop(),nf.drawLoop(A,Ct,"opt",fn),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos()),Fr.models.addLoop(Ct);break;case p.db.LINETYPE.ALT_START:k3(mt,Et,fn.boxMargin,fn.boxMargin+fn.boxTextMargin,Le=>Fr.newLoop(Le));break;case p.db.LINETYPE.ALT_ELSE:k3(mt,Et,fn.boxMargin+fn.boxTextMargin,fn.boxMargin,Le=>Fr.addSectionToLoop(Le));break;case p.db.LINETYPE.ALT_END:Ct=Fr.endLoop(),nf.drawLoop(A,Ct,"alt",fn),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos()),Fr.models.addLoop(Ct);break;case p.db.LINETYPE.PAR_START:case p.db.LINETYPE.PAR_OVER_START:k3(mt,Et,fn.boxMargin,fn.boxMargin+fn.boxTextMargin,Le=>Fr.newLoop(Le)),Fr.saveVerticalPos();break;case p.db.LINETYPE.PAR_AND:k3(mt,Et,fn.boxMargin+fn.boxTextMargin,fn.boxMargin,Le=>Fr.addSectionToLoop(Le));break;case p.db.LINETYPE.PAR_END:Ct=Fr.endLoop(),nf.drawLoop(A,Ct,"par",fn),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos()),Fr.models.addLoop(Ct);break;case p.db.LINETYPE.AUTONUMBER:ft=Et.message.start||ft,ut=Et.message.step||ut,Et.message.visible?p.db.enableSequenceNumbers():p.db.disableSequenceNumbers();break;case p.db.LINETYPE.CRITICAL_START:k3(mt,Et,fn.boxMargin,fn.boxMargin+fn.boxTextMargin,Le=>Fr.newLoop(Le));break;case p.db.LINETYPE.CRITICAL_OPTION:k3(mt,Et,fn.boxMargin+fn.boxTextMargin,fn.boxMargin,Le=>Fr.addSectionToLoop(Le));break;case p.db.LINETYPE.CRITICAL_END:Ct=Fr.endLoop(),nf.drawLoop(A,Ct,"critical",fn),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos()),Fr.models.addLoop(Ct);break;case p.db.LINETYPE.BREAK_START:k3(mt,Et,fn.boxMargin,fn.boxMargin+fn.boxTextMargin,Le=>Fr.newLoop(Le));break;case p.db.LINETYPE.BREAK_END:Ct=Fr.endLoop(),nf.drawLoop(A,Ct,"break",fn),Fr.bumpVerticalPos(Ct.stopy-Fr.getVerticalPos()),Fr.models.addLoop(Ct);break;default:try{Ht=Et.msgModel,Ht.starty=Fr.getVerticalPos(),Ht.sequenceIndex=ft,Ht.sequenceVisible=p.db.showSequenceNumbers();const Le=WVe(A,Ht);XVe(Et,Ht,Le,Z,I,B,N),vt.push({messageModel:Ht,lineStartY:Le}),Fr.models.addMessage(Ht)}catch(Le){Ut.error("error while drawing message",Le)}}[p.db.LINETYPE.SOLID_OPEN,p.db.LINETYPE.DOTTED_OPEN,p.db.LINETYPE.SOLID,p.db.LINETYPE.DOTTED,p.db.LINETYPE.SOLID_CROSS,p.db.LINETYPE.DOTTED_CROSS,p.db.LINETYPE.SOLID_POINT,p.db.LINETYPE.DOTTED_POINT].includes(Et.type)&&(ft=ft+ut)}),Ut.debug("createdActors",B),Ut.debug("destroyedActors",N),Egt(A,I,z,!1),vt.forEach(Et=>YVe(A,Et.messageModel,Et.lineStartY,p)),fn.mirrorActors&&Egt(A,I,z,!0),X.forEach(Et=>nf.drawBackgroundRect(A,Et)),FRt(A,I,z,fn),Fr.models.boxes.forEach(function(Et){Et.height=Fr.getVerticalPos()-Et.y,Fr.insert(Et.x,Et.y,Et.x+Et.width,Et.height),Et.startx=Et.x,Et.starty=Et.y,Et.stopx=Et.startx+Et.width,Et.stopy=Et.starty+Et.height,Et.stroke="rgb(0,0,0, 0.5)",nf.drawBox(A,Et,fn)}),st&&Fr.bumpVerticalPos(fn.boxMargin);const pt=RRt(A,I,z,_),{bounds:U}=Fr.getBounds();let Tt=U.stopy-U.starty;Tt{const b=i[m];b.wrap&&(b.description=$a.wrapLabel(b.description,fn.width-2*fn.wrapPadding,kgt(fn)));const E=$a.calculateTextDimensions(b.description,kgt(fn));b.width=b.wrap?fn.width:Kr.getMax(fn.width,E.width+2*fn.wrapPadding),b.height=b.wrap?Kr.getMax(E.height,fn.height):fn.height,p=Kr.getMax(p,b.height)});for(const m in a){const b=i[m];if(!b)continue;const E=i[b.nextActor];if(!E){const B=a[m]+fn.actorMargin-b.width/2;b.margin=Kr.getMax(B,fn.actorMargin);continue}const A=a[m]+fn.actorMargin-b.width/2-E.width/2;b.margin=Kr.getMax(A,fn.actorMargin)}let w=0;return f.forEach(m=>{const b=ST(fn);let E=m.actorKeys.reduce((I,B)=>I+=i[B].width+(i[B].margin||0),0);E-=2*fn.boxTextMargin,m.wrap&&(m.name=$a.wrapLabel(m.name,E-2*fn.wrapPadding,b));const _=$a.calculateTextDimensions(m.name,b);w=Kr.getMax(_.height,w);const A=Kr.getMax(E,_.width+2*fn.wrapPadding);if(m.margin=fn.boxTextMargin,Em.textMaxHeight=w),Kr.getMax(p,fn.height)}const eGe=function(i,a,f){const p=a[i.from].x,w=a[i.to].x,m=i.wrap&&i.message;let b=$a.calculateTextDimensions(m?$a.wrapLabel(i.message,fn.width,bL(fn)):i.message,bL(fn));const E={width:m?fn.width:Kr.getMax(fn.width,b.width+2*fn.noteMargin),height:0,startx:a[i.from].x,stopx:0,starty:0,stopy:0,message:i.message};return i.placement===f.db.PLACEMENT.RIGHTOF?(E.width=m?Kr.getMax(fn.width,b.width):Kr.getMax(a[i.from].width/2+a[i.to].width/2,b.width+2*fn.noteMargin),E.startx=p+(a[i.from].width+fn.actorMargin)/2):i.placement===f.db.PLACEMENT.LEFTOF?(E.width=m?Kr.getMax(fn.width,b.width+2*fn.noteMargin):Kr.getMax(a[i.from].width/2+a[i.to].width/2,b.width+2*fn.noteMargin),E.startx=p-E.width+(a[i.from].width-fn.actorMargin)/2):i.to===i.from?(b=$a.calculateTextDimensions(m?$a.wrapLabel(i.message,Kr.getMax(fn.width,a[i.from].width),bL(fn)):i.message,bL(fn)),E.width=m?Kr.getMax(fn.width,a[i.from].width):Kr.getMax(a[i.from].width,fn.width,b.width+2*fn.noteMargin),E.startx=p+(a[i.from].width-E.width)/2):(E.width=Math.abs(p+a[i.from].width/2-(w+a[i.to].width/2))+fn.actorMargin,E.startx=p2,B=W=>E?-W:W;i.from===i.to?A=_:(i.activate&&!I&&(A+=B(fn.activationWidth/2-1)),[f.db.LINETYPE.SOLID_OPEN,f.db.LINETYPE.DOTTED_OPEN].includes(i.type)||(A+=B(3)));const N=[p,w,m,b],R=Math.abs(_-A);i.wrap&&i.message&&(i.message=$a.wrapLabel(i.message,Kr.getMax(R+2*fn.wrapPadding,fn.width),ST(fn)));const z=$a.calculateTextDimensions(i.message,ST(fn));return{width:Kr.getMax(i.wrap?0:z.width+2*fn.wrapPadding,R+2*fn.wrapPadding,fn.width),height:0,startx:_,stopx:A,starty:0,stopy:0,message:i.message,type:i.type,wrap:i.wrap,fromBounds:Math.min.apply(null,N),toBounds:Math.max.apply(null,N)}},rGe=function(i,a,f,p){const w={},m=[];let b,E,_;return i.forEach(function(A){switch(A.id=$a.random({length:10}),A.type){case p.db.LINETYPE.LOOP_START:case p.db.LINETYPE.ALT_START:case p.db.LINETYPE.OPT_START:case p.db.LINETYPE.PAR_START:case p.db.LINETYPE.PAR_OVER_START:case p.db.LINETYPE.CRITICAL_START:case p.db.LINETYPE.BREAK_START:m.push({id:A.id,msg:A.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case p.db.LINETYPE.ALT_ELSE:case p.db.LINETYPE.PAR_AND:case p.db.LINETYPE.CRITICAL_OPTION:A.message&&(b=m.pop(),w[b.id]=b,w[A.id]=b,m.push(b));break;case p.db.LINETYPE.LOOP_END:case p.db.LINETYPE.ALT_END:case p.db.LINETYPE.OPT_END:case p.db.LINETYPE.PAR_END:case p.db.LINETYPE.CRITICAL_END:case p.db.LINETYPE.BREAK_END:b=m.pop(),w[b.id]=b;break;case p.db.LINETYPE.ACTIVE_START:{const B=a[A.from?A.from.actor:A.to.actor],N=jY(A.from?A.from.actor:A.to.actor).length,R=B.x+B.width/2+(N-1)*fn.activationWidth/2,z={startx:R,stopx:R+fn.activationWidth,actor:A.from.actor,enabled:!0};Fr.activations.push(z)}break;case p.db.LINETYPE.ACTIVE_END:{const B=Fr.activations.map(N=>N.actor).lastIndexOf(A.from.actor);delete Fr.activations.splice(B,1)[0]}break}A.placement!==void 0?(E=eGe(A,a,p),A.noteModel=E,m.forEach(B=>{b=B,b.from=Kr.getMin(b.from,E.startx),b.to=Kr.getMax(b.to,E.startx+E.width),b.width=Kr.getMax(b.width,Math.abs(b.from-b.to))-fn.labelBoxWidth})):(_=nGe(A,a,p),A.msgModel=_,_.startx&&_.stopx&&m.length>0&&m.forEach(B=>{if(b=B,_.startx===_.stopx){const N=a[A.from],R=a[A.to];b.from=Kr.getMin(N.x-_.width/2,N.x-N.width/2,b.from),b.to=Kr.getMax(R.x+_.width/2,R.x+N.width/2,b.to),b.width=Kr.getMax(b.width,Math.abs(b.to-b.from))-fn.labelBoxWidth}else b.from=Kr.getMin(_.startx,b.from),b.to=Kr.getMax(_.stopx,b.to),b.width=Kr.getMax(b.width,_.width)-fn.labelBoxWidth}))}),Fr.activations=[],Ut.debug("Loop type widths:",w),w},iGe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:tVe,db:IRt,renderer:{bounds:Fr,drawActors:Egt,drawActorsPopup:RRt,setConf:jRt,draw:QVe},styles:TVe,init:({wrap:i})=>{IRt.setWrap(i)}}},Symbol.toStringTag,{value:"Module"}));var Tgt=function(){var i=function(ke,zt,re,se){for(re=re||{},se=ke.length;se--;re[ke[se]]=zt);return re},a=[1,16],f=[1,17],p=[1,18],w=[1,37],m=[1,38],b=[1,24],E=[1,22],_=[1,23],A=[1,29],I=[1,30],B=[1,31],N=[1,32],R=[1,33],z=[1,34],W=[1,25],et=[1,26],st=[1,27],at=[1,28],bt=[1,42],mt=[1,39],yt=[1,40],ft=[1,41],ut=[1,43],vt=[1,9],X=[1,8,9],pt=[1,54],U=[1,55],Tt=[1,56],nt=[1,57],It=[1,58],Ot=[1,59],Bt=[1,60],Et=[1,8,9,38],Z=[1,71],Ct=[1,8,9,12,13,21,36,38,41,58,59,60,61,62,63,64,69,71],xt=[1,8,9,12,13,19,21,36,38,41,45,58,59,60,61,62,63,64,69,71,84,86,87,88,89],Ht=[13,84,86,87,88,89],Le=[13,63,64,84,86,87,88,89],Ft=[13,58,59,60,61,62,84,86,87,88,89],gn=[1,90],Se=[1,8,9,36,38,41],me=[1,8,9,21],Ve={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,cssClassStatement:27,noteStatement:28,direction:29,acc_title:30,acc_title_value:31,acc_descr:32,acc_descr_value:33,acc_descr_multiline_value:34,namespaceIdentifier:35,STRUCT_START:36,classStatements:37,STRUCT_STOP:38,NAMESPACE:39,classIdentifier:40,STYLE_SEPARATOR:41,members:42,CLASS:43,ANNOTATION_START:44,ANNOTATION_END:45,MEMBER:46,SEPARATOR:47,relation:48,NOTE_FOR:49,noteText:50,NOTE:51,direction_tb:52,direction_bt:53,direction_rl:54,direction_lr:55,relationType:56,lineType:57,AGGREGATION:58,EXTENSION:59,COMPOSITION:60,DEPENDENCY:61,LOLLIPOP:62,LINE:63,DOTTED_LINE:64,CALLBACK:65,LINK:66,LINK_TARGET:67,CLICK:68,CALLBACK_NAME:69,CALLBACK_ARGS:70,HREF:71,CSSCLASS:72,commentToken:73,textToken:74,graphCodeTokens:75,textNoTagsToken:76,TAGSTART:77,TAGEND:78,"==":79,"--":80,PCT:81,DEFAULT:82,SPACE:83,MINUS:84,keywords:85,UNICODE_TEXT:86,NUM:87,ALPHA:88,BQUOTE_STR:89,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",30:"acc_title",31:"acc_title_value",32:"acc_descr",33:"acc_descr_value",34:"acc_descr_multiline_value",36:"STRUCT_START",38:"STRUCT_STOP",39:"NAMESPACE",41:"STYLE_SEPARATOR",43:"CLASS",44:"ANNOTATION_START",45:"ANNOTATION_END",46:"MEMBER",47:"SEPARATOR",49:"NOTE_FOR",51:"NOTE",52:"direction_tb",53:"direction_bt",54:"direction_rl",55:"direction_lr",58:"AGGREGATION",59:"EXTENSION",60:"COMPOSITION",61:"DEPENDENCY",62:"LOLLIPOP",63:"LINE",64:"DOTTED_LINE",65:"CALLBACK",66:"LINK",67:"LINK_TARGET",68:"CLICK",69:"CALLBACK_NAME",70:"CALLBACK_ARGS",71:"HREF",72:"CSSCLASS",75:"graphCodeTokens",77:"TAGSTART",78:"TAGEND",79:"==",80:"--",81:"PCT",82:"DEFAULT",83:"SPACE",84:"MINUS",85:"keywords",86:"UNICODE_TEXT",87:"NUM",88:"ALPHA",89:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[35,2],[37,1],[37,2],[37,3],[23,1],[23,3],[23,4],[23,6],[40,2],[40,3],[25,4],[42,1],[42,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[28,3],[28,2],[29,1],[29,1],[29,1],[29,1],[48,3],[48,2],[48,2],[48,1],[56,1],[56,1],[56,1],[56,1],[56,1],[57,1],[57,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[73,1],[73,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[76,1],[76,1],[76,1],[76,1],[16,1],[16,1],[16,1],[16,1],[18,1],[50,1]],performAction:function(zt,re,se,Pe,te,Me,de){var on=Me.length-1;switch(te){case 8:this.$=Me[on-1];break;case 9:case 11:case 12:this.$=Me[on];break;case 10:case 13:this.$=Me[on-1]+Me[on];break;case 14:case 15:this.$=Me[on-1]+"~"+Me[on]+"~";break;case 16:Pe.addRelation(Me[on]);break;case 17:Me[on-1].title=Pe.cleanupLabel(Me[on]),Pe.addRelation(Me[on-1]);break;case 26:this.$=Me[on].trim(),Pe.setAccTitle(this.$);break;case 27:case 28:this.$=Me[on].trim(),Pe.setAccDescription(this.$);break;case 29:Pe.addClassesToNamespace(Me[on-3],Me[on-1]);break;case 30:Pe.addClassesToNamespace(Me[on-4],Me[on-1]);break;case 31:this.$=Me[on],Pe.addNamespace(Me[on]);break;case 32:this.$=[Me[on]];break;case 33:this.$=[Me[on-1]];break;case 34:Me[on].unshift(Me[on-2]),this.$=Me[on];break;case 36:Pe.setCssClass(Me[on-2],Me[on]);break;case 37:Pe.addMembers(Me[on-3],Me[on-1]);break;case 38:Pe.setCssClass(Me[on-5],Me[on-3]),Pe.addMembers(Me[on-5],Me[on-1]);break;case 39:this.$=Me[on],Pe.addClass(Me[on]);break;case 40:this.$=Me[on-1],Pe.addClass(Me[on-1]),Pe.setClassLabel(Me[on-1],Me[on]);break;case 41:Pe.addAnnotation(Me[on],Me[on-2]);break;case 42:this.$=[Me[on]];break;case 43:Me[on].push(Me[on-1]),this.$=Me[on];break;case 44:break;case 45:Pe.addMember(Me[on-1],Pe.cleanupLabel(Me[on]));break;case 46:break;case 47:break;case 48:this.$={id1:Me[on-2],id2:Me[on],relation:Me[on-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:Me[on-3],id2:Me[on],relation:Me[on-1],relationTitle1:Me[on-2],relationTitle2:"none"};break;case 50:this.$={id1:Me[on-3],id2:Me[on],relation:Me[on-2],relationTitle1:"none",relationTitle2:Me[on-1]};break;case 51:this.$={id1:Me[on-4],id2:Me[on],relation:Me[on-2],relationTitle1:Me[on-3],relationTitle2:Me[on-1]};break;case 52:Pe.addNote(Me[on],Me[on-1]);break;case 53:Pe.addNote(Me[on]);break;case 54:Pe.setDirection("TB");break;case 55:Pe.setDirection("BT");break;case 56:Pe.setDirection("RL");break;case 57:Pe.setDirection("LR");break;case 58:this.$={type1:Me[on-2],type2:Me[on],lineType:Me[on-1]};break;case 59:this.$={type1:"none",type2:Me[on],lineType:Me[on-1]};break;case 60:this.$={type1:Me[on-1],type2:"none",lineType:Me[on]};break;case 61:this.$={type1:"none",type2:"none",lineType:Me[on]};break;case 62:this.$=Pe.relationType.AGGREGATION;break;case 63:this.$=Pe.relationType.EXTENSION;break;case 64:this.$=Pe.relationType.COMPOSITION;break;case 65:this.$=Pe.relationType.DEPENDENCY;break;case 66:this.$=Pe.relationType.LOLLIPOP;break;case 67:this.$=Pe.lineType.LINE;break;case 68:this.$=Pe.lineType.DOTTED_LINE;break;case 69:case 75:this.$=Me[on-2],Pe.setClickEvent(Me[on-1],Me[on]);break;case 70:case 76:this.$=Me[on-3],Pe.setClickEvent(Me[on-2],Me[on-1]),Pe.setTooltip(Me[on-2],Me[on]);break;case 71:this.$=Me[on-2],Pe.setLink(Me[on-1],Me[on]);break;case 72:this.$=Me[on-3],Pe.setLink(Me[on-2],Me[on-1],Me[on]);break;case 73:this.$=Me[on-3],Pe.setLink(Me[on-2],Me[on-1]),Pe.setTooltip(Me[on-2],Me[on]);break;case 74:this.$=Me[on-4],Pe.setLink(Me[on-3],Me[on-2],Me[on]),Pe.setTooltip(Me[on-3],Me[on-1]);break;case 77:this.$=Me[on-3],Pe.setClickEvent(Me[on-2],Me[on-1],Me[on]);break;case 78:this.$=Me[on-4],Pe.setClickEvent(Me[on-3],Me[on-2],Me[on-1]),Pe.setTooltip(Me[on-3],Me[on]);break;case 79:this.$=Me[on-3],Pe.setLink(Me[on-2],Me[on]);break;case 80:this.$=Me[on-4],Pe.setLink(Me[on-3],Me[on-1],Me[on]);break;case 81:this.$=Me[on-4],Pe.setLink(Me[on-3],Me[on-1]),Pe.setTooltip(Me[on-3],Me[on]);break;case 82:this.$=Me[on-5],Pe.setLink(Me[on-4],Me[on-2],Me[on]),Pe.setTooltip(Me[on-4],Me[on-1]);break;case 83:Pe.setCssClass(Me[on-1],Me[on]);break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:a,32:f,34:p,35:20,39:w,40:21,43:m,44:b,46:E,47:_,49:A,51:I,52:B,53:N,54:R,55:z,65:W,66:et,68:st,72:at,84:bt,86:mt,87:yt,88:ft,89:ut},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},i(vt,[2,5],{8:[1,44]}),{8:[1,45]},i(X,[2,16],{21:[1,46]}),i(X,[2,18]),i(X,[2,19]),i(X,[2,20]),i(X,[2,21]),i(X,[2,22]),i(X,[2,23]),i(X,[2,24]),i(X,[2,25]),{31:[1,47]},{33:[1,48]},i(X,[2,28]),i(X,[2,44],{48:49,56:52,57:53,13:[1,50],21:[1,51],58:pt,59:U,60:Tt,61:nt,62:It,63:Ot,64:Bt}),{36:[1,61]},i(Et,[2,35],{36:[1,63],41:[1,62]}),i(X,[2,46]),i(X,[2,47]),{16:64,84:bt,86:mt,87:yt,88:ft},{16:35,17:65,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},{16:35,17:66,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},{16:35,17:67,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},{13:[1,68]},{16:35,17:69,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},{13:Z,50:70},i(X,[2,54]),i(X,[2,55]),i(X,[2,56]),i(X,[2,57]),i(Ct,[2,11],{16:35,18:36,17:72,19:[1,73],84:bt,86:mt,87:yt,88:ft,89:ut}),i(Ct,[2,12],{19:[1,74]}),{15:75,16:76,84:bt,86:mt,87:yt,88:ft},{16:35,17:77,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},i(xt,[2,97]),i(xt,[2,98]),i(xt,[2,99]),i(xt,[2,100]),i([1,8,9,12,13,19,21,36,38,41,58,59,60,61,62,63,64,69,71],[2,101]),i(vt,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,17:19,35:20,40:21,16:35,18:36,5:78,30:a,32:f,34:p,39:w,43:m,44:b,46:E,47:_,49:A,51:I,52:B,53:N,54:R,55:z,65:W,66:et,68:st,72:at,84:bt,86:mt,87:yt,88:ft,89:ut}),{5:79,10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:a,32:f,34:p,35:20,39:w,40:21,43:m,44:b,46:E,47:_,49:A,51:I,52:B,53:N,54:R,55:z,65:W,66:et,68:st,72:at,84:bt,86:mt,87:yt,88:ft,89:ut},i(X,[2,17]),i(X,[2,26]),i(X,[2,27]),{13:[1,81],16:35,17:80,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},{48:82,56:52,57:53,58:pt,59:U,60:Tt,61:nt,62:It,63:Ot,64:Bt},i(X,[2,45]),{57:83,63:Ot,64:Bt},i(Ht,[2,61],{56:84,58:pt,59:U,60:Tt,61:nt,62:It}),i(Le,[2,62]),i(Le,[2,63]),i(Le,[2,64]),i(Le,[2,65]),i(Le,[2,66]),i(Ft,[2,67]),i(Ft,[2,68]),{8:[1,86],23:87,37:85,40:21,43:m},{16:88,84:bt,86:mt,87:yt,88:ft},{42:89,46:gn},{45:[1,91]},{13:[1,92]},{13:[1,93]},{69:[1,94],71:[1,95]},{16:96,84:bt,86:mt,87:yt,88:ft},{13:Z,50:97},i(X,[2,53]),i(X,[2,102]),i(Ct,[2,13]),i(Ct,[2,14]),i(Ct,[2,15]),{36:[2,31]},{15:98,16:76,36:[2,9],84:bt,86:mt,87:yt,88:ft},i(Se,[2,39],{11:99,12:[1,100]}),i(vt,[2,7]),{9:[1,101]},i(me,[2,48]),{16:35,17:102,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},{13:[1,104],16:35,17:103,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},i(Ht,[2,60],{56:105,58:pt,59:U,60:Tt,61:nt,62:It}),i(Ht,[2,59]),{38:[1,106]},{23:87,37:107,40:21,43:m},{8:[1,108],38:[2,32]},i(Et,[2,36],{36:[1,109]}),{38:[1,110]},{38:[2,42],42:111,46:gn},{16:35,17:112,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},i(X,[2,69],{13:[1,113]}),i(X,[2,71],{13:[1,115],67:[1,114]}),i(X,[2,75],{13:[1,116],70:[1,117]}),{13:[1,118]},i(X,[2,83]),i(X,[2,52]),{36:[2,10]},i(Se,[2,40]),{13:[1,119]},{1:[2,4]},i(me,[2,50]),i(me,[2,49]),{16:35,17:120,18:36,84:bt,86:mt,87:yt,88:ft,89:ut},i(Ht,[2,58]),i(X,[2,29]),{38:[1,121]},{23:87,37:122,38:[2,33],40:21,43:m},{42:123,46:gn},i(Et,[2,37]),{38:[2,43]},i(X,[2,41]),i(X,[2,70]),i(X,[2,72]),i(X,[2,73],{67:[1,124]}),i(X,[2,76]),i(X,[2,77],{13:[1,125]}),i(X,[2,79],{13:[1,127],67:[1,126]}),{14:[1,128]},i(me,[2,51]),i(X,[2,30]),{38:[2,34]},{38:[1,129]},i(X,[2,74]),i(X,[2,78]),i(X,[2,80]),i(X,[2,81],{67:[1,130]}),i(Se,[2,8]),i(Et,[2,38]),i(X,[2,82])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],75:[2,31],98:[2,10],101:[2,4],111:[2,43],122:[2,34]},parseError:function(zt,re){if(re.recoverable)this.trace(zt);else{var se=new Error(zt);throw se.hash=re,se}},parse:function(zt){var re=this,se=[0],Pe=[],te=[null],Me=[],de=this.table,on="",ni=0,Ks=0,ws=2,fo=1,Xi=Me.slice.call(arguments,1),Er=Object.create(this.lexer),Xn={yy:{}};for(var di in this.yy)Object.prototype.hasOwnProperty.call(this.yy,di)&&(Xn.yy[di]=this.yy[di]);Er.setInput(zt,Xn.yy),Xn.yy.lexer=Er,Xn.yy.parser=this,typeof Er.yylloc>"u"&&(Er.yylloc={});var Ee=Er.yylloc;Me.push(Ee);var Kn=Er.options&&Er.options.ranges;typeof Xn.yy.parseError=="function"?this.parseError=Xn.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function He(){var Du;return Du=Pe.pop()||Er.lex()||fo,typeof Du!="number"&&(Du instanceof Array&&(Pe=Du,Du=Pe.pop()),Du=re.symbols_[Du]||Du),Du}for(var Ti,pn,Es,qa,Ma={},Gs,Po,vs,ru;;){if(pn=se[se.length-1],this.defaultActions[pn]?Es=this.defaultActions[pn]:((Ti===null||typeof Ti>"u")&&(Ti=He()),Es=de[pn]&&de[pn][Ti]),typeof Es>"u"||!Es.length||!Es[0]){var zs="";ru=[];for(Gs in de[pn])this.terminals_[Gs]&&Gs>ws&&ru.push("'"+this.terminals_[Gs]+"'");Er.showPosition?zs="Parse error on line "+(ni+1)+`: -`+Er.showPosition()+` -Expecting `+ru.join(", ")+", got '"+(this.terminals_[Ti]||Ti)+"'":zs="Parse error on line "+(ni+1)+": Unexpected "+(Ti==fo?"end of input":"'"+(this.terminals_[Ti]||Ti)+"'"),this.parseError(zs,{text:Er.match,token:this.terminals_[Ti]||Ti,line:Er.yylineno,loc:Ee,expected:ru})}if(Es[0]instanceof Array&&Es.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pn+", token: "+Ti);switch(Es[0]){case 1:se.push(Ti),te.push(Er.yytext),Me.push(Er.yylloc),se.push(Es[1]),Ti=null,Ks=Er.yyleng,on=Er.yytext,ni=Er.yylineno,Ee=Er.yylloc;break;case 2:if(Po=this.productions_[Es[1]][1],Ma.$=te[te.length-Po],Ma._$={first_line:Me[Me.length-(Po||1)].first_line,last_line:Me[Me.length-1].last_line,first_column:Me[Me.length-(Po||1)].first_column,last_column:Me[Me.length-1].last_column},Kn&&(Ma._$.range=[Me[Me.length-(Po||1)].range[0],Me[Me.length-1].range[1]]),qa=this.performAction.apply(Ma,[on,Ks,ni,Xn.yy,Es[1],te,Me].concat(Xi)),typeof qa<"u")return qa;Po&&(se=se.slice(0,-1*Po*2),te=te.slice(0,-1*Po),Me=Me.slice(0,-1*Po)),se.push(this.productions_[Es[1]][0]),te.push(Ma.$),Me.push(Ma._$),vs=de[se[se.length-2]][se[se.length-1]],se.push(vs);break;case 3:return!0}}return!0}},Ye=function(){var ke={EOF:1,parseError:function(re,se){if(this.yy.parser)this.yy.parser.parseError(re,se);else throw new Error(re)},setInput:function(zt,re){return this.yy=re||this.yy||{},this._input=zt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var zt=this._input[0];this.yytext+=zt,this.yyleng++,this.offset++,this.match+=zt,this.matched+=zt;var re=zt.match(/(?:\r\n?|\n).*/g);return re?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),zt},unput:function(zt){var re=zt.length,se=zt.split(/(?:\r\n?|\n)/g);this._input=zt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-re),this.offset-=re;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),se.length-1&&(this.yylineno-=se.length-1);var te=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:se?(se.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-se.length].length-se[0].length:this.yylloc.first_column-re},this.options.ranges&&(this.yylloc.range=[te[0],te[0]+this.yyleng-re]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(zt){this.unput(this.match.slice(zt))},pastInput:function(){var zt=this.matched.substr(0,this.matched.length-this.match.length);return(zt.length>20?"...":"")+zt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var zt=this.match;return zt.length<20&&(zt+=this._input.substr(0,20-zt.length)),(zt.substr(0,20)+(zt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var zt=this.pastInput(),re=new Array(zt.length+1).join("-");return zt+this.upcomingInput()+` -`+re+"^"},test_match:function(zt,re){var se,Pe,te;if(this.options.backtrack_lexer&&(te={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(te.yylloc.range=this.yylloc.range.slice(0))),Pe=zt[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+zt[0].length},this.yytext+=zt[0],this.match+=zt[0],this.matches=zt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(zt[0].length),this.matched+=zt[0],se=this.performAction.call(this,this.yy,this,re,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),se)return se;if(this._backtrack){for(var Me in te)this[Me]=te[Me];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var zt,re,se,Pe;this._more||(this.yytext="",this.match="");for(var te=this._currentRules(),Me=0;Mere[0].length)){if(re=se,Pe=Me,this.options.backtrack_lexer){if(zt=this.test_match(se,te[Me]),zt!==!1)return zt;if(this._backtrack){re=!1;continue}else return!1}else if(!this.options.flex)break}return re?(zt=this.test_match(re,te[Pe]),zt!==!1?zt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var re=this.next();return re||this.lex()},begin:function(re){this.conditionStack.push(re)},popState:function(){var re=this.conditionStack.length-1;return re>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(re){return re=this.conditionStack.length-1-Math.abs(re||0),re>=0?this.conditionStack[re]:"INITIAL"},pushState:function(re){this.begin(re)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(re,se,Pe,te){switch(Pe){case 0:return 52;case 1:return 53;case 2:return 54;case 3:return 55;case 4:break;case 5:break;case 6:return this.begin("acc_title"),30;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),32;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 69;case 22:this.popState();break;case 23:return 70;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return this.begin("namespace"),39;case 28:return this.popState(),8;case 29:break;case 30:return this.begin("namespace-body"),36;case 31:return this.popState(),38;case 32:return"EOF_IN_STRUCT";case 33:return 8;case 34:break;case 35:return"EDGE_STATE";case 36:return this.begin("class"),43;case 37:return this.popState(),8;case 38:break;case 39:return this.popState(),this.popState(),38;case 40:return this.begin("class-body"),36;case 41:return this.popState(),38;case 42:return"EOF_IN_STRUCT";case 43:return"EDGE_STATE";case 44:return"OPEN_IN_STRUCT";case 45:break;case 46:return"MEMBER";case 47:return 72;case 48:return 65;case 49:return 66;case 50:return 68;case 51:return 49;case 52:return 51;case 53:return 44;case 54:return 45;case 55:return 71;case 56:this.popState();break;case 57:return"GENERICTYPE";case 58:this.begin("generic");break;case 59:this.popState();break;case 60:return"BQUOTE_STR";case 61:this.begin("bqstring");break;case 62:return 67;case 63:return 67;case 64:return 67;case 65:return 67;case 66:return 59;case 67:return 59;case 68:return 61;case 69:return 61;case 70:return 60;case 71:return 58;case 72:return 62;case 73:return 63;case 74:return 64;case 75:return 21;case 76:return 41;case 77:return 84;case 78:return"DOT";case 79:return"PLUS";case 80:return 81;case 81:return"EQUALS";case 82:return"EQUALS";case 83:return 88;case 84:return 12;case 85:return 14;case 86:return"PUNCTUATION";case 87:return 87;case 88:return 86;case 89:return 83;case 90:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,31,32,33,34,35,36,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},namespace:{rules:[26,27,28,29,30,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},"class-body":{rules:[26,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},class:{rules:[26,37,38,39,40,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},acc_descr:{rules:[9,26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},acc_title:{rules:[7,26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},callback_args:{rules:[22,23,26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},callback_name:{rules:[19,20,21,26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},href:{rules:[26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},struct:{rules:[26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},generic:{rules:[26,47,48,49,50,51,52,53,54,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},bqstring:{rules:[26,47,48,49,50,51,52,53,54,55,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},string:{rules:[24,25,26,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,36,47,48,49,50,51,52,53,54,55,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],inclusive:!0}}};return ke}();Ve.lexer=Ye;function ce(){this.yy={}}return ce.prototype=Ve,Ve.Parser=ce,new ce}();Tgt.parser=Tgt;const zRt=Tgt,qRt=["#","+","~","-",""];class HRt{constructor(a,f){this.memberType=f,this.visibility="",this.classifier="";const p=Q1(a,Oe());this.parseMember(p)}getDisplayDetails(){let a=this.visibility+YP(this.id);this.memberType==="method"&&(a+=`(${YP(this.parameters.trim())})`,this.returnType&&(a+=" : "+YP(this.returnType))),a=a.trim();const f=this.parseClassifier();return{displayText:a,cssStyle:f}}parseMember(a){let f="";if(this.memberType==="method"){const p=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,w=a.match(p);if(w){const m=w[1]?w[1].trim():"";if(qRt.includes(m)&&(this.visibility=m),this.id=w[2].trim(),this.parameters=w[3]?w[3].trim():"",f=w[4]?w[4].trim():"",this.returnType=w[5]?w[5].trim():"",f===""){const b=this.returnType.substring(this.returnType.length-1);b.match(/[$*]/)&&(f=b,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const p=a.length,w=a.substring(0,1),m=a.substring(p-1);qRt.includes(w)&&(this.visibility=w),m.match(/[*?]/)&&(f=m),this.id=a.substring(this.visibility===""?0:1,f===""?p:p-1)}this.classifier=f}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const $Y="classId-";let Cgt=[],Jl={},zY=[],VRt=0,xk={},_gt=0,WF=[];const AT=i=>Kr.sanitizeText(i,Oe()),wL=function(i){const a=Kr.sanitizeText(i,Oe());let f="",p=a;if(a.indexOf("~")>0){const w=a.split("~");p=AT(w[0]),f=AT(w[1])}return{className:p,type:f}},sGe=function(i,a){const f=Kr.sanitizeText(i,Oe());a&&(a=AT(a));const{className:p}=wL(f);Jl[p].label=a},qY=function(i){const a=Kr.sanitizeText(i,Oe()),{className:f,type:p}=wL(a);if(Object.hasOwn(Jl,f))return;const w=Kr.sanitizeText(f,Oe());Jl[w]={id:w,type:p,label:w,cssClasses:[],methods:[],members:[],annotations:[],domId:$Y+w+"-"+VRt},VRt++},GRt=function(i){const a=Kr.sanitizeText(i,Oe());if(a in Jl)return Jl[a].domId;throw new Error("Class not found: "+a)},aGe=function(){Cgt=[],Jl={},zY=[],WF=[],WF.push(WRt),xk={},_gt=0,hg()},oGe=function(i){return Jl[i]},cGe=function(){return Jl},uGe=function(){return Cgt},lGe=function(){return zY},hGe=function(i){Ut.debug("Adding relation: "+JSON.stringify(i)),qY(i.id1),qY(i.id2),i.id1=wL(i.id1).className,i.id2=wL(i.id2).className,i.relationTitle1=Kr.sanitizeText(i.relationTitle1.trim(),Oe()),i.relationTitle2=Kr.sanitizeText(i.relationTitle2.trim(),Oe()),Cgt.push(i)},fGe=function(i,a){const f=wL(i).className;Jl[f].annotations.push(a)},URt=function(i,a){qY(i);const f=wL(i).className,p=Jl[f];if(typeof a=="string"){const w=a.trim();w.startsWith("<<")&&w.endsWith(">>")?p.annotations.push(AT(w.substring(2,w.length-2))):w.indexOf(")")>0?p.methods.push(new HRt(w,"method")):w&&p.members.push(new HRt(w,"attribute"))}},dGe=function(i,a){Array.isArray(a)&&(a.reverse(),a.forEach(f=>URt(i,f)))},gGe=function(i,a){const f={id:`note${zY.length}`,class:a,text:i};zY.push(f)},pGe=function(i){return i.startsWith(":")&&(i=i.substring(1)),AT(i.trim())},Sgt=function(i,a){i.split(",").forEach(function(f){let p=f;f[0].match(/\d/)&&(p=$Y+p),Jl[p]!==void 0&&Jl[p].cssClasses.push(a)})},bGe=function(i,a){i.split(",").forEach(function(f){a!==void 0&&(Jl[f].tooltip=AT(a))})},wGe=function(i,a){return a?xk[a].classes[i].tooltip:Jl[i].tooltip},vGe=function(i,a,f){const p=Oe();i.split(",").forEach(function(w){let m=w;w[0].match(/\d/)&&(m=$Y+m),Jl[m]!==void 0&&(Jl[m].link=$a.formatUrl(a,p),p.securityLevel==="sandbox"?Jl[m].linkTarget="_top":typeof f=="string"?Jl[m].linkTarget=AT(f):Jl[m].linkTarget="_blank")}),Sgt(i,"clickable")},mGe=function(i,a,f){i.split(",").forEach(function(p){yGe(p,a,f),Jl[p].haveCallback=!0}),Sgt(i,"clickable")},yGe=function(i,a,f){const p=Kr.sanitizeText(i,Oe());if(Oe().securityLevel!=="loose"||a===void 0)return;const m=p;if(Jl[m]!==void 0){const b=GRt(m);let E=[];if(typeof f=="string"){E=f.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let _=0;_")),w.classed("hover",!0)}).on("mouseout",function(){a.transition().duration(500).style("opacity",0),yr(this).classed("hover",!1)})};WF.push(WRt);let YRt="TB";const HY={setAccTitle:E0,getAccTitle:fg,getAccDescription:gg,setAccDescription:dg,getConfig:()=>Oe().class,addClass:qY,bindFunctions:xGe,clear:aGe,getClass:oGe,getClasses:cGe,getNotes:lGe,addAnnotation:fGe,addNote:gGe,getRelations:uGe,addRelation:hGe,getDirection:()=>YRt,setDirection:i=>{YRt=i},addMember:URt,addMembers:dGe,cleanupLabel:pGe,lineType:kGe,relationType:EGe,setClickEvent:mGe,setCssClass:Sgt,setLink:vGe,getTooltip:wGe,setTooltip:bGe,lookUpDomId:GRt,setDiagramTitle:Nb,getDiagramTitle:pg,setClassLabel:sGe,addNamespace:function(i){xk[i]===void 0&&(xk[i]={id:i,classes:{},children:{},domId:$Y+i+"-"+_gt},_gt++)},addClassesToNamespace:function(i,a){xk[i]!==void 0&&a.map(f=>{Jl[f].parent=i,xk[i].classes[f]=Jl[f]})},getNamespace:function(i){return xk[i]},getNamespaces:function(){return xk}},KRt=i=>`g.classGroup text { - fill: ${i.nodeBorder||i.classText}; - stroke: none; - font-family: ${i.fontFamily}; - font-size: 10px; - - .title { - font-weight: bolder; - } - -} - -.nodeLabel, .edgeLabel { - color: ${i.classText}; -} -.edgeLabel .label rect { - fill: ${i.mainBkg}; -} -.label text { - fill: ${i.classText}; -} -.edgeLabel .label span { - background: ${i.mainBkg}; -} - -.classTitle { - font-weight: bolder; -} -.node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; - stroke-width: 1px; - } - - -.divider { - stroke: ${i.nodeBorder}; - stroke-width: 1; -} - -g.clickable { - cursor: pointer; -} - -g.classGroup rect { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; -} - -g.classGroup line { - stroke: ${i.nodeBorder}; - stroke-width: 1; -} - -.classLabel .box { - stroke: none; - stroke-width: 0; - fill: ${i.mainBkg}; - opacity: 0.5; -} - -.classLabel .label { - fill: ${i.nodeBorder}; - font-size: 10px; -} - -.relation { - stroke: ${i.lineColor}; - stroke-width: 1; - fill: none; -} - -.dashed-line{ - stroke-dasharray: 3; -} - -.dotted-line{ - stroke-dasharray: 1 2; -} - -#compositionStart, .composition { - fill: ${i.lineColor} !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#compositionEnd, .composition { - fill: ${i.lineColor} !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${i.lineColor} !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${i.lineColor} !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#extensionStart, .extension { - fill: transparent !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#extensionEnd, .extension { - fill: transparent !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#aggregationStart, .aggregation { - fill: transparent !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#aggregationEnd, .aggregation { - fill: transparent !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#lollipopStart, .lollipop { - fill: ${i.mainBkg} !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -#lollipopEnd, .lollipop { - fill: ${i.mainBkg} !important; - stroke: ${i.lineColor} !important; - stroke-width: 1; -} - -.edgeTerminals { - font-size: 11px; -} - -.classTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor}; -} -`;let XRt=0;const TGe=function(i,a,f,p,w){const m=function(at){switch(at){case w.db.relationType.AGGREGATION:return"aggregation";case w.db.relationType.EXTENSION:return"extension";case w.db.relationType.COMPOSITION:return"composition";case w.db.relationType.DEPENDENCY:return"dependency";case w.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(at=>!Number.isNaN(at.y));const b=a.points,E=E5().x(function(at){return at.x}).y(function(at){return at.y}).curve(HP),_=i.append("path").attr("d",E(b)).attr("id","edge"+XRt).attr("class","relation");let A="";p.arrowMarkerAbsolute&&(A=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,A=A.replace(/\(/g,"\\("),A=A.replace(/\)/g,"\\)")),f.relation.lineType==1&&_.attr("class","relation dashed-line"),f.relation.lineType==10&&_.attr("class","relation dotted-line"),f.relation.type1!=="none"&&_.attr("marker-start","url("+A+"#"+m(f.relation.type1)+"Start)"),f.relation.type2!=="none"&&_.attr("marker-end","url("+A+"#"+m(f.relation.type2)+"End)");let I,B;const N=a.points.length;let R=$a.calcLabelPosition(a.points);I=R.x,B=R.y;let z,W,et,st;if(N%2!==0&&N>1){let at=$a.calcCardinalityPosition(f.relation.type1!=="none",a.points,a.points[0]),bt=$a.calcCardinalityPosition(f.relation.type2!=="none",a.points,a.points[N-1]);Ut.debug("cardinality_1_point "+JSON.stringify(at)),Ut.debug("cardinality_2_point "+JSON.stringify(bt)),z=at.x,W=at.y,et=bt.x,st=bt.y}if(f.title!==void 0){const at=i.append("g").attr("class","classLabel"),bt=at.append("text").attr("class","label").attr("x",I).attr("y",B).attr("fill","red").attr("text-anchor","middle").text(f.title);window.label=bt;const mt=bt.node().getBBox();at.insert("rect",":first-child").attr("class","box").attr("x",mt.x-p.padding/2).attr("y",mt.y-p.padding/2).attr("width",mt.width+p.padding).attr("height",mt.height+p.padding)}Ut.info("Rendering relation "+JSON.stringify(f)),f.relationTitle1!==void 0&&f.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",z).attr("y",W).attr("fill","black").attr("font-size","6").text(f.relationTitle1),f.relationTitle2!==void 0&&f.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",et).attr("y",st).attr("fill","black").attr("font-size","6").text(f.relationTitle2),XRt++},CGe=function(i,a,f,p){Ut.debug("Rendering class ",a,f);const w=a.id,m={id:w,label:a.id,width:0,height:0},b=i.append("g").attr("id",p.db.lookUpDomId(w)).attr("class","classGroup");let E;a.link?E=b.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",f.textHeight+f.padding).attr("x",0):E=b.append("text").attr("y",f.textHeight+f.padding).attr("x",0);let _=!0;a.annotations.forEach(function(bt){const mt=E.append("tspan").text("«"+bt+"»");_||mt.attr("dy",f.textHeight),_=!1});let A=QRt(a);const I=E.append("tspan").text(A).attr("class","title");_||I.attr("dy",f.textHeight);const B=E.node().getBBox().height;let N,R,z;if(a.members.length>0){N=b.append("line").attr("x1",0).attr("y1",f.padding+B+f.dividerMargin/2).attr("y2",f.padding+B+f.dividerMargin/2);const bt=b.append("text").attr("x",f.padding).attr("y",B+f.dividerMargin+f.textHeight).attr("fill","white").attr("class","classText");_=!0,a.members.forEach(function(mt){ZRt(bt,mt,_,f),_=!1}),R=bt.node().getBBox()}if(a.methods.length>0){z=b.append("line").attr("x1",0).attr("y1",f.padding+B+f.dividerMargin+R.height).attr("y2",f.padding+B+f.dividerMargin+R.height);const bt=b.append("text").attr("x",f.padding).attr("y",B+2*f.dividerMargin+R.height+f.textHeight).attr("fill","white").attr("class","classText");_=!0,a.methods.forEach(function(mt){ZRt(bt,mt,_,f),_=!1})}const W=b.node().getBBox();var et=" ";a.cssClasses.length>0&&(et=et+a.cssClasses.join(" "));const at=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",W.width+2*f.padding).attr("height",W.height+f.padding+.5*f.dividerMargin).attr("class",et).node().getBBox().width;return E.node().childNodes.forEach(function(bt){bt.setAttribute("x",(at-bt.getBBox().width)/2)}),a.tooltip&&E.insert("title").text(a.tooltip),N&&N.attr("x2",at),z&&z.attr("x2",at),m.width=at,m.height=W.height+f.padding+.5*f.dividerMargin,m},QRt=function(i){let a=i.id;return i.type&&(a+="<"+YP(i.type)+">"),a},_Ge=function(i,a,f,p){Ut.debug("Rendering note ",a,f);const w=a.id,m={id:w,text:a.text,width:0,height:0},b=i.append("g").attr("id",w).attr("class","classGroup");let E=b.append("text").attr("y",f.textHeight+f.padding).attr("x",0);const _=JSON.parse(`"${a.text}"`).split(` -`);_.forEach(function(N){Ut.debug(`Adding line: ${N}`),E.append("tspan").text(N).attr("class","title").attr("dy",f.textHeight)});const A=b.node().getBBox(),B=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",A.width+2*f.padding).attr("height",A.height+_.length*f.textHeight+f.padding+.5*f.dividerMargin).node().getBBox().width;return E.node().childNodes.forEach(function(N){N.setAttribute("x",(B-N.getBBox().width)/2)}),m.width=B,m.height=A.height+_.length*f.textHeight+f.padding+.5*f.dividerMargin,m},ZRt=function(i,a,f,p){const{displayText:w,cssStyle:m}=a.getDisplayDetails(),b=i.append("tspan").attr("x",p.padding).text(w);m!==""&&b.attr("style",a.cssStyle),f||b.attr("dy",p.textHeight)},Agt={getClassTitleString:QRt,drawClass:CGe,drawEdge:TGe,drawNote:_Ge};let VY={};const GY=20,YF=function(i){const a=Object.entries(VY).find(f=>f[1].label===i);if(a)return a[0]},SGe=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},AGe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:zRt,db:HY,renderer:{draw:function(i,a,f,p){const w=Oe().class;VY={},Ut.info("Rendering diagram "+i);const m=Oe().securityLevel;let b;m==="sandbox"&&(b=yr("#i"+a));const E=yr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body"),_=E.select(`[id='${a}']`);SGe(_);const A=new c1({multigraph:!0});A.setGraph({isMultiGraph:!0}),A.setDefaultEdgeLabel(function(){return{}});const I=p.db.getClasses(),B=Object.keys(I);for(const at of B){const bt=I[at],mt=Agt.drawClass(_,bt,w,p);VY[mt.id]=mt,A.setNode(mt.id,mt),Ut.info("Org height: "+mt.height)}p.db.getRelations().forEach(function(at){Ut.info("tjoho"+YF(at.id1)+YF(at.id2)+JSON.stringify(at)),A.setEdge(YF(at.id1),YF(at.id2),{relation:at},at.title||"DEFAULT")}),p.db.getNotes().forEach(function(at){Ut.debug(`Adding note: ${JSON.stringify(at)}`);const bt=Agt.drawNote(_,at,w,p);VY[bt.id]=bt,A.setNode(bt.id,bt),at.class&&at.class in I&&A.setEdge(at.id,YF(at.class),{relation:{id1:at.id,id2:at.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),aL(A),A.nodes().forEach(function(at){at!==void 0&&A.node(at)!==void 0&&(Ut.debug("Node "+at+": "+JSON.stringify(A.node(at))),E.select("#"+(p.db.lookUpDomId(at)||at)).attr("transform","translate("+(A.node(at).x-A.node(at).width/2)+","+(A.node(at).y-A.node(at).height/2)+" )"))}),A.edges().forEach(function(at){at!==void 0&&A.edge(at)!==void 0&&(Ut.debug("Edge "+at.v+" -> "+at.w+": "+JSON.stringify(A.edge(at))),Agt.drawEdge(_,A.edge(at),A.edge(at).relation,w,p))});const z=_.node().getBBox(),W=z.width+GY*2,et=z.height+GY*2;k0(_,et,W,w.useMaxWidth);const st=`${z.x-GY} ${z.y-GY} ${W} ${et}`;Ut.debug(`viewBox ${st}`),_.attr("viewBox",st)}},styles:KRt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,HY.clear()}}},Symbol.toStringTag,{value:"Module"})),Lgt=i=>Kr.sanitizeText(i,Oe());let Mgt={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const LGe=function(i,a,f,p){const w=Object.keys(i);Ut.info("keys:",w),Ut.info(i),w.forEach(function(m){var A,I;const b=i[m],_={shape:"rect",id:b.id,domId:b.domId,labelText:Lgt(b.id),labelStyle:"",style:"fill: none; stroke: black",padding:((A=Oe().flowchart)==null?void 0:A.padding)??((I=Oe().class)==null?void 0:I.padding)};a.setNode(b.id,_),JRt(b.classes,a,f,p,b.id),Ut.info("setNode",_)})},JRt=function(i,a,f,p,w){const m=Object.keys(i);Ut.info("keys:",m),Ut.info(i),m.filter(b=>i[b].parent==w).forEach(function(b){var z,W;const E=i[b],_=E.cssClasses.join(" "),A={labelStyle:"",style:""},I=E.label??E.id,B=0,N="class_box",R={labelStyle:A.labelStyle,shape:N,labelText:Lgt(I),classData:E,rx:B,ry:B,class:_,style:A.style,id:E.id,domId:E.domId,tooltip:p.db.getTooltip(E.id,w)||"",haveCallback:E.haveCallback,link:E.link,width:E.type==="group"?500:void 0,type:E.type,padding:((z=Oe().flowchart)==null?void 0:z.padding)??((W=Oe().class)==null?void 0:W.padding)};a.setNode(E.id,R),w&&a.setParent(E.id,w),Ut.info("setNode",R)})},MGe=function(i,a,f,p){Ut.info(i),i.forEach(function(w,m){var W,et;const b=w,E="",_={labelStyle:"",style:""},A=b.text,I=0,B="note",N={labelStyle:_.labelStyle,shape:B,labelText:Lgt(A),noteData:b,rx:I,ry:I,class:E,style:_.style,id:b.id,domId:b.id,tooltip:"",type:"note",padding:((W=Oe().flowchart)==null?void 0:W.padding)??((et=Oe().class)==null?void 0:et.padding)};if(a.setNode(b.id,N),Ut.info("setNode",N),!b.class||!(b.class in p))return;const R=f+m,z={id:`edgeNote${R}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:ew(Mgt.curve,cg)};a.setEdge(b.id,b.class,z,R)})},DGe=function(i,a){const f=Oe().flowchart;let p=0;i.forEach(function(w){var b;p++;const m={classes:"relation",pattern:w.relation.lineType==1?"dashed":"solid",id:"id"+p,arrowhead:w.type==="arrow_open"?"none":"normal",startLabelRight:w.relationTitle1==="none"?"":w.relationTitle1,endLabelLeft:w.relationTitle2==="none"?"":w.relationTitle2,arrowTypeStart:tjt(w.relation.type1),arrowTypeEnd:tjt(w.relation.type2),style:"fill:none",labelStyle:"",curve:ew(f==null?void 0:f.curve,cg)};if(Ut.info(m,w),w.style!==void 0){const E=im(w.style);m.style=E.style,m.labelStyle=E.labelStyle}w.text=w.title,w.text===void 0?w.style!==void 0&&(m.arrowheadStyle="fill: #333"):(m.arrowheadStyle="fill: #333",m.labelpos="c",((b=Oe().flowchart)==null?void 0:b.htmlLabels)??Oe().htmlLabels?(m.labelType="html",m.label=''+w.text+""):(m.labelType="text",m.label=w.text.replace(Kr.lineBreakRegex,` -`),w.style===void 0&&(m.style=m.style||"stroke: #333; stroke-width: 1.5px;fill:none"),m.labelStyle=m.labelStyle.replace("color:","fill:"))),a.setEdge(w.id1,w.id2,m,p)})},IGe=function(i){Mgt={...Mgt,...i}},OGe=async function(i,a,f,p){Ut.info("Drawing class - ",a);const w=Oe().flowchart??Oe().class,m=Oe().securityLevel;Ut.info("config:",w);const b=(w==null?void 0:w.nodeSpacing)??50,E=(w==null?void 0:w.rankSpacing)??50,_=new c1({multigraph:!0,compound:!0}).setGraph({rankdir:p.db.getDirection(),nodesep:b,ranksep:E,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),A=p.db.getNamespaces(),I=p.db.getClasses(),B=p.db.getRelations(),N=p.db.getNotes();Ut.info(B),LGe(A,_,a,p),JRt(I,_,a,p),DGe(B,_),MGe(N,_,B.length+1,I);let R;m==="sandbox"&&(R=yr("#i"+a));const z=yr(m==="sandbox"?R.nodes()[0].contentDocument.body:"body"),W=z.select(`[id="${a}"]`),et=z.select("#"+a+" g");if(await N0t(et,_,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",a),$a.insertTitle(W,"classTitleText",(w==null?void 0:w.titleTopMargin)??5,p.db.getDiagramTitle()),fT(_,W,w==null?void 0:w.diagramPadding,w==null?void 0:w.useMaxWidth),!(w!=null&&w.htmlLabels)){const st=m==="sandbox"?R.nodes()[0].contentDocument:document,at=st.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const bt of at){const mt=bt.getBBox(),yt=st.createElementNS("http://www.w3.org/2000/svg","rect");yt.setAttribute("rx",0),yt.setAttribute("ry",0),yt.setAttribute("width",mt.width),yt.setAttribute("height",mt.height),bt.insertBefore(yt,bt.firstChild)}}};function tjt(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}const PGe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:zRt,db:HY,renderer:{setConf:IGe,draw:OGe},styles:KRt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,HY.clear()}}},Symbol.toStringTag,{value:"Module"}));var Dgt=function(){var i=function(Et,Z,Ct,xt){for(Ct=Ct||{},xt=Et.length;xt--;Ct[Et[xt]]=Z);return Ct},a=[1,2],f=[1,3],p=[1,4],w=[2,4],m=[1,9],b=[1,11],E=[1,15],_=[1,16],A=[1,17],I=[1,18],B=[1,30],N=[1,19],R=[1,20],z=[1,21],W=[1,22],et=[1,23],st=[1,25],at=[1,26],bt=[1,27],mt=[1,28],yt=[1,29],ft=[1,32],ut=[1,33],vt=[1,34],X=[1,35],pt=[1,31],U=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Tt=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],nt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],It={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(Z,Ct,xt,Ht,Le,Ft,gn){var Se=Ft.length-1;switch(Le){case 3:return Ht.setRootDoc(Ft[Se]),Ft[Se];case 4:this.$=[];break;case 5:Ft[Se]!="nl"&&(Ft[Se-1].push(Ft[Se]),this.$=Ft[Se-1]);break;case 6:case 7:this.$=Ft[Se];break;case 8:this.$="nl";break;case 11:this.$=Ft[Se];break;case 12:const ce=Ft[Se-1];ce.description=Ht.trimColon(Ft[Se]),this.$=ce;break;case 13:this.$={stmt:"relation",state1:Ft[Se-2],state2:Ft[Se]};break;case 14:const ke=Ht.trimColon(Ft[Se]);this.$={stmt:"relation",state1:Ft[Se-3],state2:Ft[Se-1],description:ke};break;case 18:this.$={stmt:"state",id:Ft[Se-3],type:"default",description:"",doc:Ft[Se-1]};break;case 19:var me=Ft[Se],Ve=Ft[Se-2].trim();if(Ft[Se].match(":")){var Ye=Ft[Se].split(":");me=Ye[0],Ve=[Ve,Ye[1]]}this.$={stmt:"state",id:me,type:"default",description:Ve};break;case 20:this.$={stmt:"state",id:Ft[Se-3],type:"default",description:Ft[Se-5],doc:Ft[Se-1]};break;case 21:this.$={stmt:"state",id:Ft[Se],type:"fork"};break;case 22:this.$={stmt:"state",id:Ft[Se],type:"join"};break;case 23:this.$={stmt:"state",id:Ft[Se],type:"choice"};break;case 24:this.$={stmt:"state",id:Ht.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:Ft[Se-1].trim(),note:{position:Ft[Se-2].trim(),text:Ft[Se].trim()}};break;case 28:this.$=Ft[Se].trim(),Ht.setAccTitle(this.$);break;case 29:case 30:this.$=Ft[Se].trim(),Ht.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:Ft[Se-1].trim(),classes:Ft[Se].trim()};break;case 33:this.$={stmt:"applyClass",id:Ft[Se-1].trim(),styleClass:Ft[Se].trim()};break;case 34:Ht.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:Ht.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:Ht.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:Ht.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:Ft[Se].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:Ft[Se-2].trim(),classes:[Ft[Se].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:Ft[Se-2].trim(),classes:[Ft[Se].trim()],type:"default",description:""};break}},table:[{3:1,4:a,5:f,6:p},{1:[3]},{3:5,4:a,5:f,6:p},{3:6,4:a,5:f,6:p},i([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],w,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:m,5:b,8:8,9:10,10:12,11:13,12:14,15:E,16:_,18:A,21:I,23:B,24:N,25:R,26:z,27:W,28:et,31:24,32:st,34:at,36:bt,37:mt,41:yt,44:ft,45:ut,46:vt,47:X,50:pt},i(U,[2,5]),{9:36,10:12,11:13,12:14,15:E,16:_,18:A,21:I,23:B,24:N,25:R,26:z,27:W,28:et,31:24,32:st,34:at,36:bt,37:mt,41:yt,44:ft,45:ut,46:vt,47:X,50:pt},i(U,[2,7]),i(U,[2,8]),i(U,[2,9]),i(U,[2,10]),i(U,[2,11],{13:[1,37],14:[1,38]}),i(U,[2,15]),{17:[1,39]},i(U,[2,17],{19:[1,40]}),{22:[1,41]},i(U,[2,21]),i(U,[2,22]),i(U,[2,23]),i(U,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},i(U,[2,27]),{33:[1,46]},{35:[1,47]},i(U,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},i(Tt,[2,40],{51:[1,51]}),i(Tt,[2,41],{51:[1,52]}),i(U,[2,34]),i(U,[2,35]),i(U,[2,36]),i(U,[2,37]),i(U,[2,6]),i(U,[2,12]),{12:53,23:B,50:pt},i(U,[2,16]),i(nt,w,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},i(U,[2,28]),i(U,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},i(U,[2,13],{13:[1,63]}),{4:m,5:b,8:8,9:10,10:12,11:13,12:14,15:E,16:_,18:A,20:[1,64],21:I,23:B,24:N,25:R,26:z,27:W,28:et,31:24,32:st,34:at,36:bt,37:mt,41:yt,44:ft,45:ut,46:vt,47:X,50:pt},i(U,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},i(U,[2,31]),i(U,[2,32]),i(U,[2,33]),i(Tt,[2,42]),i(Tt,[2,43]),i(U,[2,14]),i(U,[2,18]),i(nt,w,{7:68}),i(U,[2,25]),i(U,[2,26]),{4:m,5:b,8:8,9:10,10:12,11:13,12:14,15:E,16:_,18:A,20:[1,69],21:I,23:B,24:N,25:R,26:z,27:W,28:et,31:24,32:st,34:at,36:bt,37:mt,41:yt,44:ft,45:ut,46:vt,47:X,50:pt},i(U,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(Z,Ct){if(Ct.recoverable)this.trace(Z);else{var xt=new Error(Z);throw xt.hash=Ct,xt}},parse:function(Z){var Ct=this,xt=[0],Ht=[],Le=[null],Ft=[],gn=this.table,Se="",me=0,Ve=0,Ye=2,ce=1,ke=Ft.slice.call(arguments,1),zt=Object.create(this.lexer),re={yy:{}};for(var se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,se)&&(re.yy[se]=this.yy[se]);zt.setInput(Z,re.yy),re.yy.lexer=zt,re.yy.parser=this,typeof zt.yylloc>"u"&&(zt.yylloc={});var Pe=zt.yylloc;Ft.push(Pe);var te=zt.options&&zt.options.ranges;typeof re.yy.parseError=="function"?this.parseError=re.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Me(){var Ee;return Ee=Ht.pop()||zt.lex()||ce,typeof Ee!="number"&&(Ee instanceof Array&&(Ht=Ee,Ee=Ht.pop()),Ee=Ct.symbols_[Ee]||Ee),Ee}for(var de,on,ni,Ks,ws={},fo,Xi,Er,Xn;;){if(on=xt[xt.length-1],this.defaultActions[on]?ni=this.defaultActions[on]:((de===null||typeof de>"u")&&(de=Me()),ni=gn[on]&&gn[on][de]),typeof ni>"u"||!ni.length||!ni[0]){var di="";Xn=[];for(fo in gn[on])this.terminals_[fo]&&fo>Ye&&Xn.push("'"+this.terminals_[fo]+"'");zt.showPosition?di="Parse error on line "+(me+1)+`: -`+zt.showPosition()+` -Expecting `+Xn.join(", ")+", got '"+(this.terminals_[de]||de)+"'":di="Parse error on line "+(me+1)+": Unexpected "+(de==ce?"end of input":"'"+(this.terminals_[de]||de)+"'"),this.parseError(di,{text:zt.match,token:this.terminals_[de]||de,line:zt.yylineno,loc:Pe,expected:Xn})}if(ni[0]instanceof Array&&ni.length>1)throw new Error("Parse Error: multiple actions possible at state: "+on+", token: "+de);switch(ni[0]){case 1:xt.push(de),Le.push(zt.yytext),Ft.push(zt.yylloc),xt.push(ni[1]),de=null,Ve=zt.yyleng,Se=zt.yytext,me=zt.yylineno,Pe=zt.yylloc;break;case 2:if(Xi=this.productions_[ni[1]][1],ws.$=Le[Le.length-Xi],ws._$={first_line:Ft[Ft.length-(Xi||1)].first_line,last_line:Ft[Ft.length-1].last_line,first_column:Ft[Ft.length-(Xi||1)].first_column,last_column:Ft[Ft.length-1].last_column},te&&(ws._$.range=[Ft[Ft.length-(Xi||1)].range[0],Ft[Ft.length-1].range[1]]),Ks=this.performAction.apply(ws,[Se,Ve,me,re.yy,ni[1],Le,Ft].concat(ke)),typeof Ks<"u")return Ks;Xi&&(xt=xt.slice(0,-1*Xi*2),Le=Le.slice(0,-1*Xi),Ft=Ft.slice(0,-1*Xi)),xt.push(this.productions_[ni[1]][0]),Le.push(ws.$),Ft.push(ws._$),Er=gn[xt[xt.length-2]][xt[xt.length-1]],xt.push(Er);break;case 3:return!0}}return!0}},Ot=function(){var Et={EOF:1,parseError:function(Ct,xt){if(this.yy.parser)this.yy.parser.parseError(Ct,xt);else throw new Error(Ct)},setInput:function(Z,Ct){return this.yy=Ct||this.yy||{},this._input=Z,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Z=this._input[0];this.yytext+=Z,this.yyleng++,this.offset++,this.match+=Z,this.matched+=Z;var Ct=Z.match(/(?:\r\n?|\n).*/g);return Ct?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Z},unput:function(Z){var Ct=Z.length,xt=Z.split(/(?:\r\n?|\n)/g);this._input=Z+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ct),this.offset-=Ct;var Ht=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),xt.length-1&&(this.yylineno-=xt.length-1);var Le=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:xt?(xt.length===Ht.length?this.yylloc.first_column:0)+Ht[Ht.length-xt.length].length-xt[0].length:this.yylloc.first_column-Ct},this.options.ranges&&(this.yylloc.range=[Le[0],Le[0]+this.yyleng-Ct]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Z){this.unput(this.match.slice(Z))},pastInput:function(){var Z=this.matched.substr(0,this.matched.length-this.match.length);return(Z.length>20?"...":"")+Z.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Z=this.match;return Z.length<20&&(Z+=this._input.substr(0,20-Z.length)),(Z.substr(0,20)+(Z.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Z=this.pastInput(),Ct=new Array(Z.length+1).join("-");return Z+this.upcomingInput()+` -`+Ct+"^"},test_match:function(Z,Ct){var xt,Ht,Le;if(this.options.backtrack_lexer&&(Le={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Le.yylloc.range=this.yylloc.range.slice(0))),Ht=Z[0].match(/(?:\r\n?|\n).*/g),Ht&&(this.yylineno+=Ht.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ht?Ht[Ht.length-1].length-Ht[Ht.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Z[0].length},this.yytext+=Z[0],this.match+=Z[0],this.matches=Z,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Z[0].length),this.matched+=Z[0],xt=this.performAction.call(this,this.yy,this,Ct,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),xt)return xt;if(this._backtrack){for(var Ft in Le)this[Ft]=Le[Ft];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Z,Ct,xt,Ht;this._more||(this.yytext="",this.match="");for(var Le=this._currentRules(),Ft=0;FtCt[0].length)){if(Ct=xt,Ht=Ft,this.options.backtrack_lexer){if(Z=this.test_match(xt,Le[Ft]),Z!==!1)return Z;if(this._backtrack){Ct=!1;continue}else return!1}else if(!this.options.flex)break}return Ct?(Z=this.test_match(Ct,Le[Ht]),Z!==!1?Z:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ct=this.next();return Ct||this.lex()},begin:function(Ct){this.conditionStack.push(Ct)},popState:function(){var Ct=this.conditionStack.length-1;return Ct>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ct){return Ct=this.conditionStack.length-1-Math.abs(Ct||0),Ct>=0?this.conditionStack[Ct]:"INITIAL"},pushState:function(Ct){this.begin(Ct)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ct,xt,Ht,Le){switch(Ht){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),xt.yytext=xt.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),xt.yytext=xt.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),xt.yytext=xt.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),xt.yytext=xt.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),xt.yytext=xt.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),xt.yytext=xt.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),xt.yytext=xt.yytext.substr(2).trim(),30;case 64:return this.popState(),xt.yytext=xt.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return xt.yytext=xt.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return Et}();It.lexer=Ot;function Bt(){this.yy={}}return Bt.prototype=It,It.Parser=Bt,new Bt}();Dgt.parser=Dgt;const ejt=Dgt,FGe="LR",NGe="TB",UY="state",Igt="relation",BGe="classDef",RGe="applyClass",KF="default",njt="divider",Ogt="[*]",rjt="start",ijt=Ogt,sjt="end",ajt="color",ojt="fill",jGe="bgFill",$Ge=",";function cjt(){return{}}let ujt=FGe,WY=[],XF=cjt();const ljt=()=>({relations:[],states:{},documents:{}});let YY={root:ljt()},S0=YY.root,QF=0,hjt=0;const zGe={LINE:0,DOTTED_LINE:1},qGe={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},KY=i=>JSON.parse(JSON.stringify(i)),HGe=i=>{Ut.info("Setting root doc",i),WY=i},VGe=()=>WY,XY=(i,a,f)=>{if(a.stmt===Igt)XY(i,a.state1,!0),XY(i,a.state2,!1);else if(a.stmt===UY&&(a.id==="[*]"?(a.id=f?i.id+"_start":i.id+"_end",a.start=f):a.id=a.id.trim()),a.doc){const p=[];let w=[],m;for(m=0;m0&&w.length>0){const b={stmt:UY,id:VIt(),type:"divider",doc:KY(w)};p.push(KY(b)),a.doc=p}a.doc.forEach(b=>XY(a,b,!0))}},GGe=()=>(XY({id:"root"},{id:"root",doc:WY},!0),{id:"root",doc:WY}),UGe=i=>{let a;i.doc?a=i.doc:a=i,Ut.info(a),fjt(!0),Ut.info("Extract",a),a.forEach(f=>{switch(f.stmt){case UY:LT(f.id.trim(),f.type,f.doc,f.description,f.note,f.classes,f.styles,f.textStyles);break;case Igt:djt(f.state1,f.state2,f.description);break;case BGe:gjt(f.id.trim(),f.classes);break;case RGe:Bgt(f.id.trim(),f.styleClass);break}})},LT=function(i,a=KF,f=null,p=null,w=null,m=null,b=null,E=null){const _=i==null?void 0:i.trim();S0.states[_]===void 0?(Ut.info("Adding state ",_,p),S0.states[_]={id:_,descriptions:[],type:a,doc:f,note:w,classes:[],styles:[],textStyles:[]}):(S0.states[_].doc||(S0.states[_].doc=f),S0.states[_].type||(S0.states[_].type=a)),p&&(Ut.info("Setting state description",_,p),typeof p=="string"&&Ngt(_,p.trim()),typeof p=="object"&&p.forEach(A=>Ngt(_,A.trim()))),w&&(S0.states[_].note=w,S0.states[_].note.text=Kr.sanitizeText(S0.states[_].note.text,Oe())),m&&(Ut.info("Setting state classes",_,m),(typeof m=="string"?[m]:m).forEach(I=>Bgt(_,I.trim()))),b&&(Ut.info("Setting state styles",_,b),(typeof b=="string"?[b]:b).forEach(I=>nUe(_,I.trim()))),E&&(Ut.info("Setting state styles",_,b),(typeof E=="string"?[E]:E).forEach(I=>rUe(_,I.trim())))},fjt=function(i){YY={root:ljt()},S0=YY.root,QF=0,XF=cjt(),i||hg()},ZF=function(i){return S0.states[i]},WGe=function(){return S0.states},YGe=function(){Ut.info("Documents = ",YY)},KGe=function(){return S0.relations};function Pgt(i=""){let a=i;return i===Ogt&&(QF++,a=`${rjt}${QF}`),a}function Fgt(i="",a=KF){return i===Ogt?rjt:a}function XGe(i=""){let a=i;return i===ijt&&(QF++,a=`${sjt}${QF}`),a}function QGe(i="",a=KF){return i===ijt?sjt:a}function ZGe(i,a,f){let p=Pgt(i.id.trim()),w=Fgt(i.id.trim(),i.type),m=Pgt(a.id.trim()),b=Fgt(a.id.trim(),a.type);LT(p,w,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles),LT(m,b,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles),S0.relations.push({id1:p,id2:m,relationTitle:Kr.sanitizeText(f,Oe())})}const djt=function(i,a,f){if(typeof i=="object")ZGe(i,a,f);else{const p=Pgt(i.trim()),w=Fgt(i),m=XGe(a.trim()),b=QGe(a);LT(p,w),LT(m,b),S0.relations.push({id1:p,id2:m,title:Kr.sanitizeText(f,Oe())})}},Ngt=function(i,a){const f=S0.states[i],p=a.startsWith(":")?a.replace(":","").trim():a;f.descriptions.push(Kr.sanitizeText(p,Oe()))},JGe=function(i){return i.substring(0,1)===":"?i.substr(2).trim():i.trim()},tUe=()=>(hjt++,"divider-id-"+hjt),gjt=function(i,a=""){XF[i]===void 0&&(XF[i]={id:i,styles:[],textStyles:[]});const f=XF[i];a!=null&&a.split($Ge).forEach(p=>{const w=p.replace(/([^;]*);/,"$1").trim();if(p.match(ajt)){const b=w.replace(ojt,jGe).replace(ajt,ojt);f.textStyles.push(b)}f.styles.push(w)})},eUe=function(){return XF},Bgt=function(i,a){i.split(",").forEach(function(f){let p=ZF(f);if(p===void 0){const w=f.trim();LT(w),p=ZF(w)}p.classes.push(a)})},nUe=function(i,a){const f=ZF(i);f!==void 0&&f.textStyles.push(a)},rUe=function(i,a){const f=ZF(i);f!==void 0&&f.textStyles.push(a)},$5={getConfig:()=>Oe().state,addState:LT,clear:fjt,getState:ZF,getStates:WGe,getRelations:KGe,getClasses:eUe,getDirection:()=>ujt,addRelation:djt,getDividerId:tUe,setDirection:i=>{ujt=i},cleanupLabel:JGe,lineType:zGe,relationType:qGe,logDocuments:YGe,getRootDoc:VGe,setRootDoc:HGe,getRootDocV2:GGe,extract:UGe,trimColon:i=>i&&i[0]===":"?i.substr(1).trim():i.trim(),getAccTitle:fg,setAccTitle:E0,getAccDescription:gg,setAccDescription:dg,addStyleClass:gjt,setCssClass:Bgt,addDescription:Ngt,setDiagramTitle:Nb,getDiagramTitle:pg},pjt=i=>` -defs #statediagram-barbEnd { - fill: ${i.transitionColor}; - stroke: ${i.transitionColor}; - } -g.stateGroup text { - fill: ${i.nodeBorder}; - stroke: none; - font-size: 10px; -} -g.stateGroup text { - fill: ${i.textColor}; - stroke: none; - font-size: 10px; - -} -g.stateGroup .state-title { - font-weight: bolder; - fill: ${i.stateLabelColor}; -} - -g.stateGroup rect { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; -} - -g.stateGroup line { - stroke: ${i.lineColor}; - stroke-width: 1; -} - -.transition { - stroke: ${i.transitionColor}; - stroke-width: 1; - fill: none; -} - -.stateGroup .composit { - fill: ${i.background}; - border-bottom: 1px -} - -.stateGroup .alt-composit { - fill: #e0e0e0; - border-bottom: 1px -} - -.state-note { - stroke: ${i.noteBorderColor}; - fill: ${i.noteBkgColor}; - - text { - fill: ${i.noteTextColor}; - stroke: none; - font-size: 10px; - } -} - -.stateLabel .box { - stroke: none; - stroke-width: 0; - fill: ${i.mainBkg}; - opacity: 0.5; -} - -.edgeLabel .label rect { - fill: ${i.labelBackgroundColor}; - opacity: 0.5; -} -.edgeLabel .label text { - fill: ${i.transitionLabelColor||i.tertiaryTextColor}; -} -.label div .edgeLabel { - color: ${i.transitionLabelColor||i.tertiaryTextColor}; -} - -.stateLabel text { - fill: ${i.stateLabelColor}; - font-size: 10px; - font-weight: bold; -} - -.node circle.state-start { - fill: ${i.specialStateColor}; - stroke: ${i.specialStateColor}; -} - -.node .fork-join { - fill: ${i.specialStateColor}; - stroke: ${i.specialStateColor}; -} - -.node circle.state-end { - fill: ${i.innerEndBackground}; - stroke: ${i.background}; - stroke-width: 1.5 -} -.end-state-inner { - fill: ${i.compositeBackground||i.background}; - // stroke: ${i.background}; - stroke-width: 1.5 -} - -.node rect { - fill: ${i.stateBkg||i.mainBkg}; - stroke: ${i.stateBorder||i.nodeBorder}; - stroke-width: 1px; -} -.node polygon { - fill: ${i.mainBkg}; - stroke: ${i.stateBorder||i.nodeBorder};; - stroke-width: 1px; -} -#statediagram-barbEnd { - fill: ${i.lineColor}; -} - -.statediagram-cluster rect { - fill: ${i.compositeTitleBackground}; - stroke: ${i.stateBorder||i.nodeBorder}; - stroke-width: 1px; -} - -.cluster-label, .nodeLabel { - color: ${i.stateLabelColor}; -} - -.statediagram-cluster rect.outer { - rx: 5px; - ry: 5px; -} -.statediagram-state .divider { - stroke: ${i.stateBorder||i.nodeBorder}; -} - -.statediagram-state .title-state { - rx: 5px; - ry: 5px; -} -.statediagram-cluster.statediagram-cluster .inner { - fill: ${i.compositeBackground||i.background}; -} -.statediagram-cluster.statediagram-cluster-alt .inner { - fill: ${i.altBackground?i.altBackground:"#efefef"}; -} - -.statediagram-cluster .inner { - rx:0; - ry:0; -} - -.statediagram-state rect.basic { - rx: 5px; - ry: 5px; -} -.statediagram-state rect.divider { - stroke-dasharray: 10,10; - fill: ${i.altBackground?i.altBackground:"#efefef"}; -} - -.note-edge { - stroke-dasharray: 5; -} - -.statediagram-note rect { - fill: ${i.noteBkgColor}; - stroke: ${i.noteBorderColor}; - stroke-width: 1px; - rx: 0; - ry: 0; -} -.statediagram-note rect { - fill: ${i.noteBkgColor}; - stroke: ${i.noteBorderColor}; - stroke-width: 1px; - rx: 0; - ry: 0; -} - -.statediagram-note text { - fill: ${i.noteTextColor}; -} - -.statediagram-note .nodeLabel { - color: ${i.noteTextColor}; -} -.statediagram .edgeLabel { - color: red; // ${i.noteTextColor}; -} - -#dependencyStart, #dependencyEnd { - fill: ${i.lineColor}; - stroke: ${i.lineColor}; - stroke-width: 1; -} - -.statediagramTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor}; -} -`,Rgt={},iUe=(i,a)=>{Rgt[i]=a},sUe=i=>Rgt[i],bjt=()=>Object.keys(Rgt),aUe={get:sUe,set:iUe,keys:bjt,size:()=>bjt().length},oUe=i=>i.append("circle").attr("class","start-state").attr("r",Oe().state.sizeUnit).attr("cx",Oe().state.padding+Oe().state.sizeUnit).attr("cy",Oe().state.padding+Oe().state.sizeUnit),cUe=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Oe().state.textHeight).attr("class","divider").attr("x2",Oe().state.textHeight*2).attr("y1",0).attr("y2",0),uUe=(i,a)=>{const f=i.append("text").attr("x",2*Oe().state.padding).attr("y",Oe().state.textHeight+2*Oe().state.padding).attr("font-size",Oe().state.fontSize).attr("class","state-title").text(a.id),p=f.node().getBBox();return i.insert("rect",":first-child").attr("x",Oe().state.padding).attr("y",Oe().state.padding).attr("width",p.width+2*Oe().state.padding).attr("height",p.height+2*Oe().state.padding).attr("rx",Oe().state.radius),f},lUe=(i,a)=>{const f=function(N,R,z){const W=N.append("tspan").attr("x",2*Oe().state.padding).text(R);z||W.attr("dy",Oe().state.textHeight)},w=i.append("text").attr("x",2*Oe().state.padding).attr("y",Oe().state.textHeight+1.3*Oe().state.padding).attr("font-size",Oe().state.fontSize).attr("class","state-title").text(a.descriptions[0]).node().getBBox(),m=w.height,b=i.append("text").attr("x",Oe().state.padding).attr("y",m+Oe().state.padding*.4+Oe().state.dividerMargin+Oe().state.textHeight).attr("class","state-description");let E=!0,_=!0;a.descriptions.forEach(function(N){E||(f(b,N,_),_=!1),E=!1});const A=i.append("line").attr("x1",Oe().state.padding).attr("y1",Oe().state.padding+m+Oe().state.dividerMargin/2).attr("y2",Oe().state.padding+m+Oe().state.dividerMargin/2).attr("class","descr-divider"),I=b.node().getBBox(),B=Math.max(I.width,w.width);return A.attr("x2",B+3*Oe().state.padding),i.insert("rect",":first-child").attr("x",Oe().state.padding).attr("y",Oe().state.padding).attr("width",B+2*Oe().state.padding).attr("height",I.height+m+2*Oe().state.padding).attr("rx",Oe().state.radius),i},hUe=(i,a,f)=>{const p=Oe().state.padding,w=2*Oe().state.padding,m=i.node().getBBox(),b=m.width,E=m.x,_=i.append("text").attr("x",0).attr("y",Oe().state.titleShift).attr("font-size",Oe().state.fontSize).attr("class","state-title").text(a.id),I=_.node().getBBox().width+w;let B=Math.max(I,b);B===b&&(B=B+w);let N;const R=i.node().getBBox();a.doc,N=E-p,I>b&&(N=(b-B)/2+p),Math.abs(E-R.x)b&&(N=E-(I-b)/2);const z=1-Oe().state.textHeight;return i.insert("rect",":first-child").attr("x",N).attr("y",z).attr("class",f?"alt-composit":"composit").attr("width",B).attr("height",R.height+Oe().state.textHeight+Oe().state.titleShift+1).attr("rx","0"),_.attr("x",N+p),I<=b&&_.attr("x",E+(B-w)/2-I/2+p),i.insert("rect",":first-child").attr("x",N).attr("y",Oe().state.titleShift-Oe().state.textHeight-Oe().state.padding).attr("width",B).attr("height",Oe().state.textHeight*3).attr("rx",Oe().state.radius),i.insert("rect",":first-child").attr("x",N).attr("y",Oe().state.titleShift-Oe().state.textHeight-Oe().state.padding).attr("width",B).attr("height",R.height+3+2*Oe().state.textHeight).attr("rx",Oe().state.radius),i},fUe=i=>(i.append("circle").attr("class","end-state-outer").attr("r",Oe().state.sizeUnit+Oe().state.miniPadding).attr("cx",Oe().state.padding+Oe().state.sizeUnit+Oe().state.miniPadding).attr("cy",Oe().state.padding+Oe().state.sizeUnit+Oe().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",Oe().state.sizeUnit).attr("cx",Oe().state.padding+Oe().state.sizeUnit+2).attr("cy",Oe().state.padding+Oe().state.sizeUnit+2)),dUe=(i,a)=>{let f=Oe().state.forkWidth,p=Oe().state.forkHeight;if(a.parentId){let w=f;f=p,p=w}return i.append("rect").style("stroke","black").style("fill","black").attr("width",f).attr("height",p).attr("x",Oe().state.padding).attr("y",Oe().state.padding)},gUe=(i,a,f,p)=>{let w=0;const m=p.append("text");m.style("text-anchor","start"),m.attr("class","noteText");let b=i.replace(/\r\n/g,"
");b=b.replace(/\n/g,"
");const E=b.split(Kr.lineBreakRegex);let _=1.25*Oe().state.noteMargin;for(const A of E){const I=A.trim();if(I.length>0){const B=m.append("tspan");if(B.text(I),_===0){const N=B.node().getBBox();_+=N.height}w+=_,B.attr("x",a+Oe().state.noteMargin),B.attr("y",f+w+1.25*Oe().state.noteMargin)}}return{textWidth:m.node().getBBox().width,textHeight:w}},pUe=(i,a)=>{a.attr("class","state-note");const f=a.append("rect").attr("x",0).attr("y",Oe().state.padding),p=a.append("g"),{textWidth:w,textHeight:m}=gUe(i,0,0,p);return f.attr("height",m+2*Oe().state.noteMargin),f.attr("width",w+Oe().state.noteMargin*2),f},wjt=function(i,a){const f=a.id,p={id:f,label:a.id,width:0,height:0},w=i.append("g").attr("id",f).attr("class","stateGroup");a.type==="start"&&oUe(w),a.type==="end"&&fUe(w),(a.type==="fork"||a.type==="join")&&dUe(w,a),a.type==="note"&&pUe(a.note.text,w),a.type==="divider"&&cUe(w),a.type==="default"&&a.descriptions.length===0&&uUe(w,a),a.type==="default"&&a.descriptions.length>0&&lUe(w,a);const m=w.node().getBBox();return p.width=m.width+2*Oe().state.padding,p.height=m.height+2*Oe().state.padding,aUe.set(f,p),p};let vjt=0;const bUe=function(i,a,f){const p=function(_){switch(_){case $5.relationType.AGGREGATION:return"aggregation";case $5.relationType.EXTENSION:return"extension";case $5.relationType.COMPOSITION:return"composition";case $5.relationType.DEPENDENCY:return"dependency"}};a.points=a.points.filter(_=>!Number.isNaN(_.y));const w=a.points,m=E5().x(function(_){return _.x}).y(function(_){return _.y}).curve(HP),b=i.append("path").attr("d",m(w)).attr("id","edge"+vjt).attr("class","transition");let E="";if(Oe().state.arrowMarkerAbsolute&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\("),E=E.replace(/\)/g,"\\)")),b.attr("marker-end","url("+E+"#"+p($5.relationType.DEPENDENCY)+"End)"),f.title!==void 0){const _=i.append("g").attr("class","stateLabel"),{x:A,y:I}=$a.calcLabelPosition(a.points),B=Kr.getRows(f.title);let N=0;const R=[];let z=0,W=0;for(let at=0;at<=B.length;at++){const bt=_.append("text").attr("text-anchor","middle").text(B[at]).attr("x",A).attr("y",I+N),mt=bt.node().getBBox();z=Math.max(z,mt.width),W=Math.min(W,mt.x),Ut.info(mt.x,A,I+N),N===0&&(N=bt.node().getBBox().height,Ut.info("Title height",N,I)),R.push(bt)}let et=N*B.length;if(B.length>1){const at=(B.length-1)*N*.5;R.forEach((bt,mt)=>bt.attr("y",I+mt*N-at)),et=N*B.length}const st=_.node().getBBox();_.insert("rect",":first-child").attr("class","box").attr("x",A-z/2-Oe().state.padding/2).attr("y",I-et/2-Oe().state.padding/2-3.5).attr("width",z+Oe().state.padding).attr("height",et+Oe().state.padding),Ut.info(st)}vjt++};let qb;const jgt={},wUe=function(){},vUe=function(i){i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},mUe=function(i,a,f,p){qb=Oe().state;const w=Oe().securityLevel;let m;w==="sandbox"&&(m=yr("#i"+a));const b=yr(w==="sandbox"?m.nodes()[0].contentDocument.body:"body"),E=w==="sandbox"?m.nodes()[0].contentDocument:document;Ut.debug("Rendering diagram "+i);const _=b.select(`[id='${a}']`);vUe(_);const A=p.db.getRootDoc();mjt(A,_,void 0,!1,b,E,p);const I=qb.padding,B=_.node().getBBox(),N=B.width+I*2,R=B.height+I*2,z=N*1.75;k0(_,R,z,qb.useMaxWidth),_.attr("viewBox",`${B.x-qb.padding} ${B.y-qb.padding} `+N+" "+R)},yUe=i=>i?i.length*qb.fontSizeFactor:1,mjt=(i,a,f,p,w,m,b)=>{const E=new c1({compound:!0,multigraph:!0});let _,A=!0;for(_=0;_{const mt=bt.parentElement;let yt=0,ft=0;mt&&(mt.parentElement&&(yt=mt.parentElement.getBBox().width),ft=parseInt(mt.getAttribute("data-x-shift"),10),Number.isNaN(ft)&&(ft=0)),bt.setAttribute("x1",0-ft+8),bt.setAttribute("x2",yt-ft-8)})):Ut.debug("No Node "+st+": "+JSON.stringify(E.node(st)))});let W=z.getBBox();E.edges().forEach(function(st){st!==void 0&&E.edge(st)!==void 0&&(Ut.debug("Edge "+st.v+" -> "+st.w+": "+JSON.stringify(E.edge(st))),bUe(a,E.edge(st),E.edge(st).relation))}),W=z.getBBox();const et={id:f||"root",label:f||"root",width:0,height:0};return et.width=W.width+2*qb.padding,et.height=W.height+2*qb.padding,Ut.debug("Doc rendered",et,E),et},xUe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:ejt,db:$5,renderer:{setConf:wUe,draw:mUe},styles:pjt,init:i=>{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,$5.clear()}}},Symbol.toStringTag,{value:"Module"})),QY="rect",$gt="rectWithTitle",kUe="start",EUe="end",TUe="divider",CUe="roundedWithTitle",_Ue="note",SUe="noteGroup",vL="statediagram",AUe=`${vL}-state`,yjt="transition",LUe="note",MUe=`${yjt} note-edge`,DUe=`${vL}-${LUe}`,IUe=`${vL}-cluster`,OUe=`${vL}-cluster-alt`,xjt="parent",kjt="note",PUe="state",zgt="----",FUe=`${zgt}${kjt}`,Ejt=`${zgt}${xjt}`,Tjt="fill:none",Cjt="fill: #333",_jt="c",Sjt="text",Ajt="normal";let ZY={},kk=0;const NUe=function(i){const a=Object.keys(i);for(const f of a)i[f]},BUe=function(i,a){return a.db.extract(a.db.getRootDocV2()),a.db.getClasses()};function RUe(i){return i==null?"":i.classes?i.classes.join(" "):""}function qgt(i="",a=0,f="",p=zgt){const w=f!==null&&f.length>0?`${p}${f}`:"";return`${PUe}-${i}${w}-${a}`}const JF=(i,a,f,p,w,m)=>{const b=f.id,E=RUe(p[b]);if(b!=="root"){let _=QY;f.start===!0&&(_=kUe),f.start===!1&&(_=EUe),f.type!==KF&&(_=f.type),ZY[b]||(ZY[b]={id:b,shape:_,description:Kr.sanitizeText(b,Oe()),classes:`${E} ${AUe}`});const A=ZY[b];f.description&&(Array.isArray(A.description)?(A.shape=$gt,A.description.push(f.description)):A.description.length>0?(A.shape=$gt,A.description===b?A.description=[f.description]:A.description=[A.description,f.description]):(A.shape=QY,A.description=f.description),A.description=Kr.sanitizeTextOrArray(A.description,Oe())),A.description.length===1&&A.shape===$gt&&(A.shape=QY),!A.type&&f.doc&&(Ut.info("Setting cluster for ",b,Hgt(f)),A.type="group",A.dir=Hgt(f),A.shape=f.type===njt?TUe:CUe,A.classes=A.classes+" "+IUe+" "+(m?OUe:""));const I={labelStyle:"",shape:A.shape,labelText:A.description,classes:A.classes,style:"",id:b,dir:A.dir,domId:qgt(b,kk),type:A.type,padding:15};if(I.centerLabel=!0,f.note){const B={labelStyle:"",shape:_Ue,labelText:f.note.text,classes:DUe,style:"",id:b+FUe+"-"+kk,domId:qgt(b,kk,kjt),type:A.type,padding:15},N={labelStyle:"",shape:SUe,labelText:f.note.text,classes:A.classes,style:"",id:b+Ejt,domId:qgt(b,kk,xjt),type:"group",padding:0};kk++;const R=b+Ejt;i.setNode(R,N),i.setNode(B.id,B),i.setNode(b,I),i.setParent(b,R),i.setParent(B.id,R);let z=b,W=B.id;f.note.position==="left of"&&(z=B.id,W=b),i.setEdge(z,W,{arrowhead:"none",arrowType:"",style:Tjt,labelStyle:"",classes:MUe,arrowheadStyle:Cjt,labelpos:_jt,labelType:Sjt,thickness:Ajt})}else i.setNode(b,I)}a&&a.id!=="root"&&(Ut.trace("Setting node ",b," to be child of its parent ",a.id),i.setParent(b,a.id)),f.doc&&(Ut.trace("Adding nodes children "),jUe(i,f,f.doc,p,w,!m))},jUe=(i,a,f,p,w,m)=>{Ut.trace("items",f),f.forEach(b=>{switch(b.stmt){case UY:JF(i,a,b,p,w,m);break;case KF:JF(i,a,b,p,w,m);break;case Igt:{JF(i,a,b.state1,p,w,m),JF(i,a,b.state2,p,w,m);const E={id:"edge"+kk,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:Tjt,labelStyle:"",label:Kr.sanitizeText(b.description,Oe()),arrowheadStyle:Cjt,labelpos:_jt,labelType:Sjt,thickness:Ajt,classes:yjt};i.setEdge(b.state1.id,b.state2.id,E,kk),kk++}break}})},Hgt=(i,a=NGe)=>{let f=a;if(i.doc)for(let p=0;p{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,$5.clear()}}},Symbol.toStringTag,{value:"Module"}));var Vgt=function(){var i=function(B,N,R,z){for(R=R||{},z=B.length;z--;R[B[z]]=N);return R},a=[6,8,10,11,12,14,16,17,18],f=[1,9],p=[1,10],w=[1,11],m=[1,12],b=[1,13],E=[1,14],_={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(N,R,z,W,et,st,at){var bt=st.length-1;switch(et){case 1:return st[bt-1];case 2:this.$=[];break;case 3:st[bt-1].push(st[bt]),this.$=st[bt-1];break;case 4:case 5:this.$=st[bt];break;case 6:case 7:this.$=[];break;case 8:W.setDiagramTitle(st[bt].substr(6)),this.$=st[bt].substr(6);break;case 9:this.$=st[bt].trim(),W.setAccTitle(this.$);break;case 10:case 11:this.$=st[bt].trim(),W.setAccDescription(this.$);break;case 12:W.addSection(st[bt].substr(8)),this.$=st[bt].substr(8);break;case 13:W.addTask(st[bt-1],st[bt]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:f,12:p,14:w,16:m,17:b,18:E},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:15,11:f,12:p,14:w,16:m,17:b,18:E},i(a,[2,5]),i(a,[2,6]),i(a,[2,8]),{13:[1,16]},{15:[1,17]},i(a,[2,11]),i(a,[2,12]),{19:[1,18]},i(a,[2,4]),i(a,[2,9]),i(a,[2,10]),i(a,[2,13])],defaultActions:{},parseError:function(N,R){if(R.recoverable)this.trace(N);else{var z=new Error(N);throw z.hash=R,z}},parse:function(N){var R=this,z=[0],W=[],et=[null],st=[],at=this.table,bt="",mt=0,yt=0,ft=2,ut=1,vt=st.slice.call(arguments,1),X=Object.create(this.lexer),pt={yy:{}};for(var U in this.yy)Object.prototype.hasOwnProperty.call(this.yy,U)&&(pt.yy[U]=this.yy[U]);X.setInput(N,pt.yy),pt.yy.lexer=X,pt.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var Tt=X.yylloc;st.push(Tt);var nt=X.options&&X.options.ranges;typeof pt.yy.parseError=="function"?this.parseError=pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function It(){var Se;return Se=W.pop()||X.lex()||ut,typeof Se!="number"&&(Se instanceof Array&&(W=Se,Se=W.pop()),Se=R.symbols_[Se]||Se),Se}for(var Ot,Bt,Et,Z,Ct={},xt,Ht,Le,Ft;;){if(Bt=z[z.length-1],this.defaultActions[Bt]?Et=this.defaultActions[Bt]:((Ot===null||typeof Ot>"u")&&(Ot=It()),Et=at[Bt]&&at[Bt][Ot]),typeof Et>"u"||!Et.length||!Et[0]){var gn="";Ft=[];for(xt in at[Bt])this.terminals_[xt]&&xt>ft&&Ft.push("'"+this.terminals_[xt]+"'");X.showPosition?gn="Parse error on line "+(mt+1)+`: -`+X.showPosition()+` -Expecting `+Ft.join(", ")+", got '"+(this.terminals_[Ot]||Ot)+"'":gn="Parse error on line "+(mt+1)+": Unexpected "+(Ot==ut?"end of input":"'"+(this.terminals_[Ot]||Ot)+"'"),this.parseError(gn,{text:X.match,token:this.terminals_[Ot]||Ot,line:X.yylineno,loc:Tt,expected:Ft})}if(Et[0]instanceof Array&&Et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bt+", token: "+Ot);switch(Et[0]){case 1:z.push(Ot),et.push(X.yytext),st.push(X.yylloc),z.push(Et[1]),Ot=null,yt=X.yyleng,bt=X.yytext,mt=X.yylineno,Tt=X.yylloc;break;case 2:if(Ht=this.productions_[Et[1]][1],Ct.$=et[et.length-Ht],Ct._$={first_line:st[st.length-(Ht||1)].first_line,last_line:st[st.length-1].last_line,first_column:st[st.length-(Ht||1)].first_column,last_column:st[st.length-1].last_column},nt&&(Ct._$.range=[st[st.length-(Ht||1)].range[0],st[st.length-1].range[1]]),Z=this.performAction.apply(Ct,[bt,yt,mt,pt.yy,Et[1],et,st].concat(vt)),typeof Z<"u")return Z;Ht&&(z=z.slice(0,-1*Ht*2),et=et.slice(0,-1*Ht),st=st.slice(0,-1*Ht)),z.push(this.productions_[Et[1]][0]),et.push(Ct.$),st.push(Ct._$),Le=at[z[z.length-2]][z[z.length-1]],z.push(Le);break;case 3:return!0}}return!0}},A=function(){var B={EOF:1,parseError:function(R,z){if(this.yy.parser)this.yy.parser.parseError(R,z);else throw new Error(R)},setInput:function(N,R){return this.yy=R||this.yy||{},this._input=N,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var N=this._input[0];this.yytext+=N,this.yyleng++,this.offset++,this.match+=N,this.matched+=N;var R=N.match(/(?:\r\n?|\n).*/g);return R?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),N},unput:function(N){var R=N.length,z=N.split(/(?:\r\n?|\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-R),this.offset-=R;var W=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1&&(this.yylineno-=z.length-1);var et=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===W.length?this.yylloc.first_column:0)+W[W.length-z.length].length-z[0].length:this.yylloc.first_column-R},this.options.ranges&&(this.yylloc.range=[et[0],et[0]+this.yyleng-R]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(N){this.unput(this.match.slice(N))},pastInput:function(){var N=this.matched.substr(0,this.matched.length-this.match.length);return(N.length>20?"...":"")+N.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var N=this.match;return N.length<20&&(N+=this._input.substr(0,20-N.length)),(N.substr(0,20)+(N.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var N=this.pastInput(),R=new Array(N.length+1).join("-");return N+this.upcomingInput()+` -`+R+"^"},test_match:function(N,R){var z,W,et;if(this.options.backtrack_lexer&&(et={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(et.yylloc.range=this.yylloc.range.slice(0))),W=N[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+N[0].length},this.yytext+=N[0],this.match+=N[0],this.matches=N,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(N[0].length),this.matched+=N[0],z=this.performAction.call(this,this.yy,this,R,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),z)return z;if(this._backtrack){for(var st in et)this[st]=et[st];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,R,z,W;this._more||(this.yytext="",this.match="");for(var et=this._currentRules(),st=0;stR[0].length)){if(R=z,W=st,this.options.backtrack_lexer){if(N=this.test_match(z,et[st]),N!==!1)return N;if(this._backtrack){R=!1;continue}else return!1}else if(!this.options.flex)break}return R?(N=this.test_match(R,et[W]),N!==!1?N:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var R=this.next();return R||this.lex()},begin:function(R){this.conditionStack.push(R)},popState:function(){var R=this.conditionStack.length-1;return R>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(R){return R=this.conditionStack.length-1-Math.abs(R||0),R>=0?this.conditionStack[R]:"INITIAL"},pushState:function(R){this.begin(R)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(R,z,W,et){switch(W){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return B}();_.lexer=A;function I(){this.yy={}}return I.prototype=_,_.Parser=I,new I}();Vgt.parser=Vgt;const zUe=Vgt;let mL="";const Ggt=[],tN=[],eN=[],qUe=function(){Ggt.length=0,tN.length=0,mL="",eN.length=0,hg()},HUe=function(i){mL=i,Ggt.push(i)},VUe=function(){return Ggt},GUe=function(){let i=Ljt();const a=100;let f=0;for(;!i&&f{f.people&&i.push(...f.people)}),[...new Set(i)].sort()},WUe=function(i,a){const f=a.substr(1).split(":");let p=0,w=[];f.length===1?(p=Number(f[0]),w=[]):(p=Number(f[0]),w=f[1].split(","));const m=w.map(E=>E.trim()),b={section:mL,type:mL,people:m,task:i,score:p};eN.push(b)},YUe=function(i){const a={section:mL,type:mL,description:i,task:i,classes:[]};tN.push(a)},Ljt=function(){const i=function(f){return eN[f].processed};let a=!0;for(const[f,p]of eN.entries())i(f),a=a&&p.processed;return a},Mjt={getConfig:()=>Oe().journey,clear:qUe,setDiagramTitle:Nb,getDiagramTitle:pg,setAccTitle:E0,getAccTitle:fg,setAccDescription:dg,getAccDescription:gg,addSection:HUe,getSections:VUe,getTasks:GUe,addTask:WUe,addTaskOrg:YUe,getActors:function(){return UUe()}},KUe=i=>`.label { - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - color: ${i.textColor}; - } - .mouth { - stroke: #666; - } - - line { - stroke: ${i.textColor} - } - - .legend { - fill: ${i.textColor}; - } - - .label text { - fill: #333; - } - .label { - color: ${i.textColor} - } - - .face { - ${i.faceColor?`fill: ${i.faceColor}`:"fill: #FFF8DC"}; - stroke: #999; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${i.arrowheadColor}; - } - - .edgePath .path { - stroke: ${i.lineColor}; - stroke-width: 1.5px; - } - - .flowchart-link { - stroke: ${i.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${i.edgeLabelBackground}; - rect { - opacity: 0.5; - } - text-align: center; - } - - .cluster rect { - } - - .cluster text { - fill: ${i.titleColor}; - } - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - font-size: 12px; - background: ${i.tertiaryColor}; - border: 1px solid ${i.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .task-type-0, .section-type-0 { - ${i.fillType0?`fill: ${i.fillType0}`:""}; - } - .task-type-1, .section-type-1 { - ${i.fillType0?`fill: ${i.fillType1}`:""}; - } - .task-type-2, .section-type-2 { - ${i.fillType0?`fill: ${i.fillType2}`:""}; - } - .task-type-3, .section-type-3 { - ${i.fillType0?`fill: ${i.fillType3}`:""}; - } - .task-type-4, .section-type-4 { - ${i.fillType0?`fill: ${i.fillType4}`:""}; - } - .task-type-5, .section-type-5 { - ${i.fillType0?`fill: ${i.fillType5}`:""}; - } - .task-type-6, .section-type-6 { - ${i.fillType0?`fill: ${i.fillType6}`:""}; - } - .task-type-7, .section-type-7 { - ${i.fillType0?`fill: ${i.fillType7}`:""}; - } - - .actor-0 { - ${i.actor0?`fill: ${i.actor0}`:""}; - } - .actor-1 { - ${i.actor1?`fill: ${i.actor1}`:""}; - } - .actor-2 { - ${i.actor2?`fill: ${i.actor2}`:""}; - } - .actor-3 { - ${i.actor3?`fill: ${i.actor3}`:""}; - } - .actor-4 { - ${i.actor4?`fill: ${i.actor4}`:""}; - } - .actor-5 { - ${i.actor5?`fill: ${i.actor5}`:""}; - } -`,Ugt=function(i,a){return JW(i,a)},XUe=function(i,a){const p=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),w=i.append("g");w.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),w.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function m(_){const A=OA().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);_.append("path").attr("class","mouth").attr("d",A).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(_){const A=OA().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);_.append("path").attr("class","mouth").attr("d",A).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function E(_){_.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?m(w):a.score<3?b(w):E(w),p},Djt=function(i,a){const f=i.append("circle");return f.attr("cx",a.cx),f.attr("cy",a.cy),f.attr("class","actor-"+a.pos),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("r",a.r),f.class!==void 0&&f.attr("class",f.class),a.title!==void 0&&f.append("title").text(a.title),f},Ijt=function(i,a){return RDe(i,a)},QUe=function(i,a){function f(w,m,b,E,_){return w+","+m+" "+(w+b)+","+m+" "+(w+b)+","+(m+E-_)+" "+(w+b-_*1.2)+","+(m+E)+" "+w+","+(m+E)}const p=i.append("polygon");p.attr("points",f(a.x,a.y,50,20,7)),p.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,Ijt(i,a)},ZUe=function(i,a,f){const p=i.append("g"),w=bT();w.x=a.x,w.y=a.y,w.fill=a.fill,w.width=f.width*a.taskCount+f.diagramMarginX*(a.taskCount-1),w.height=f.height,w.class="journey-section section-type-"+a.num,w.rx=3,w.ry=3,Ugt(p,w),Pjt(f)(a.text,p,w.x,w.y,w.width,w.height,{class:"journey-section section-type-"+a.num},f,a.colour)};let Ojt=-1;const JUe=function(i,a,f){const p=a.x+f.width/2,w=i.append("g");Ojt++;const m=300+5*30;w.append("line").attr("id","task"+Ojt).attr("x1",p).attr("y1",a.y).attr("x2",p).attr("y2",m).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),XUe(w,{cx:p,cy:300+(5-a.score)*30,score:a.score});const b=bT();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=f.width,b.height=f.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,Ugt(w,b);let E=a.x+14;a.people.forEach(_=>{const A=a.actors[_].color,I={cx:E,cy:a.y,r:7,fill:A,stroke:"#000",title:_,pos:a.actors[_].position};Djt(w,I),E+=10}),Pjt(f)(a.task,w,b.x,b.y,b.width,b.height,{class:"task"},f,a.colour)},tWe=function(i,a){mPt(i,a)},Pjt=function(){function i(w,m,b,E,_,A,I,B){const N=m.append("text").attr("x",b+_/2).attr("y",E+A/2+5).style("font-color",B).style("text-anchor","middle").text(w);p(N,I)}function a(w,m,b,E,_,A,I,B,N){const{taskFontSize:R,taskFontFamily:z}=B,W=w.split(//gi);for(let et=0;et{const w=z5[p].color,m={cx:20,cy:f,r:7,fill:w,stroke:"#000",pos:z5[p].position};nN.drawCircle(i,m);const b={x:40,y:f+7,fill:"#666",text:p,textMargin:a.boxTextMargin|5};nN.drawText(i,b),f+=20})}const JY=Oe().journey,MT=JY.leftMargin,rWe=function(i,a,f,p){const w=Oe().journey,m=Oe().securityLevel;let b;m==="sandbox"&&(b=yr("#i"+a));const E=yr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body");aw.init();const _=E.select("#"+a);nN.initGraphics(_);const A=p.db.getTasks(),I=p.db.getDiagramTitle(),B=p.db.getActors();for(const st in z5)delete z5[st];let N=0;B.forEach(st=>{z5[st]={color:w.actorColours[N%w.actorColours.length],position:N},N++}),nWe(_),aw.insert(0,0,MT,Object.keys(z5).length*50),iWe(_,A,0);const R=aw.getBounds();I&&_.append("text").text(I).attr("x",MT).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const z=R.stopy-R.starty+2*w.diagramMarginY,W=MT+R.stopx+2*w.diagramMarginX;k0(_,z,W,w.useMaxWidth),_.append("line").attr("x1",MT).attr("y1",w.height*4).attr("x2",W-MT-4).attr("y2",w.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const et=I?70:0;_.attr("viewBox",`${R.startx} -25 ${W} ${z+et}`),_.attr("preserveAspectRatio","xMinYMin meet"),_.attr("height",z+et+25)},aw={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(i,a,f,p){i[a]===void 0?i[a]=f:i[a]=p(f,i[a])},updateBounds:function(i,a,f,p){const w=Oe().journey,m=this;let b=0;function E(_){return function(I){b++;const B=m.sequenceItems.length-b+1;m.updateVal(I,"starty",a-B*w.boxMargin,Math.min),m.updateVal(I,"stopy",p+B*w.boxMargin,Math.max),m.updateVal(aw.data,"startx",i-B*w.boxMargin,Math.min),m.updateVal(aw.data,"stopx",f+B*w.boxMargin,Math.max),_!=="activation"&&(m.updateVal(I,"startx",i-B*w.boxMargin,Math.min),m.updateVal(I,"stopx",f+B*w.boxMargin,Math.max),m.updateVal(aw.data,"starty",a-B*w.boxMargin,Math.min),m.updateVal(aw.data,"stopy",p+B*w.boxMargin,Math.max))}}this.sequenceItems.forEach(E())},insert:function(i,a,f,p){const w=Math.min(i,f),m=Math.max(i,f),b=Math.min(a,p),E=Math.max(a,p);this.updateVal(aw.data,"startx",w,Math.min),this.updateVal(aw.data,"starty",b,Math.min),this.updateVal(aw.data,"stopx",m,Math.max),this.updateVal(aw.data,"stopy",E,Math.max),this.updateBounds(w,b,m,E)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},Wgt=JY.sectionFills,Fjt=JY.sectionColours,iWe=function(i,a,f){const p=Oe().journey;let w="";const m=p.height*2+p.diagramMarginY,b=f+m;let E=0,_="#CCC",A="black",I=0;for(const[B,N]of a.entries()){if(w!==N.section){_=Wgt[E%Wgt.length],I=E%Wgt.length,A=Fjt[E%Fjt.length];let z=0;const W=N.section;for(let st=B;st(z5[W]&&(z[W]=z5[W]),z),{});N.x=B*p.taskMargin+B*p.width+MT,N.y=b,N.width=p.diagramMarginX,N.height=p.diagramMarginY,N.colour=A,N.fill=_,N.num=I,N.actors=R,nN.drawTask(i,N,p),aw.insert(N.x,N.y,N.x+N.width+p.taskMargin,300+5*30)}},Njt={setConf:eWe,draw:rWe},sWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:zUe,db:Mjt,renderer:Njt,styles:KUe,init:i=>{Njt.setConf(i.journey),Mjt.clear()}}},Symbol.toStringTag,{value:"Module"})),aWe=(i,a,f)=>{const{parentById:p}=f,w=new Set;let m=i;for(;m;){if(w.add(m),m===a)return m;m=p[m]}for(m=a;m;){if(w.has(m))return m;m=p[m]}return"root"};function tK(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Bjt={exports:{}};(function(i,a){(function(f){i.exports=f()})(function(){return function(){function f(p,w,m){function b(A,I){if(!w[A]){if(!p[A]){var B=typeof tK=="function"&&tK;if(!I&&B)return B(A,!0);if(E)return E(A,!0);var N=new Error("Cannot find module '"+A+"'");throw N.code="MODULE_NOT_FOUND",N}var R=w[A]={exports:{}};p[A][0].call(R.exports,function(z){var W=p[A][1][z];return b(W||z)},R,R.exports,f,p,w,m)}return w[A].exports}for(var E=typeof tK=="function"&&tK,_=0;_0&&arguments[0]!==void 0?arguments[0]:{},N=B.defaultLayoutOptions,R=N===void 0?{}:N,z=B.algorithms,W=z===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:z,et=B.workerFactory,st=B.workerUrl;if(b(this,A),this.defaultLayoutOptions=R,this.initialized=!1,typeof st>"u"&&typeof et>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var at=et;typeof st<"u"&&typeof et>"u"&&(at=function(yt){return new Worker(yt)});var bt=at(st);if(typeof bt.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new _(bt),this.worker.postMessage({cmd:"register",algorithms:W}).then(function(mt){return I.initialized=!0}).catch(console.err)}return m(A,[{key:"layout",value:function(B){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},R=N.layoutOptions,z=R===void 0?this.defaultLayoutOptions:R,W=N.logging,et=W===void 0?!1:W,st=N.measureExecutionTime,at=st===void 0?!1:st;return B?this.worker.postMessage({cmd:"layout",graph:B,layoutOptions:z,options:{logging:et,measureExecutionTime:at}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),A}();w.default=E;var _=function(){function A(I){var B=this;if(b(this,A),I===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=I,this.worker.onmessage=function(N){setTimeout(function(){B.receive(B,N)},0)}}return m(A,[{key:"postMessage",value:function(B){var N=this.id||0;this.id=N+1,B.id=N;var R=this;return new Promise(function(z,W){R.resolvers[N]=function(et,st){et?(R.convertGwtStyleError(et),W(et)):z(st)},R.worker.postMessage(B)})}},{key:"receive",value:function(B,N){var R=N.data,z=B.resolvers[R.id];z&&(delete B.resolvers[R.id],R.error?z(R.error):z(null,R.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(B){if(B){var N=B.__java$exception;N&&(N.cause&&N.cause.backingJsObject&&(B.cause=N.cause.backingJsObject,this.convertGwtStyleError(B.cause)),delete B.__java$exception)}}}]),A}()},{}],2:[function(f,p,w){(function(m){(function(){var b;typeof window<"u"?b=window:typeof m<"u"?b=m:typeof self<"u"&&(b=self);var E;function _(){}function A(){}function I(){}function B(){}function N(){}function R(){}function z(){}function W(){}function et(){}function st(){}function at(){}function bt(){}function mt(){}function yt(){}function ft(){}function ut(){}function vt(){}function X(){}function pt(){}function U(){}function Tt(){}function nt(){}function It(){}function Ot(){}function Bt(){}function Et(){}function Z(){}function Ct(){}function xt(){}function Ht(){}function Le(){}function Ft(){}function gn(){}function Se(){}function me(){}function Ve(){}function Ye(){}function ce(){}function ke(){}function zt(){}function re(){}function se(){}function Pe(){}function te(){}function Me(){}function de(){}function on(){}function ni(){}function Ks(){}function ws(){}function fo(){}function Xi(){}function Er(){}function Xn(){}function di(){}function Ee(){}function Kn(){}function He(){}function Ti(){}function pn(){}function Es(){}function qa(){}function Ma(){}function Gs(){}function Po(){}function vs(){}function ru(){}function zs(){}function Du(){}function pm(){}function uw(){}function Wu(){}function th(){}function Fa(){}function Ml(){}function ha(){}function bc(){}function Cc(){}function pa(){}function Da(){}function Ha(){}function Dl(){}function _c(){}function lw(){}function eh(){}function ed(){}function jd(){}function nd(){}function $d(){}function A0(){}function Bi(){}function cn(){}function kr(){}function Ei(){}function Jo(){}function wc(){}function rf(){}function Oc(){}function sf(){}function af(){}function Qi(){}function Ts(){}function ka(){}function xi(){}function Yc(){}function Ce(){}function vp(){}function Be(){}function Bf(){}function yg(){}function bm(){}function Ek(){}function E3(){}function Il(){}function L0(){}function hw(){}function H5(){}function Hb(){}function V5(){}function f1(){}function rd(){}function id(){}function G5(){}function fw(){}function U5(){}function mp(){}function W5(){}function T3(){}function wm(){}function xg(){}function EL(){}function vl(){}function iN(){}function Sc(){}function cK(){}function Vb(){}function uK(){}function PT(){}function lK(){}function sN(){}function Rf(){}function vm(){}function TL(){}function aN(){}function yp(){}function mm(){}function hK(){}function Gb(){}function fK(){}function dK(){}function Y5(){}function FT(){}function oN(){}function Tk(){}function gK(){}function Ck(){}function pK(){}function bK(){}function wK(){}function vK(){}function mK(){}function yK(){}function xK(){}function kK(){}function EK(){}function TK(){}function CK(){}function CL(){}function _K(){}function SK(){}function NT(){}function cN(){}function K5(){}function AK(){}function LK(){}function MK(){}function DK(){}function IK(){}function BT(){}function _L(){}function uN(){}function C3(){}function _3(){}function OK(){}function of(){}function X5(){}function PK(){}function _k(){}function zd(){}function FK(){}function NK(){}function BK(){}function RK(){}function RT(){}function SL(){}function lN(){}function AL(){}function Q5(){}function jK(){}function hN(){}function fN(){}function $K(){}function zK(){}function qK(){}function HK(){}function VK(){}function GK(){}function qd(){}function dw(){}function UK(){}function dN(){}function gN(){}function WK(){}function S3(){}function Sk(){}function LL(){}function ym(){}function Ak(){}function YK(){}function jT(){}function sd(){}function pN(){}function ML(){}function Lk(){}function DL(){}function bN(){}function KK(){}function IL(){}function XK(){}function QK(){}function wN(){}function Z5(){}function vN(){}function J5(){}function ZK(){}function OL(){}function JK(){}function tX(){}function eX(){}function nX(){}function mN(){}function rX(){}function iX(){}function sX(){}function yN(){}function aX(){}function oX(){}function cX(){}function xN(){}function uX(){}function lX(){}function kN(){}function EN(){}function TN(){}function hX(){}function fX(){}function Mk(){}function tx(){}function $T(){}function dX(){}function PL(){}function zT(){}function FL(){}function CN(){}function _N(){}function gX(){}function pX(){}function bX(){}function SN(){}function AN(){}function wX(){}function vX(){}function mX(){}function yX(){}function xX(){}function LN(){}function kX(){}function EX(){}function TX(){}function CX(){}function MN(){}function qT(){}function _X(){}function SX(){}function DN(){}function AX(){}function LX(){}function MX(){}function DX(){}function IX(){}function OX(){}function IN(){}function PX(){}function ON(){}function FX(){}function NX(){}function BX(){}function HT(){}function RX(){}function VT(){}function jX(){}function PN(){}function FN(){}function NN(){}function BN(){}function gw(){}function RN(){}function jN(){}function $N(){}function zN(){}function $X(){}function ex(){}function GT(){}function A3(){}function zX(){}function qX(){}function UT(){}function HX(){}function VX(){}function GX(){}function UX(){}function WX(){}function YX(){}function KX(){}function XX(){}function QX(){}function ZX(){}function JX(){}function NL(){}function qN(){}function tQ(){}function eQ(){}function nQ(){}function HN(){}function rQ(){}function iQ(){}function sQ(){}function aQ(){}function oQ(){}function cQ(){}function VN(){}function GN(){}function uQ(){}function UN(){}function WN(){}function lQ(){}function hQ(){}function fQ(){}function BL(){}function dQ(){}function Dk(){}function gQ(){}function pQ(){}function bQ(){}function YN(){}function wQ(){}function vQ(){}function mQ(){}function yQ(){}function xQ(){}function kQ(){}function EQ(){}function TQ(){}function CQ(){}function _Q(){}function SQ(){}function AQ(){}function nx(){}function KN(){}function LQ(){}function MQ(){}function DQ(){}function XN(){}function IQ(){}function WT(){}function OQ(){}function PQ(){}function FQ(){}function NQ(){}function BQ(){}function RQ(){}function jQ(){}function $Q(){}function zQ(){}function qQ(){}function rx(){}function HQ(){}function VQ(){}function GQ(){}function UQ(){}function WQ(){}function YQ(){}function KQ(){}function XQ(){}function YT(){}function QQ(){}function ZQ(){}function JQ(){}function tZ(){}function eZ(){}function nZ(){}function rZ(){}function iZ(){}function ix(){}function QN(){}function sZ(){}function RL(){}function aZ(){}function oZ(){}function cZ(){}function uZ(){}function lZ(){}function hZ(){}function fZ(){}function ZN(){}function dZ(){}function JN(){}function gZ(){}function tB(){}function eB(){}function nB(){}function pZ(){}function bZ(){}function KT(){}function jL(){}function XT(){}function wZ(){}function vZ(){}function $L(){}function mZ(){}function yZ(){}function rB(){}function xZ(){}function kZ(){}function EZ(){}function TZ(){}function CZ(){}function _Z(){}function SZ(){}function AZ(){}function LZ(){}function MZ(){}function kg(){}function DZ(){}function xm(){}function iB(){}function IZ(){}function OZ(){}function PZ(){}function FZ(){}function NZ(){}function BZ(){}function RZ(){}function jZ(){}function $Z(){}function Ac(){}function zZ(){}function QT(){}function tc(){}function Kc(){}function zi(){}function zL(){}function qZ(){}function HZ(){}function VZ(){}function sx(){}function km(){}function Ue(){}function GZ(){}function UZ(){}function WZ(){}function YZ(){}function KZ(){}function sB(){}function XZ(){}function QZ(){}function qL(){}function ZZ(){}function Yu(){}function Iu(){}function JZ(){}function tJ(){}function eJ(){}function Em(){}function pw(){}function xp(){}function ad(){}function ax(){}function ZT(){}function Ik(){}function aB(){}function nJ(){}function Ok(){}function oB(){}function rJ(){}function JT(){}function ox(){}function cx(){}function kp(){}function cB(){}function Pk(){}function uB(){}function lB(){}function ux(){}function Ub(){}function M0(){}function Ep(){}function L3(){}function Fk(){}function tC(){}function hB(){}function iJ(){}function fB(){}function dB(){}function gB(){}function Nk(){}function pB(){}function bB(){}function sJ(){}function Bk(){}function Rk(){}function Tm(){}function HL(){}function aJ(){}function oJ(){}function cJ(){}function uJ(){}function lJ(){}function hJ(){}function fJ(){}function dJ(){}function wB(){}function gJ(){}function pJ(){}function bJ(){}function vB(){}function jk(){}function eC(){}function mB(){}function wJ(){}function yB(){}function xB(){}function vJ(){}function nC(){}function Cm(){}function kB(){}function EB(){}function mJ(){}function yJ(){}function rC(){}function TB(){}function CB(){}function uc(){}function xJ(){}function _B(){}function iC(){}function kJ(){}function EJ(){}function sC(){}function SB(){}function aC(){}function oC(){}function jf(){}function VL(){}function GL(){}function lx(){}function TJ(){}function CJ(){}function _J(){}function SJ(){}function _m(){}function AB(){}function hx(){}function d1(){}function LB(){}function MB(){}function DB(){}function IB(){}function OB(){}function PB(){}function $f(){}function du(){}function AJ(){}function LJ(){}function MJ(){}function gu(){}function cC(){}function FB(){}function NB(){}function fx(){}function DJ(){}function $k(){}function IJ(){}function BB(){}function OJ(){}function PJ(){}function uC(){}function RB(){}function UL(){}function lC(){}function FJ(){}function NJ(){}function WL(){}function hC(){}function g1(){}function zk(){}function BJ(){}function qk(){}function YL(){}function Wb(){}function fC(){}function KL(){}function zf(){}function dC(){}function p1(){}function b1(){}function RJ(){}function jJ(){}function M3(){}function Hk(){}function Vk(){}function gC(){}function $J(){}function dx(){}function XL(){}function jB(){}function zJ(){}function pC(){PC()}function qJ(){Rit()}function $B(){o_()}function QL(){sq()}function HJ(){q4t()}function bC(){Jf()}function VJ(){J3t()}function GJ(){iI()}function UJ(){EM()}function WJ(){kM()}function YJ(){KM()}function zB(){BVt()}function KJ(){r6()}function XJ(){$R()}function QJ(){YJt()}function qB(){one()}function ZJ(){_te()}function JJ(){HQt()}function wC(){oE()}function ttt(){nb()}function ett(){cne()}function ntt(){NZt()}function rtt(){Fxt()}function itt(){Kse()}function stt(){VQt()}function HB(){Te()}function att(){qQt()}function VB(){une()}function ott(){fre()}function ZL(){UQt()}function ctt(){Dte()}function GB(){RVt()}function utt(){E5t()}function UB(){uy()}function ltt(){Nne()}function WB(){cI()}function YB(){dat()}function KB(){yst()}function JL(){gv()}function D3(){myt()}function vC(){GQt()}function od(){rle()}function XB(){y5t()}function Gk(){sat()}function tM(){V$()}function htt(){fq()}function Tp(){ui()}function QB(){Sz()}function ZB(){S3t()}function JB(){Dq()}function nh(){IYt()}function eM(){kit()}function tR(){oxt()}function Uk(t){On(t)}function mC(t){this.a=t}function Wk(t){this.a=t}function eR(t){this.a=t}function gx(t){this.a=t}function bw(t){this.a=t}function Yk(t){this.a=t}function nR(t){this.a=t}function ftt(t){this.a=t}function nM(t){this.a=t}function I3(t){this.a=t}function rM(t){this.a=t}function yC(t){this.a=t}function dtt(t){this.a=t}function xC(t){this.a=t}function kC(t){this.a=t}function px(t){this.a=t}function iM(t){this.a=t}function sM(t){this.a=t}function gtt(t){this.a=t}function ptt(t){this.a=t}function btt(t){this.a=t}function rR(t){this.b=t}function wtt(t){this.c=t}function vtt(t){this.a=t}function mtt(t){this.a=t}function ytt(t){this.a=t}function xtt(t){this.a=t}function ktt(t){this.a=t}function Ett(t){this.a=t}function Ttt(t){this.a=t}function Ctt(t){this.a=t}function bx(t){this.a=t}function _tt(t){this.a=t}function Kk(t){this.a=t}function Th(t){this.a=t}function Stt(t){this.a=t}function wx(t){this.a=t}function Xk(t){this.a=t}function EC(t){this.a=t}function Qk(t){this.a=t}function Eg(){this.a=[]}function Att(t,e){t.a=e}function cpt(t,e){t.a=e}function upt(t,e){t.b=e}function lpt(t,e){t.b=e}function hpt(t,e){t.b=e}function aM(t,e){t.j=e}function fpt(t,e){t.g=e}function dpt(t,e){t.i=e}function Ltt(t,e){t.c=e}function w1(t,e){t.d=e}function Mtt(t,e){t.d=e}function gpt(t,e){t.c=e}function D0(t,e){t.k=e}function Dtt(t,e){t.c=e}function iR(t,e){t.c=e}function sR(t,e){t.a=e}function Itt(t,e){t.a=e}function ppt(t,e){t.f=e}function bpt(t,e){t.a=e}function ww(t,e){t.b=e}function oM(t,e){t.d=e}function TC(t,e){t.i=e}function aR(t,e){t.o=e}function wpt(t,e){t.r=e}function vpt(t,e){t.a=e}function oR(t,e){t.b=e}function vw(t,e){t.e=e}function Ott(t,e){t.f=e}function CC(t,e){t.g=e}function vx(t,e){t.e=e}function mpt(t,e){t.f=e}function Zk(t,e){t.f=e}function Ptt(t,e){t.n=e}function Tg(t,e){t.a=e}function ypt(t,e){t.a=e}function O3(t,e){t.c=e}function Ftt(t,e){t.c=e}function Ntt(t,e){t.d=e}function cR(t,e){t.e=e}function uR(t,e){t.g=e}function Btt(t,e){t.a=e}function Jk(t,e){t.c=e}function _C(t,e){t.d=e}function xpt(t,e){t.e=e}function Rtt(t,e){t.f=e}function jtt(t,e){t.j=e}function $tt(t,e){t.a=e}function kpt(t,e){t.b=e}function vc(t,e){t.a=e}function lR(t){t.b=t.a}function ztt(t){t.c=t.d.d}function mx(t){this.d=t}function Cg(t){this.a=t}function Sm(t){this.a=t}function cM(t){this.a=t}function v1(t){this.a=t}function yx(t){this.a=t}function qtt(t){this.a=t}function hR(t){this.a=t}function P3(t){this.a=t}function uM(t){this.a=t}function Am(t){this.a=t}function fR(t){this.a=t}function m1(t){this.a=t}function y(t){this.a=t}function g(t){this.a=t}function x(t){this.b=t}function T(t){this.b=t}function L(t){this.b=t}function O(t){this.a=t}function P(t){this.a=t}function $(t){this.a=t}function q(t){this.c=t}function S(t){this.c=t}function V(t){this.c=t}function Y(t){this.a=t}function rt(t){this.a=t}function ot(t){this.a=t}function ht(t){this.a=t}function dt(t){this.a=t}function Lt(t){this.a=t}function kt(t){this.a=t}function Dt(t){this.a=t}function Pt(t){this.a=t}function $t(t){this.a=t}function Zt(t){this.a=t}function Yt(t){this.a=t}function qt(t){this.a=t}function ne(t){this.a=t}function Gt(t){this.a=t}function ge(t){this.a=t}function be(t){this.a=t}function ie(t){this.a=t}function Fe(t){this.a=t}function we(t){this.a=t}function bn(t){this.a=t}function ze(t){this.a=t}function Ge(t){this.a=t}function En(t){this.a=t}function In(t){this.a=t}function Yn(t){this.a=t}function Sn(t){this.a=t}function Wn(t){this.a=t}function rr(t){this.a=t}function wr(t){this.a=t}function ur(t){this.a=t}function er(t){this.a=t}function vn(t){this.a=t}function gr(t){this.a=t}function fr(t){this.a=t}function Jr(t){this.a=t}function vi(t){this.a=t}function Xs(t){this.a=t}function Ea(t){this.a=t}function Ci(t){this.a=t}function hi(t){this.a=t}function gs(t){this.a=t}function qi(t){this.a=t}function Si(t){this.a=t}function Ui(t){this.a=t}function Va(t){this.e=t}function Qs(t){this.a=t}function qs(t){this.a=t}function Tr(t){this.a=t}function Qt(t){this.a=t}function jn(t){this.a=t}function Sr(t){this.a=t}function ir(t){this.a=t}function sr(t){this.a=t}function Ia(t){this.a=t}function $r(t){this.a=t}function Yi(t){this.a=t}function Fo(t){this.a=t}function Pc(t){this.a=t}function Za(t){this.a=t}function mc(t){this.a=t}function Ta(t){this.a=t}function Ja(t){this.a=t}function ml(t){this.a=t}function qf(t){this.a=t}function Cp(t){this.a=t}function _p(t){this.a=t}function Hf(t){this.a=t}function _g(t){this.a=t}function cd(t){this.a=t}function mw(t){this.a=t}function Lm(t){this.a=t}function xx(t){this.a=t}function F3(t){this.a=t}function kx(t){this.a=t}function SC(t){this.a=t}function N3(t){this.a=t}function Hd(t){this.a=t}function y1(t){this.a=t}function Vd(t){this.a=t}function AC(t){this.a=t}function Yb(t){this.a=t}function dR(t){this.a=t}function Htt(t){this.a=t}function Vtt(t){this.a=t}function Gtt(t){this.a=t}function Utt(t){this.a=t}function Wtt(t){this.a=t}function Ytt(t){this.a=t}function Ktt(t){this.a=t}function t8(t){this.a=t}function lM(t){this.a=t}function LC(t){this.a=t}function gR(t){this.a=t}function pR(t){this.a=t}function Xtt(t){this.a=t}function Sp(t){this.a=t}function hM(t){this.a=t}function bR(t){this.a=t}function e8(t){this.c=t}function Ap(t){this.b=t}function Qtt(t){this.a=t}function S$t(t){this.a=t}function A$t(t){this.a=t}function L$t(t){this.a=t}function M$t(t){this.a=t}function D$t(t){this.a=t}function I$t(t){this.a=t}function O$t(t){this.a=t}function P$t(t){this.a=t}function F$t(t){this.a=t}function N$t(t){this.a=t}function B$t(t){this.a=t}function R$t(t){this.a=t}function j$t(t){this.a=t}function $$t(t){this.a=t}function z$t(t){this.a=t}function q$t(t){this.a=t}function H$t(t){this.a=t}function V$t(t){this.a=t}function G$t(t){this.a=t}function U$t(t){this.a=t}function W$t(t){this.a=t}function Y$t(t){this.a=t}function K$t(t){this.a=t}function Lp(t){this.a=t}function Ex(t){this.a=t}function X$t(t){this.a=t}function Q$t(t){this.a=t}function Z$t(t){this.a=t}function J$t(t){this.a=t}function tzt(t){this.a=t}function ezt(t){this.a=t}function nzt(t){this.a=t}function rzt(t){this.a=t}function izt(t){this.a=t}function szt(t){this.a=t}function azt(t){this.a=t}function ozt(t){this.a=t}function czt(t){this.a=t}function uzt(t){this.a=t}function lzt(t){this.a=t}function hzt(t){this.a=t}function wR(t){this.a=t}function fzt(t){this.a=t}function dzt(t){this.a=t}function gzt(t){this.a=t}function pzt(t){this.a=t}function bzt(t){this.a=t}function wzt(t){this.a=t}function vzt(t){this.a=t}function mzt(t){this.a=t}function yzt(t){this.a=t}function xzt(t){this.a=t}function kzt(t){this.a=t}function Ezt(t){this.a=t}function Tzt(t){this.a=t}function Czt(t){this.a=t}function _zt(t){this.a=t}function Szt(t){this.a=t}function Azt(t){this.a=t}function Lzt(t){this.a=t}function Mzt(t){this.a=t}function Dzt(t){this.a=t}function Izt(t){this.a=t}function Ozt(t){this.a=t}function Pzt(t){this.a=t}function Fzt(t){this.a=t}function Nzt(t){this.a=t}function Bzt(t){this.a=t}function Rzt(t){this.a=t}function jzt(t){this.a=t}function Ept(t){this.a=t}function Vi(t){this.b=t}function $zt(t){this.f=t}function Tpt(t){this.a=t}function zzt(t){this.a=t}function qzt(t){this.a=t}function Hzt(t){this.a=t}function Vzt(t){this.a=t}function Gzt(t){this.a=t}function Uzt(t){this.a=t}function Wzt(t){this.a=t}function Yzt(t){this.a=t}function fM(t){this.a=t}function Kzt(t){this.a=t}function Xzt(t){this.b=t}function Cpt(t){this.c=t}function vR(t){this.e=t}function Qzt(t){this.a=t}function mR(t){this.a=t}function yR(t){this.a=t}function Ztt(t){this.a=t}function Zzt(t){this.a=t}function Jzt(t){this.d=t}function _pt(t){this.a=t}function Spt(t){this.a=t}function yw(t){this.e=t}function WYe(){this.a=0}function B3(){IUt(this)}function he(){ant(this)}function _r(){Xu(this)}function Jtt(){NXt(this)}function tqt(){}function xw(){this.c=oLt}function YYe(t,e){e.Wb(t)}function eqt(t,e){t.b+=e}function nqt(t){t.b=new wet}function it(t){return t.e}function KYe(t){return t.a}function XYe(t){return t.a}function QYe(t){return t.a}function ZYe(t){return t.a}function JYe(t){return t.a}function tKe(){return null}function eKe(){return null}function nKe(){dbt(),dxn()}function rKe(t){t.b.tf(t.e)}function MC(t,e){t.b=e-t.b}function DC(t,e){t.a=e-t.a}function rqt(t,e){e.ad(t.a)}function iKe(t,e){Bs(e,t)}function sKe(t,e,n){t.Od(n,e)}function dM(t,e){t.e=e,e.b=t}function Apt(t){gd(),this.a=t}function iqt(t){gd(),this.a=t}function sqt(t){gd(),this.a=t}function Lpt(t){Wm(),this.a=t}function aqt(t){I8(),Out.be(t)}function Kb(){pWt.call(this)}function Mpt(){pWt.call(this)}function Dpt(){Kb.call(this)}function tet(){Kb.call(this)}function oqt(){Kb.call(this)}function gM(){Kb.call(this)}function Ou(){Kb.call(this)}function IC(){Kb.call(this)}function Or(){Kb.call(this)}function rh(){Kb.call(this)}function cqt(){Kb.call(this)}function lc(){Kb.call(this)}function uqt(){Kb.call(this)}function lqt(){this.a=this}function xR(){this.Bb|=256}function hqt(){this.b=new dUt}function Ipt(){Ipt=Z,new _r}function Opt(){Dpt.call(this)}function fqt(t,e){t.length=e}function kR(t,e){le(t.a,e)}function aKe(t,e){V4t(t.c,e)}function oKe(t,e){Fs(t.b,e)}function cKe(t,e){Jz(t.a,e)}function uKe(t,e){Wit(t.a,e)}function n8(t,e){mi(t.e,e)}function Tx(t){pq(t.c,t.b)}function lKe(t,e){t.kc().Nb(e)}function Ppt(t){this.a=chn(t)}function Hs(){this.a=new _r}function dqt(){this.a=new _r}function ER(){this.a=new he}function eet(){this.a=new he}function Fpt(){this.a=new he}function Ch(){this.a=new uw}function Xb(){this.a=new VJt}function Npt(){this.a=new H5}function Bpt(){this.a=new LVt}function gqt(){this.a=new wZt}function Rpt(){this.a=new OQt}function jpt(){this.a=new rYt}function pqt(){this.a=new he}function $pt(){this.a=new he}function bqt(){this.a=new he}function wqt(){this.a=new he}function vqt(){this.d=new he}function mqt(){this.a=new Hs}function yqt(){this.a=new _r}function xqt(){this.b=new _r}function kqt(){this.b=new he}function zpt(){this.e=new he}function Eqt(){this.d=new he}function Tqt(){this.a=new ttt}function Cqt(){he.call(this)}function qpt(){ER.call(this)}function _qt(){Ij.call(this)}function Sqt(){$pt.call(this)}function net(){OC.call(this)}function OC(){tqt.call(this)}function Cx(){tqt.call(this)}function Hpt(){Cx.call(this)}function Aqt(){lQt.call(this)}function Lqt(){lQt.call(this)}function Mqt(){Xpt.call(this)}function Dqt(){Xpt.call(this)}function Iqt(){Xpt.call(this)}function Oqt(){Qpt.call(this)}function Pu(){Zi.call(this)}function Vpt(){Em.call(this)}function Gpt(){Em.call(this)}function Pqt(){Xqt.call(this)}function Fqt(){Xqt.call(this)}function Nqt(){_r.call(this)}function Bqt(){_r.call(this)}function Rqt(){_r.call(this)}function jqt(){Hs.call(this)}function ret(){ine.call(this)}function $qt(){xR.call(this)}function iet(){x2t.call(this)}function set(){x2t.call(this)}function Upt(){_r.call(this)}function aet(){_r.call(this)}function zqt(){_r.call(this)}function Wpt(){Pk.call(this)}function qqt(){Pk.call(this)}function Hqt(){Wpt.call(this)}function Vqt(){XL.call(this)}function Gqt(t){Lee.call(this,t)}function Uqt(t){Lee.call(this,t)}function Ypt(t){nM.call(this,t)}function Kpt(t){mVt.call(this,t)}function hKe(t){Kpt.call(this,t)}function fKe(t){mVt.call(this,t)}function r8(){this.a=new Zi}function Xpt(){this.a=new Hs}function Qpt(){this.a=new _r}function Wqt(){this.a=new he}function Yqt(){this.j=new he}function Zpt(){this.a=new nB}function Kqt(){this.a=new VHt}function Xqt(){this.a=new cB}function oet(){oet=Z,Sut=new gHt}function cet(){cet=Z,_ut=new dHt}function PC(){PC=Z,Cut=new A}function TR(){TR=Z,Mut=new dWt}function dKe(t){Kpt.call(this,t)}function gKe(t){Kpt.call(this,t)}function Qqt(t){$rt.call(this,t)}function Zqt(t){$rt.call(this,t)}function Jqt(t){CYt.call(this,t)}function uet(t){Pgn.call(this,t)}function kw(t){Om.call(this,t)}function FC(t){NR.call(this,t)}function Jpt(t){NR.call(this,t)}function tHt(t){NR.call(this,t)}function Vo(t){jKt.call(this,t)}function eHt(t){Vo.call(this,t)}function _x(){Qk.call(this,{})}function CR(t){w8(),this.a=t}function NC(t){t.b=null,t.c=0}function pKe(t,e){t.e=e,nue(t,e)}function bKe(t,e){t.a=e,ypn(t)}function het(t,e,n){t.a[e.g]=n}function wKe(t,e,n){Ndn(n,t,e)}function vKe(t,e){HZe(e.i,t.n)}function nHt(t,e){Vun(t).td(e)}function mKe(t,e){return t*t/e}function rHt(t,e){return t.g-e.g}function yKe(t){return new EC(t)}function xKe(t){return new Um(t)}function _R(t){Vo.call(this,t)}function yo(t){Vo.call(this,t)}function iHt(t){Vo.call(this,t)}function fet(t){jKt.call(this,t)}function det(t){wyt(),this.a=t}function sHt(t){DYt(),this.a=t}function Mm(t){Vnt(),this.f=t}function get(t){Vnt(),this.f=t}function i8(t){Vo.call(this,t)}function Fn(t){Vo.call(this,t)}function No(t){Vo.call(this,t)}function aHt(t){Vo.call(this,t)}function Sx(t){Vo.call(this,t)}function je(t){return On(t),t}function Xt(t){return On(t),t}function pM(t){return On(t),t}function tbt(t){return On(t),t}function kKe(t){return On(t),t}function BC(t){return t.b==t.c}function Dm(t){return!!t&&t.b}function EKe(t){return!!t&&t.k}function TKe(t){return!!t&&t.j}function yl(t){On(t),this.a=t}function ebt(t){return g2(t),t}function RC(t){dvt(t,t.length)}function Sg(t){Vo.call(this,t)}function ud(t){Vo.call(this,t)}function pet(t){Vo.call(this,t)}function R3(t){Vo.call(this,t)}function jC(t){Vo.call(this,t)}function Nr(t){Vo.call(this,t)}function bet(t){j2t.call(this,t,0)}function wet(){Wvt.call(this,12,3)}function nbt(){nbt=Z,rEt=new pt}function oHt(){oHt=Z,nEt=new _}function SR(){SR=Z,cS=new mt}function cHt(){cHt=Z,Bge=new ft}function uHt(){throw it(new Or)}function rbt(){throw it(new Or)}function lHt(){throw it(new Or)}function CKe(){throw it(new Or)}function _Ke(){throw it(new Or)}function SKe(){throw it(new Or)}function vet(){this.a=Br(Lr(Ya))}function Ax(t){gd(),this.a=Lr(t)}function hHt(t,e){t.Td(e),e.Sd(t)}function AKe(t,e){t.a.ec().Mc(e)}function LKe(t,e,n){t.c.lf(e,n)}function ibt(t){yo.call(this,t)}function ld(t){Fn.call(this,t)}function Ag(){yx.call(this,"")}function $C(){yx.call(this,"")}function Mp(){yx.call(this,"")}function Im(){yx.call(this,"")}function sbt(t){yo.call(this,t)}function s8(t){T.call(this,t)}function met(t){Ej.call(this,t)}function fHt(t){s8.call(this,t)}function dHt(){xC.call(this,null)}function gHt(){xC.call(this,null)}function AR(){AR=Z,I8()}function pHt(){pHt=Z,Wge=u0n()}function bHt(t){return t.a?t.b:0}function MKe(t){return t.a?t.b:0}function DKe(t,e){return t.a-e.a}function IKe(t,e){return t.a-e.a}function OKe(t,e){return t.a-e.a}function LR(t,e){return Bmt(t,e)}function ct(t,e){return NQt(t,e)}function PKe(t,e){return e in t.a}function wHt(t,e){return t.f=e,t}function FKe(t,e){return t.b=e,t}function vHt(t,e){return t.c=e,t}function NKe(t,e){return t.g=e,t}function abt(t,e){return t.a=e,t}function obt(t,e){return t.f=e,t}function BKe(t,e){return t.k=e,t}function cbt(t,e){return t.a=e,t}function RKe(t,e){return t.e=e,t}function ubt(t,e){return t.e=e,t}function jKe(t,e){return t.f=e,t}function $Ke(t,e){t.b=!0,t.d=e}function zKe(t,e){t.b=new xo(e)}function qKe(t,e,n){e.td(t.a[n])}function HKe(t,e,n){e.we(t.a[n])}function VKe(t,e){return t.b-e.b}function GKe(t,e){return t.g-e.g}function UKe(t,e){return t.s-e.s}function WKe(t,e){return t?0:e-1}function mHt(t,e){return t?0:e-1}function YKe(t,e){return t?e-1:0}function KKe(t,e){return e.Yf(t)}function Ew(t,e){return t.b=e,t}function MR(t,e){return t.a=e,t}function Tw(t,e){return t.c=e,t}function Cw(t,e){return t.d=e,t}function _w(t,e){return t.e=e,t}function lbt(t,e){return t.f=e,t}function zC(t,e){return t.a=e,t}function a8(t,e){return t.b=e,t}function o8(t,e){return t.c=e,t}function Ze(t,e){return t.c=e,t}function kn(t,e){return t.b=e,t}function Je(t,e){return t.d=e,t}function tn(t,e){return t.e=e,t}function XKe(t,e){return t.f=e,t}function en(t,e){return t.g=e,t}function nn(t,e){return t.a=e,t}function rn(t,e){return t.i=e,t}function sn(t,e){return t.j=e,t}function yHt(t,e){return t.k=e,t}function QKe(t,e){return t.j=e,t}function ZKe(t,e){nb(),Uo(e,t)}function JKe(t,e,n){Wen(t.a,e,n)}function xHt(t){RXt.call(this,t)}function hbt(t){RXt.call(this,t)}function DR(t){Snt.call(this,t)}function kHt(t){bhn.call(this,t)}function Dp(t){Qw.call(this,t)}function EHt(t){prt.call(this,t)}function THt(t){prt.call(this,t)}function CHt(){b2t.call(this,"")}function Ca(){this.a=0,this.b=0}function _Ht(){this.b=0,this.a=0}function SHt(t,e){t.b=0,ry(t,e)}function tXe(t,e){t.c=e,t.b=!0}function AHt(t,e){return t.c._b(e)}function Vf(t){return t.e&&t.e()}function yet(t){return t?t.d:null}function LHt(t,e){return eie(t.b,e)}function eXe(t){return t?t.g:null}function nXe(t){return t?t.i:null}function Ip(t){return P0(t),t.o}function Sw(){Sw=Z,G4e=ydn()}function MHt(){MHt=Z,na=I0n()}function c8(){c8=Z,aLt=kdn()}function DHt(){DHt=Z,L5e=xdn()}function fbt(){fbt=Z,pc=wpn()}function dbt(){dbt=Z,Ab=K8()}function IHt(){throw it(new Or)}function OHt(){throw it(new Or)}function PHt(){throw it(new Or)}function FHt(){throw it(new Or)}function NHt(){throw it(new Or)}function BHt(){throw it(new Or)}function IR(t){this.a=new Lx(t)}function gbt(t){Ihe(),_xn(this,t)}function Op(t){this.a=new Ynt(t)}function j3(t,e){for(;t.ye(e););}function pbt(t,e){for(;t.sd(e););}function $3(t,e){return t.a+=e,t}function xet(t,e){return t.a+=e,t}function Lg(t,e){return t.a+=e,t}function Aw(t,e){return t.a+=e,t}function qC(t){return Vp(t),t.a}function OR(t){return t.b!=t.d.c}function RHt(t){return t.l|t.m<<22}function bbt(t,e){return t.d[e.p]}function jHt(t,e){return avn(t,e)}function wbt(t,e,n){t.splice(e,n)}function $Ht(t){t.c?Eue(t):Tue(t)}function PR(t){this.a=0,this.b=t}function zHt(){this.a=new vI(m_t)}function qHt(){this.b=new vI(s_t)}function HHt(){this.b=new vI(Zht)}function VHt(){this.b=new vI(Zht)}function GHt(){throw it(new Or)}function UHt(){throw it(new Or)}function WHt(){throw it(new Or)}function YHt(){throw it(new Or)}function KHt(){throw it(new Or)}function XHt(){throw it(new Or)}function QHt(){throw it(new Or)}function ZHt(){throw it(new Or)}function JHt(){throw it(new Or)}function tVt(){throw it(new Or)}function rXe(){throw it(new lc)}function iXe(){throw it(new lc)}function bM(t){this.a=new eVt(t)}function eVt(t){pcn(this,t,p0n())}function wM(t){return!t||kXt(t)}function vM(t){return Y1[t]!=-1}function sXe(){ZH!=0&&(ZH=0),JH=-1}function nVt(){Tut==null&&(Tut=[])}function aXe(t,e){tat(Wt(t.a),e)}function oXe(t,e){tat(Wt(t.a),e)}function mM(t,e){K3.call(this,t,e)}function u8(t,e){mM.call(this,t,e)}function vbt(t,e){this.b=t,this.c=e}function rVt(t,e){this.b=t,this.a=e}function iVt(t,e){this.a=t,this.b=e}function sVt(t,e){this.a=t,this.b=e}function aVt(t,e){this.a=t,this.b=e}function oVt(t,e){this.a=t,this.b=e}function cVt(t,e){this.a=t,this.b=e}function uVt(t,e){this.a=t,this.b=e}function lVt(t,e){this.a=t,this.b=e}function hVt(t,e){this.a=t,this.b=e}function fVt(t,e){this.b=t,this.a=e}function dVt(t,e){this.b=t,this.a=e}function gVt(t,e){this.b=t,this.a=e}function pVt(t,e){this.b=t,this.a=e}function Vr(t,e){this.f=t,this.g=e}function l8(t,e){this.e=t,this.d=e}function Lw(t,e){this.g=t,this.i=e}function ket(t,e){this.a=t,this.b=e}function bVt(t,e){this.a=t,this.f=e}function wVt(t,e){this.b=t,this.c=e}function cXe(t,e){this.a=t,this.b=e}function vVt(t,e){this.a=t,this.b=e}function Eet(t,e){this.a=t,this.b=e}function mVt(t){A2t(t.dc()),this.c=t}function FR(t){this.b=u(Lr(t),83)}function yVt(t){this.a=u(Lr(t),83)}function Om(t){this.a=u(Lr(t),15)}function xVt(t){this.a=u(Lr(t),15)}function NR(t){this.b=u(Lr(t),47)}function BR(){this.q=new b.Date}function Gd(){Gd=Z,vEt=new Ct}function h8(){h8=Z,a7=new Ot}function HC(t){return t.f.c+t.g.c}function yM(t,e){return t.b.Hc(e)}function kVt(t,e){return t.b.Ic(e)}function EVt(t,e){return t.b.Qc(e)}function TVt(t,e){return t.b.Hc(e)}function CVt(t,e){return t.c.uc(e)}function I0(t,e){return t.a._b(e)}function _Vt(t,e){return yi(t.c,e)}function SVt(t,e){return Tl(t.b,e)}function AVt(t,e){return t>e&&e0}function Cet(t,e){return yc(t,e)<0}function KC(t,e){return t.a.get(e)}function xXe(t,e){return e.split(t)}function WVt(t,e){return Tl(t.e,e)}function _bt(t){return On(t),!1}function WR(t){_n.call(this,t,21)}function kXe(t,e){TQt.call(this,t,e)}function YR(t,e){Vr.call(this,t,e)}function _et(t,e){Vr.call(this,t,e)}function Sbt(t){ort(),CYt.call(this,t)}function Abt(t,e){AKt(t,t.length,e)}function CM(t,e){rXt(t,t.length,e)}function EXe(t,e,n){e.ud(t.a.Ge(n))}function TXe(t,e,n){e.we(t.a.Fe(n))}function CXe(t,e,n){e.td(t.a.Kb(n))}function _Xe(t,e,n){t.Mb(n)&&e.td(n)}function XC(t,e,n){t.splice(e,0,n)}function SXe(t,e){return Nu(t.e,e)}function KR(t,e){this.d=t,this.e=e}function YVt(t,e){this.b=t,this.a=e}function KVt(t,e){this.b=t,this.a=e}function Lbt(t,e){this.b=t,this.a=e}function XVt(t,e){this.a=t,this.b=e}function QVt(t,e){this.a=t,this.b=e}function ZVt(t,e){this.a=t,this.b=e}function JVt(t,e){this.a=t,this.b=e}function Dx(t,e){this.a=t,this.b=e}function Mbt(t,e){this.b=t,this.a=e}function Dbt(t,e){this.b=t,this.a=e}function XR(t,e){Vr.call(this,t,e)}function QR(t,e){Vr.call(this,t,e)}function Ibt(t,e){Vr.call(this,t,e)}function Obt(t,e){Vr.call(this,t,e)}function z3(t,e){Vr.call(this,t,e)}function Aet(t,e){Vr.call(this,t,e)}function Let(t,e){Vr.call(this,t,e)}function Met(t,e){Vr.call(this,t,e)}function ZR(t,e){Vr.call(this,t,e)}function Pbt(t,e){Vr.call(this,t,e)}function Det(t,e){Vr.call(this,t,e)}function _M(t,e){Vr.call(this,t,e)}function JR(t,e){Vr.call(this,t,e)}function Iet(t,e){Vr.call(this,t,e)}function QC(t,e){Vr.call(this,t,e)}function Fbt(t,e){Vr.call(this,t,e)}function ms(t,e){Vr.call(this,t,e)}function tj(t,e){Vr.call(this,t,e)}function tGt(t,e){this.a=t,this.b=e}function eGt(t,e){this.a=t,this.b=e}function nGt(t,e){this.a=t,this.b=e}function rGt(t,e){this.a=t,this.b=e}function iGt(t,e){this.a=t,this.b=e}function sGt(t,e){this.a=t,this.b=e}function aGt(t,e){this.a=t,this.b=e}function oGt(t,e){this.a=t,this.b=e}function cGt(t,e){this.a=t,this.b=e}function Nbt(t,e){this.b=t,this.a=e}function uGt(t,e){this.b=t,this.a=e}function lGt(t,e){this.b=t,this.a=e}function hGt(t,e){this.b=t,this.a=e}function g8(t,e){this.c=t,this.d=e}function fGt(t,e){this.e=t,this.d=e}function dGt(t,e){this.a=t,this.b=e}function gGt(t,e){this.b=e,this.c=t}function ej(t,e){Vr.call(this,t,e)}function SM(t,e){Vr.call(this,t,e)}function Oet(t,e){Vr.call(this,t,e)}function ZC(t,e){Vr.call(this,t,e)}function Bbt(t,e){Vr.call(this,t,e)}function Pet(t,e){Vr.call(this,t,e)}function Fet(t,e){Vr.call(this,t,e)}function AM(t,e){Vr.call(this,t,e)}function Rbt(t,e){Vr.call(this,t,e)}function Net(t,e){Vr.call(this,t,e)}function JC(t,e){Vr.call(this,t,e)}function jbt(t,e){Vr.call(this,t,e)}function t9(t,e){Vr.call(this,t,e)}function e9(t,e){Vr.call(this,t,e)}function Fm(t,e){Vr.call(this,t,e)}function Bet(t,e){Vr.call(this,t,e)}function Ret(t,e){Vr.call(this,t,e)}function $bt(t,e){Vr.call(this,t,e)}function n9(t,e){Vr.call(this,t,e)}function jet(t,e){Vr.call(this,t,e)}function nj(t,e){Vr.call(this,t,e)}function LM(t,e){Vr.call(this,t,e)}function MM(t,e){Vr.call(this,t,e)}function Ix(t,e){Vr.call(this,t,e)}function $et(t,e){Vr.call(this,t,e)}function zbt(t,e){Vr.call(this,t,e)}function zet(t,e){Vr.call(this,t,e)}function qet(t,e){Vr.call(this,t,e)}function qbt(t,e){Vr.call(this,t,e)}function Het(t,e){Vr.call(this,t,e)}function Vet(t,e){Vr.call(this,t,e)}function Get(t,e){Vr.call(this,t,e)}function Uet(t,e){Vr.call(this,t,e)}function Hbt(t,e){Vr.call(this,t,e)}function pGt(t,e){this.b=t,this.a=e}function bGt(t,e){this.a=t,this.b=e}function wGt(t,e){this.a=t,this.b=e}function vGt(t,e){this.a=t,this.b=e}function mGt(t,e){this.a=t,this.b=e}function Vbt(t,e){Vr.call(this,t,e)}function Gbt(t,e){Vr.call(this,t,e)}function yGt(t,e){this.b=t,this.d=e}function Ubt(t,e){Vr.call(this,t,e)}function Wbt(t,e){Vr.call(this,t,e)}function xGt(t,e){this.a=t,this.b=e}function kGt(t,e){this.a=t,this.b=e}function rj(t,e){Vr.call(this,t,e)}function r9(t,e){Vr.call(this,t,e)}function Ybt(t,e){Vr.call(this,t,e)}function Kbt(t,e){Vr.call(this,t,e)}function Xbt(t,e){Vr.call(this,t,e)}function Wet(t,e){Vr.call(this,t,e)}function Qbt(t,e){Vr.call(this,t,e)}function Yet(t,e){Vr.call(this,t,e)}function ij(t,e){Vr.call(this,t,e)}function Ket(t,e){Vr.call(this,t,e)}function Xet(t,e){Vr.call(this,t,e)}function DM(t,e){Vr.call(this,t,e)}function Qet(t,e){Vr.call(this,t,e)}function Zbt(t,e){Vr.call(this,t,e)}function IM(t,e){Vr.call(this,t,e)}function Jbt(t,e){Vr.call(this,t,e)}function AXe(t,e){return Nu(t.c,e)}function LXe(t,e){return Nu(e.b,t)}function MXe(t,e){return-t.b.Je(e)}function t2t(t,e){return Nu(t.g,e)}function OM(t,e){Vr.call(this,t,e)}function Ox(t,e){Vr.call(this,t,e)}function EGt(t,e){this.a=t,this.b=e}function TGt(t,e){this.a=t,this.b=e}function $e(t,e){this.a=t,this.b=e}function i9(t,e){Vr.call(this,t,e)}function s9(t,e){Vr.call(this,t,e)}function PM(t,e){Vr.call(this,t,e)}function Zet(t,e){Vr.call(this,t,e)}function sj(t,e){Vr.call(this,t,e)}function a9(t,e){Vr.call(this,t,e)}function Jet(t,e){Vr.call(this,t,e)}function aj(t,e){Vr.call(this,t,e)}function q3(t,e){Vr.call(this,t,e)}function FM(t,e){Vr.call(this,t,e)}function o9(t,e){Vr.call(this,t,e)}function c9(t,e){Vr.call(this,t,e)}function NM(t,e){Vr.call(this,t,e)}function oj(t,e){Vr.call(this,t,e)}function H3(t,e){Vr.call(this,t,e)}function cj(t,e){Vr.call(this,t,e)}function CGt(t,e){this.a=t,this.b=e}function _Gt(t,e){this.a=t,this.b=e}function SGt(t,e){this.a=t,this.b=e}function AGt(t,e){this.a=t,this.b=e}function LGt(t,e){this.a=t,this.b=e}function MGt(t,e){this.a=t,this.b=e}function fa(t,e){this.a=t,this.b=e}function uj(t,e){Vr.call(this,t,e)}function DGt(t,e){this.a=t,this.b=e}function IGt(t,e){this.a=t,this.b=e}function OGt(t,e){this.a=t,this.b=e}function PGt(t,e){this.a=t,this.b=e}function FGt(t,e){this.a=t,this.b=e}function NGt(t,e){this.a=t,this.b=e}function BGt(t,e){this.b=t,this.a=e}function RGt(t,e){this.b=t,this.a=e}function jGt(t,e){this.b=t,this.a=e}function $Gt(t,e){this.b=t,this.a=e}function zGt(t,e){this.a=t,this.b=e}function qGt(t,e){this.a=t,this.b=e}function DXe(t,e){own(t.a,u(e,56))}function HGt(t,e){mon(t.a,u(e,11))}function IXe(t,e){return k8(),e!=t}function VGt(){return pHt(),new Wge}function GGt(){_rt(),this.b=new Hs}function UGt(){kq(),this.a=new Hs}function WGt(){Uvt(),evt.call(this)}function Px(t,e){Vr.call(this,t,e)}function YGt(t,e){this.a=t,this.b=e}function KGt(t,e){this.a=t,this.b=e}function lj(t,e){this.a=t,this.b=e}function XGt(t,e){this.a=t,this.b=e}function QGt(t,e){this.a=t,this.b=e}function ZGt(t,e){this.a=t,this.b=e}function JGt(t,e){this.d=t,this.b=e}function e2t(t,e){this.d=t,this.e=e}function tUt(t,e){this.f=t,this.c=e}function BM(t,e){this.b=t,this.c=e}function n2t(t,e){this.i=t,this.g=e}function eUt(t,e){this.e=t,this.a=e}function nUt(t,e){this.a=t,this.b=e}function r2t(t,e){t.i=null,fz(t,e)}function OXe(t,e){t&&ki(dP,t,e)}function rUt(t,e){return ist(t.a,e)}function hj(t){return XD(t.c,t.b)}function ec(t){return t?t.dd():null}function Vt(t){return t??null}function Nm(t){return typeof t===b6}function Bm(t){return typeof t===Nxt}function ra(t){return typeof t===Vat}function Np(t,e){return t.Hd().Xb(e)}function fj(t,e){return Kcn(t.Kc(),e)}function Dw(t,e){return yc(t,e)==0}function PXe(t,e){return yc(t,e)>=0}function u9(t,e){return yc(t,e)!=0}function FXe(t){return""+(On(t),t)}function RM(t,e){return t.substr(e)}function iUt(t){return cl(t),t.d.gc()}function tnt(t){return Dbn(t,t.c),t}function dj(t){return k9(t==null),t}function l9(t,e){return t.a+=""+e,t}function go(t,e){return t.a+=""+e,t}function h9(t,e){return t.a+=""+e,t}function hc(t,e){return t.a+=""+e,t}function Gr(t,e){return t.a+=""+e,t}function i2t(t,e){return t.a+=""+e,t}function sUt(t,e){fs(t,e,t.a,t.a.a)}function Zb(t,e){fs(t,e,t.c.b,t.c)}function NXe(t,e,n){gae(e,Wst(t,n))}function BXe(t,e,n){gae(e,Wst(t,n))}function RXe(t,e){Mon(new nr(t),e)}function aUt(t,e){t.q.setTime(Yw(e))}function oUt(t,e){lvt.call(this,t,e)}function cUt(t,e){lvt.call(this,t,e)}function ent(t,e){lvt.call(this,t,e)}function uUt(t){Xu(this),Y9(this,t)}function s2t(t){return An(t,0),null}function Gf(t){return t.a=0,t.b=0,t}function lUt(t,e){return t.a=e.g+1,t}function jXe(t,e){return t.j[e.p]==2}function a2t(t){return xnn(u(t,79))}function hUt(){hUt=Z,zpe=Wr(lst())}function fUt(){fUt=Z,i2e=Wr(Yce())}function dUt(){this.b=new Lx(ty(12))}function gUt(){this.b=0,this.a=!1}function pUt(){this.b=0,this.a=!1}function f9(t){this.a=t,pC.call(this)}function bUt(t){this.a=t,pC.call(this)}function mn(t,e){Ps.call(this,t,e)}function nnt(t,e){qm.call(this,t,e)}function V3(t,e){n2t.call(this,t,e)}function rnt(t,e){tE.call(this,t,e)}function wUt(t,e){jM.call(this,t,e)}function ii(t,e){GR(),ki(dU,t,e)}function int(t,e){return Pl(t.a,0,e)}function vUt(t,e){return t.a.a.a.cc(e)}function mUt(t,e){return Vt(t)===Vt(e)}function $Xe(t,e){return Ms(t.a,e.a)}function zXe(t,e){return pu(t.a,e.a)}function qXe(t,e){return tXt(t.a,e.a)}function hd(t,e){return t.indexOf(e)}function Iw(t,e){return t==e?0:t?1:-1}function gj(t){return t<10?"0"+t:""+t}function HXe(t){return Lr(t),new f9(t)}function yUt(t){return iu(t.l,t.m,t.h)}function p8(t){return ps((On(t),t))}function VXe(t){return ps((On(t),t))}function xUt(t,e){return pu(t.g,e.g)}function Bo(t){return typeof t===Nxt}function GXe(t){return t==Lv||t==Fy}function UXe(t){return t==Lv||t==Py}function o2t(t){return Ro(t.b.b,t,0)}function kUt(t){this.a=VGt(),this.b=t}function EUt(t){this.a=VGt(),this.b=t}function WXe(t,e){return le(t.a,e),e}function YXe(t,e){return le(t.c,e),t}function TUt(t,e){return $l(t.a,e),t}function KXe(t,e){return df(),e.a+=t}function XXe(t,e){return df(),e.a+=t}function QXe(t,e){return df(),e.c+=t}function c2t(t,e){$8(t,0,t.length,e)}function O0(){kt.call(this,new a2)}function CUt(){Wj.call(this,0,0,0,0)}function Fx(){ah.call(this,0,0,0,0)}function xo(t){this.a=t.a,this.b=t.b}function Bp(t){return t==zh||t==Cf}function b8(t){return t==rg||t==ng}function _Ut(t){return t==n5||t==e5}function G3(t){return t!=G1&&t!=Tb}function xl(t){return t.Lg()&&t.Mg()}function SUt(t){return u$(u(t,118))}function pj(t){return $l(new Vs,t)}function AUt(t,e){return new tE(e,t)}function ZXe(t,e){return new tE(e,t)}function u2t(t,e,n){iz(t,e),sz(t,n)}function bj(t,e,n){tv(t,e),Jw(t,n)}function x1(t,e,n){ku(t,e),Eu(t,n)}function wj(t,e,n){V8(t,e),U8(t,n)}function vj(t,e,n){G8(t,e),W8(t,n)}function snt(t,e){aE(t,e),Y8(t,t.D)}function l2t(t){tUt.call(this,t,!0)}function LUt(t,e,n){J2t.call(this,t,e,n)}function Rp(t){rb(),Jcn.call(this,t)}function MUt(){YR.call(this,"Head",1)}function DUt(){YR.call(this,"Tail",3)}function ant(t){t.c=Nt(Qn,De,1,0,5,1)}function IUt(t){t.a=Nt(Qn,De,1,8,5,1)}function OUt(t){xu(t.xf(),new ur(t))}function U3(t){return t!=null?Hi(t):0}function JXe(t,e){return ey(e,T1(t))}function tQe(t,e){return ey(e,T1(t))}function eQe(t,e){return t[t.length]=e}function nQe(t,e){return t[t.length]=e}function h2t(t){return een(t.b.Kc(),t.a)}function rQe(t,e){return hz(srt(t.d),e)}function iQe(t,e){return hz(srt(t.g),e)}function sQe(t,e){return hz(srt(t.j),e)}function eo(t,e){Ps.call(this,t.b,e)}function Ow(t){Wj.call(this,t,t,t,t)}function f2t(t){return t.b&&Sat(t),t.a}function d2t(t){return t.b&&Sat(t),t.c}function aQe(t,e){$1||(t.b=e)}function ont(t,e,n){return ts(t,e,n),n}function PUt(t,e,n){ts(t.c[e.g],e.g,n)}function oQe(t,e,n){u(t.c,69).Xh(e,n)}function cQe(t,e,n){x1(n,n.i+t,n.j+e)}function uQe(t,e){Dr(Lc(t.a),YQt(e))}function lQe(t,e){Dr(al(t.a),KQt(e))}function d9(t){gi(),yw.call(this,t)}function hQe(t){return t==null?0:Hi(t)}function FUt(){FUt=Z,Dht=new i_(_ft)}function Pr(){Pr=Z,new NUt,new he}function NUt(){new _r,new _r,new _r}function g2t(){g2t=Z,Ipt(),iEt=new _r}function k1(){k1=Z,b.Math.log(2)}function ih(){ih=Z,p0=(qVt(),Q4e)}function fQe(){throw it(new Sg(kge))}function dQe(){throw it(new Sg(kge))}function gQe(){throw it(new Sg(Ege))}function pQe(){throw it(new Sg(Ege))}function BUt(t){this.a=t,Iwt.call(this,t)}function cnt(t){this.a=t,FR.call(this,t)}function unt(t){this.a=t,FR.call(this,t)}function Zs(t,e){$nt(t.c,t.c.length,e)}function Go(t){return t.ae?1:0}function jUt(t,e){return yc(t,e)>0?t:e}function iu(t,e,n){return{l:t,m:e,h:n}}function bQe(t,e){t.a!=null&&HGt(e,t.a)}function $Ut(t){t.a=new xt,t.c=new xt}function mj(t){this.b=t,this.a=new he}function zUt(t){this.b=new Ce,this.a=t}function b2t(t){cwt.call(this),this.a=t}function qUt(){YR.call(this,"Range",2)}function HUt(){l4t(),this.a=new vI(I7t)}function wQe(t,e){Lr(e),Q3(t).Jc(new st)}function vQe(t,e){return Fl(),e.n.b+=t}function mQe(t,e,n){return ki(t.g,n,e)}function yQe(t,e,n){return ki(t.k,n,e)}function xQe(t,e){return ki(t.a,e.a,e)}function W3(t,e,n){return M3t(e,n,t.c)}function w2t(t){return new $e(t.c,t.d)}function kQe(t){return new $e(t.c,t.d)}function nc(t){return new $e(t.a,t.b)}function VUt(t,e){return G4n(t.a,e,null)}function EQe(t){Oa(t,null),oa(t,null)}function GUt(t){Art(t,null),Lrt(t,null)}function UUt(){jM.call(this,null,null)}function WUt(){Sj.call(this,null,null)}function v2t(t){this.a=t,_r.call(this)}function TQe(t){this.b=(wn(),new q(t))}function yj(t){t.j=Nt(wEt,ee,310,0,0,1)}function CQe(t,e,n){t.c.Vc(e,u(n,133))}function _Qe(t,e,n){t.c.ji(e,u(n,133))}function YUt(t,e){xr(t),t.Gc(u(e,15))}function g9(t,e){return o4n(t.c,t.b,e)}function SQe(t,e){return new bWt(t.Kc(),e)}function lnt(t,e){return _un(t.Kc(),e)!=-1}function m2t(t,e){return t.a.Bc(e)!=null}function xj(t){return t.Ob()?t.Pb():null}function KUt(t){return Mh(t,0,t.length)}function _t(t,e){return t!=null&&gst(t,e)}function AQe(t,e){t.q.setHours(e),E_(t,e)}function XUt(t,e){t.c&&(Hwt(e),kQt(e))}function LQe(t,e,n){u(t.Kb(n),164).Nb(e)}function MQe(t,e,n){return R4n(t,e,n),n}function QUt(t,e,n){t.a=e^1502,t.b=n^Eot}function hnt(t,e,n){return t.a[e.g][n.g]}function E1(t,e){return t.a[e.c.p][e.p]}function DQe(t,e){return t.e[e.c.p][e.p]}function IQe(t,e){return t.c[e.c.p][e.p]}function OQe(t,e){return t.j[e.p]=q2n(e)}function PQe(t,e){return kmt(t.f,e.tg())}function FQe(t,e){return kmt(t.b,e.tg())}function NQe(t,e){return t.a0?e*e/t:e*e*100}function oZe(t,e){return t>0?e/(t*t):e*100}function cZe(t,e,n){return le(e,yie(t,n))}function uZe(t,e,n){V$(),t.Xe(e)&&n.td(t)}function m8(t,e,n){var r;r=t.Zc(e),r.Rb(n)}function jm(t,e,n){return t.a+=e,t.b+=n,t}function lZe(t,e,n){return t.a*=e,t.b*=n,t}function qM(t,e,n){return t.a-=e,t.b-=n,t}function H2t(t,e){return t.a=e.a,t.b=e.b,t}function Mj(t){return t.a=-t.a,t.b=-t.b,t}function AWt(t){this.c=t,this.a=1,this.b=1}function LWt(t){this.c=t,ku(t,0),Eu(t,0)}function MWt(t){Zi.call(this),V9(this,t)}function DWt(t){qat(),nqt(this),this.mf(t)}function IWt(t,e){YC(),jM.call(this,t,e)}function V2t(t,e){Mg(),Sj.call(this,t,e)}function OWt(t,e){Mg(),Sj.call(this,t,e)}function PWt(t,e){Mg(),V2t.call(this,t,e)}function kl(t,e,n){_l.call(this,t,e,n,2)}function vnt(t,e){ih(),Uj.call(this,t,e)}function FWt(t,e){ih(),vnt.call(this,t,e)}function G2t(t,e){ih(),vnt.call(this,t,e)}function NWt(t,e){ih(),G2t.call(this,t,e)}function U2t(t,e){ih(),Uj.call(this,t,e)}function BWt(t,e){ih(),U2t.call(this,t,e)}function RWt(t,e){ih(),Uj.call(this,t,e)}function hZe(t,e){return t.c.Fc(u(e,133))}function W2t(t,e,n){return Pq(TD(t,e),n)}function fZe(t,e,n){return e.Qk(t.e,t.c,n)}function dZe(t,e,n){return e.Rk(t.e,t.c,n)}function mnt(t,e){return Zp(t.e,u(e,49))}function gZe(t,e,n){n_(al(t.a),e,KQt(n))}function pZe(t,e,n){n_(Lc(t.a),e,YQt(n))}function Y2t(t,e){e.$modCount=t.$modCount}function m9(){m9=Z,HS=new Vi("root")}function y8(){y8=Z,pP=new Pqt,new Fqt}function jWt(){this.a=new Uw,this.b=new Uw}function K2t(){ine.call(this),this.Bb|=Ka}function $Wt(){Vr.call(this,"GROW_TREE",0)}function bZe(t){return t==null?null:P5n(t)}function wZe(t){return t==null?null:qgn(t)}function vZe(t){return t==null?null:$o(t)}function mZe(t){return t==null?null:$o(t)}function P0(t){t.o==null&&b2n(t)}function Re(t){return k9(t==null||Nm(t)),t}function ye(t){return k9(t==null||Bm(t)),t}function Br(t){return k9(t==null||ra(t)),t}function X2t(t){this.q=new b.Date(Yw(t))}function HM(t,e){this.c=t,l8.call(this,t,e)}function Dj(t,e){this.a=t,HM.call(this,t,e)}function yZe(t,e){this.d=t,ztt(this),this.b=e}function Q2t(t,e){Xrt.call(this,t),this.a=e}function Z2t(t,e){Xrt.call(this,t),this.a=e}function xZe(t){C3t.call(this,0,0),this.f=t}function J2t(t,e,n){q$.call(this,t,e,n,null)}function zWt(t,e,n){q$.call(this,t,e,n,null)}function kZe(t,e,n){return t.ue(e,n)<=0?n:e}function EZe(t,e,n){return t.ue(e,n)<=0?e:n}function TZe(t,e){return u(Xw(t.b,e),149)}function CZe(t,e){return u(Xw(t.c,e),229)}function ynt(t){return u(Ne(t.a,t.b),287)}function qWt(t){return new $e(t.c,t.d+t.a)}function HWt(t){return Fl(),_Ut(u(t,197))}function $m(){$m=Z,o7t=un((Al(),K2))}function _Ze(t,e){e.a?hvn(t,e):fnt(t.a,e.b)}function VWt(t,e){$1||le(t.a,e)}function SZe(t,e){return kM(),J8(e.d.i,t)}function AZe(t,e){return r6(),new Uue(e,t)}function dd(t,e){return sD(e,n6t),t.f=e,t}function twt(t,e,n){return n=Hl(t,e,3,n),n}function ewt(t,e,n){return n=Hl(t,e,6,n),n}function nwt(t,e,n){return n=Hl(t,e,9,n),n}function VM(t,e,n){++t.j,t.Ki(),Yrt(t,e,n)}function GWt(t,e,n){++t.j,t.Hi(e,t.oi(e,n))}function UWt(t,e,n){var r;r=t.Zc(e),r.Rb(n)}function WWt(t,e,n){return bxt(t.c,t.b,e,n)}function rwt(t,e){return(e&wi)%t.d.length}function Ps(t,e){Vi.call(this,t),this.a=e}function iwt(t,e){Cpt.call(this,t),this.a=e}function xnt(t,e){Cpt.call(this,t),this.a=e}function YWt(t,e){this.c=t,Qw.call(this,e)}function KWt(t,e){this.a=t,Xzt.call(this,e)}function GM(t,e){this.a=t,Xzt.call(this,e)}function XWt(t){this.a=(jl(t,ky),new Xc(t))}function QWt(t){this.a=(jl(t,ky),new Xc(t))}function UM(t){return!t.a&&(t.a=new at),t.a}function ZWt(t){return t>8?0:t+1}function LZe(t,e){return Nn(),t==e?0:t?1:-1}function swt(t,e,n){return zx(t,u(e,22),n)}function MZe(t,e,n){return t.apply(e,n)}function JWt(t,e,n){return t.a+=Mh(e,0,n),t}function awt(t,e){var n;return n=t.e,t.e=e,n}function DZe(t,e){var n;n=t[kot],n.call(t,e)}function IZe(t,e){var n;n=t[kot],n.call(t,e)}function zm(t,e){t.a.Vc(t.b,e),++t.b,t.c=-1}function tYt(t){Xu(t.e),t.d.b=t.d,t.d.a=t.d}function WM(t){t.b?WM(t.b):t.f.c.zc(t.e,t.d)}function OZe(t,e,n){Qb(),Att(t,e.Ce(t.a,n))}function PZe(t,e){return yet(Nie(t.a,e,!0))}function FZe(t,e){return yet(Bie(t.a,e,!0))}function ff(t,e){return LR(new Array(e),t)}function knt(t){return String.fromCharCode(t)}function NZe(t){return t==null?null:t.message}function eYt(){this.a=new he,this.b=new he}function nYt(){this.a=new H5,this.b=new hqt}function rYt(){this.b=new Ca,this.c=new he}function owt(){this.d=new Ca,this.e=new Ca}function cwt(){this.n=new Ca,this.o=new Ca}function Ij(){this.n=new Cx,this.i=new Fx}function iYt(){this.a=new XJ,this.b=new ZX}function sYt(){this.a=new he,this.d=new he}function aYt(){this.b=new Hs,this.a=new Hs}function oYt(){this.b=new _r,this.a=new _r}function cYt(){this.b=new qHt,this.a=new GQ}function uYt(){Ij.call(this),this.a=new Ca}function y9(t){oun.call(this,t,(U$(),jut))}function uwt(t,e,n,r){Wj.call(this,t,e,n,r)}function BZe(t,e,n){n!=null&&uz(e,Cst(t,n))}function RZe(t,e,n){n!=null&&lz(e,Cst(t,n))}function lwt(t,e,n){return n=Hl(t,e,11,n),n}function Li(t,e){return t.a+=e.a,t.b+=e.b,t}function ia(t,e){return t.a-=e.a,t.b-=e.b,t}function jZe(t,e){return t.n.a=(On(e),e+10)}function $Ze(t,e){return t.n.a=(On(e),e+10)}function zZe(t,e){return e==t||yE(mq(e),t)}function lYt(t,e){return ki(t.a,e,"")==null}function qZe(t,e){return kM(),!J8(e.d.i,t)}function HZe(t,e){Bp(t.f)?a2n(t,e):V0n(t,e)}function VZe(t,e){var n;return n=e.Hh(t.a),n}function qm(t,e){yo.call(this,J_+t+D2+e)}function Rx(t,e,n,r){fe.call(this,t,e,n,r)}function hwt(t,e,n,r){fe.call(this,t,e,n,r)}function hYt(t,e,n,r){hwt.call(this,t,e,n,r)}function fYt(t,e,n,r){r$.call(this,t,e,n,r)}function Ent(t,e,n,r){r$.call(this,t,e,n,r)}function fwt(t,e,n,r){r$.call(this,t,e,n,r)}function dYt(t,e,n,r){Ent.call(this,t,e,n,r)}function dwt(t,e,n,r){Ent.call(this,t,e,n,r)}function Cn(t,e,n,r){fwt.call(this,t,e,n,r)}function gYt(t,e,n,r){dwt.call(this,t,e,n,r)}function pYt(t,e,n,r){hvt.call(this,t,e,n,r)}function bYt(t,e,n){this.a=t,j2t.call(this,e,n)}function wYt(t,e,n){this.c=e,this.b=n,this.a=t}function GZe(t,e,n){return t.d=u(e.Kb(n),164)}function gwt(t,e){return t.Aj().Nh().Kh(t,e)}function pwt(t,e){return t.Aj().Nh().Ih(t,e)}function vYt(t,e){return On(t),Vt(t)===Vt(e)}function hn(t,e){return On(t),Vt(t)===Vt(e)}function Tnt(t,e){return yet(Nie(t.a,e,!1))}function Cnt(t,e){return yet(Bie(t.a,e,!1))}function UZe(t,e){return t.b.sd(new QVt(t,e))}function WZe(t,e){return t.b.sd(new ZVt(t,e))}function mYt(t,e){return t.b.sd(new JVt(t,e))}function bwt(t,e,n){return t.lastIndexOf(e,n)}function YZe(t,e,n){return Ms(t[e.b],t[n.b])}function KZe(t,e){return Jt(e,(Te(),DO),t)}function XZe(t,e){return pu(e.a.d.p,t.a.d.p)}function QZe(t,e){return pu(t.a.d.p,e.a.d.p)}function ZZe(t,e){return Ms(t.c-t.s,e.c-e.s)}function yYt(t){return t.c?Ro(t.c.a,t,0):-1}function JZe(t){return t<100?null:new Dp(t)}function jx(t){return t==Y2||t==g0||t==Gc}function xYt(t,e){return _t(e,15)&&Sue(t.c,e)}function tJe(t,e){$1||e&&(t.d=e)}function _nt(t,e){var n;return n=e,!!jyt(t,n)}function wwt(t,e){this.c=t,Jnt.call(this,t,e)}function kYt(t){this.c=t,ent.call(this,qq,0)}function EYt(t,e){sen.call(this,t,t.length,e)}function eJe(t,e,n){return u(t.c,69).lk(e,n)}function Oj(t,e,n){return u(t.c,69).mk(e,n)}function nJe(t,e,n){return fZe(t,u(e,332),n)}function vwt(t,e,n){return dZe(t,u(e,332),n)}function rJe(t,e,n){return xae(t,u(e,332),n)}function TYt(t,e,n){return egn(t,u(e,332),n)}function x9(t,e){return e==null?null:sy(t.b,e)}function mwt(t){return Bm(t)?(On(t),t):t.ke()}function Pj(t){return!isNaN(t)&&!isFinite(t)}function CYt(t){gd(),this.a=(wn(),new s8(t))}function YM(t){k8(),this.d=t,this.a=new B3}function sh(t,e,n){this.a=t,this.b=e,this.c=n}function _Yt(t,e,n){this.a=t,this.b=e,this.c=n}function SYt(t,e,n){this.d=t,this.b=n,this.a=e}function Snt(t){$Ut(this),Ah(this),Ua(this,t)}function Bu(t){ant(this),Pwt(this.c,0,t.Pc())}function AYt(t){Cl(t.a),Cte(t.c,t.b),t.b=null}function LYt(t){this.a=t,Gd(),Tu(Date.now())}function MYt(){MYt=Z,REt=new _,aV=new _}function Ant(){Ant=Z,LEt=new Ht,Yge=new Le}function DYt(){DYt=Z,n5e=Nt(Qn,De,1,0,5,1)}function IYt(){IYt=Z,y5e=Nt(Qn,De,1,0,5,1)}function ywt(){ywt=Z,x5e=Nt(Qn,De,1,0,5,1)}function gd(){gd=Z,new Apt((wn(),wn(),io))}function iJe(t){return U$(),Ur((Nte(),Qge),t)}function sJe(t){return O1(),Ur((ete(),rpe),t)}function aJe(t){return Gz(),Ur((cJt(),upe),t)}function oJe(t){return Q$(),Ur((uJt(),lpe),t)}function cJe(t){return Cq(),Ur((Kne(),hpe),t)}function uJe(t){return Kf(),Ur((ZJt(),gpe),t)}function lJe(t){return Qu(),Ur((JJt(),bpe),t)}function hJe(t){return yu(),Ur((tte(),vpe),t)}function fJe(t){return $q(),Ur((hUt(),zpe),t)}function dJe(t){return rv(),Ur((Rte(),Hpe),t)}function gJe(t){return u6(),Ur((jte(),Gpe),t)}function pJe(t){return c_(),Ur(($te(),Ype),t)}function bJe(t){return jR(),Ur(($Zt(),Kpe),t)}function wJe(t){return Z$(),Ur((lJt(),fbe),t)}function vJe(t){return q9(),Ur((nte(),Obe),t)}function mJe(t){return Wa(),Ur((bee(),Bbe),t)}function yJe(t){return nE(),Ur((Bte(),qbe),t)}function xJe(t){return iv(),Ur((rte(),Ybe),t)}function xwt(t,e){if(!t)throw it(new Fn(e))}function kJe(t){return Vn(),Ur((Bee(),Zbe),t)}function kwt(t){Wj.call(this,t.d,t.c,t.a,t.b)}function Lnt(t){Wj.call(this,t.d,t.c,t.a,t.b)}function Ewt(t,e,n){this.b=t,this.c=e,this.a=n}function Fj(t,e,n){this.b=t,this.a=e,this.c=n}function OYt(t,e,n){this.a=t,this.b=e,this.c=n}function Twt(t,e,n){this.a=t,this.b=e,this.c=n}function PYt(t,e,n){this.a=t,this.b=e,this.c=n}function Cwt(t,e,n){this.a=t,this.b=e,this.c=n}function FYt(t,e,n){this.b=t,this.a=e,this.c=n}function Nj(t,e,n){this.e=e,this.b=t,this.d=n}function EJe(t,e,n){return Qb(),t.a.Od(e,n),e}function Mnt(t){var e;return e=new Wu,e.e=t,e}function _wt(t){var e;return e=new vqt,e.b=t,e}function KM(){KM=Z,mV=new BK,yV=new RK}function df(){df=Z,f2e=new SX,d2e=new DN}function TJe(t){return Tz(),Ur((qte(),o2e),t)}function CJe(t){return I1(),Ur((Vte(),b2e),t)}function _Je(t){return Eq(),Ur((Rne(),T2e),t)}function SJe(t){return h6(),Ur(($ee(),C2e),t)}function AJe(t){return H$(),Ur((bJt(),_2e),t)}function LJe(t){return n6(),Ur((ite(),S2e),t)}function MJe(t){return b4(),Ur((hee(),v2e),t)}function DJe(t){return nv(),Ur((ote(),E2e),t)}function IJe(t){return oz(),Ur((ste(),A2e),t)}function OJe(t){return x2(),Ur((uee(),L2e),t)}function PJe(t){return LD(),Ur((fJt(),M2e),t)}function FJe(t){return d2(),Ur((ate(),I2e),t)}function NJe(t){return dq(),Ur((Vee(),O2e),t)}function BJe(t){return xD(),Ur((dJt(),P2e),t)}function RJe(t){return oI(),Ur((qee(),F2e),t)}function jJe(t){return kE(),Ur((zee(),N2e),t)}function $Je(t){return oo(),Ur((lre(),B2e),t)}function zJe(t){return eE(),Ur((ute(),R2e),t)}function qJe(t){return q0(),Ur((cte(),$2e),t)}function HJe(t){return I$(),Ur((wJt(),z2e),t)}function VJe(t){return dh(),Ur((fee(),q2e),t)}function GJe(t){return uq(),Ur((Hee(),rme),t)}function UJe(t){return Z9(),Ur((lte(),ime),t)}function WJe(t){return cy(),Ur((Gte(),sme),t)}function YJe(t){return so(),Ur((dte(),hme),t)}function KJe(t){return y4(),Ur((Bne(),ome),t)}function XJe(t){return V0(),Ur((fte(),cme),t)}function QJe(t){return CD(),Ur((pJt(),ume),t)}function ZJe(t){return yz(),Ur((hte(),fme),t)}function JJe(t){return u_(),Ur((lee(),ame),t)}function ttn(t){return pD(),Ur((gJt(),dme),t)}function etn(t){return cE(),Ur((pte(),gme),t)}function ntn(t){return vz(),Ur((bte(),pme),t)}function rtn(t){return Cz(),Ur((gte(),bme),t)}function itn(t){return ev(),Ur((wte(),Lme),t)}function stn(t){return $9(),Ur((mJt(),Pme),t)}function atn(t){return bd(),Ur((yJt(),zme),t)}function otn(t){return C1(),Ur((xJt(),Hme),t)}function ctn(t){return Uf(),Ur((vJt(),iye),t)}function utn(t){return Gw(),Ur((kJt(),hye),t)}function ltn(t){return wE(),Ur((zte(),fye),t)}function htn(t){return p_(),Ur((Gee(),gye),t)}function ftn(t){return T$(),Ur((CJt(),Aye),t)}function dtn(t){return pz(),Ur((TJt(),Pye),t)}function gtn(t){return A$(),Ur((EJt(),Lye),t)}function ptn(t){return Nz(),Ur((vte(),Nye),t)}function btn(t){return G$(),Ur((_Jt(),Bye),t)}function wtn(t){return HD(),Ur((mte(),Rye),t)}function vtn(t){return eq(),Ur((Hte(),Jye),t)}function mtn(t){return mz(),Ur((xte(),t3e),t)}function ytn(t){return Fz(),Ur((yte(),e3e),t)}function xtn(t){return AE(),Ur((pee(),x3e),t)}function ktn(t){return KD(),Ur((kte(),k3e),t)}function Etn(t){return zR(),Ur((RZt(),E3e),t)}function Ttn(t){return qR(),Ur((BZt(),C3e),t)}function Ctn(t){return bD(),Ur((AJt(),_3e),t)}function _tn(t){return uI(),Ur((dee(),S3e),t)}function Stn(t){return UC(),Ur((jZt(),H3e),t)}function Atn(t){return jD(),Ur((SJt(),V3e),t)}function Ltn(t){return Qf(),Ur((gee(),X3e),t)}function Mtn(t){return Ug(),Ur((jne(),Z3e),t)}function Dtn(t){return t0(),Ur((jee(),J3e),t)}function Itn(t){return hy(),Ur((Ree(),s4e),t)}function Otn(t){return ro(),Ur((fUt(),i2e),t)}function Ptn(t){return X8(),Ur((hJt(),r2e),t)}function Ftn(t){return ao(),Ur((wee(),y4e),t)}function Ntn(t){return M1(),Ur((Tte(),x4e),t)}function Btn(t){return W0(),Ur((Yte(),k4e),t)}function Rtn(t){return hq(),Ur((Wee(),E4e),t)}function jtn(t){return G0(),Ur((Ete(),C4e),t)}function $tn(t){return zl(),Ur((Wte(),S4e),t)}function ztn(t){return py(),Ur((Yne(),A4e),t)}function qtn(t){return l4(),Ur((vee(),L4e),t)}function Htn(t){return ua(),Ur((Oee(),M4e),t)}function Vtn(t){return Zu(),Ur((Uee(),D4e),t)}function Gtn(t){return Al(),Ur((Xte(),B4e),t)}function Utn(t){return ll(),Ur((hre(),R4e),t)}function Wtn(t){return ve(),Ur((mee(),I4e),t)}function Ytn(t){return jz(),Ur((Kte(),j4e),t)}function Ktn(t){return Sl(),Ur((Ute(),q4e),t)}function Xtn(t){return CE(),Ur(($ne(),e5e),t)}function Qtn(t,e){return On(t),t+(On(e),e)}function Ztn(t,e){return Gd(),Dr(Wt(t.a),e)}function Jtn(t,e){return Gd(),Dr(Wt(t.a),e)}function Dnt(t,e){this.c=t,this.a=e,this.b=e-t}function NYt(t,e,n){this.a=t,this.b=e,this.c=n}function Swt(t,e,n){this.a=t,this.b=e,this.c=n}function Awt(t,e,n){this.a=t,this.b=e,this.c=n}function BYt(t,e,n){this.a=t,this.b=e,this.c=n}function RYt(t,e,n){this.a=t,this.b=e,this.c=n}function Ig(t,e,n){this.e=t,this.a=e,this.c=n}function jYt(t,e,n){ih(),$vt.call(this,t,e,n)}function Int(t,e,n){ih(),Tvt.call(this,t,e,n)}function Lwt(t,e,n){ih(),Tvt.call(this,t,e,n)}function Mwt(t,e,n){ih(),Tvt.call(this,t,e,n)}function $Yt(t,e,n){ih(),Int.call(this,t,e,n)}function Dwt(t,e,n){ih(),Int.call(this,t,e,n)}function zYt(t,e,n){ih(),Dwt.call(this,t,e,n)}function qYt(t,e,n){ih(),Lwt.call(this,t,e,n)}function HYt(t,e,n){ih(),Mwt.call(this,t,e,n)}function XM(t,e){return Lr(t),Lr(e),new lVt(t,e)}function $x(t,e){return Lr(t),Lr(e),new nKt(t,e)}function ten(t,e){return Lr(t),Lr(e),new rKt(t,e)}function een(t,e){return Lr(t),Lr(e),new fVt(t,e)}function u(t,e){return k9(t==null||gst(t,e)),t}function x8(t){var e;return e=new he,oit(e,t),e}function nen(t){var e;return e=new Hs,oit(e,t),e}function VYt(t){var e;return e=new Bpt,xit(e,t),e}function QM(t){var e;return e=new Zi,xit(e,t),e}function ren(t){return!t.e&&(t.e=new he),t.e}function ien(t){return!t.c&&(t.c=new Tm),t.c}function le(t,e){return t.c[t.c.length]=e,!0}function GYt(t,e){this.c=t,this.b=e,this.a=!1}function Iwt(t){this.d=t,ztt(this),this.b=Xen(t.d)}function UYt(){this.a=";,;",this.b="",this.c=""}function sen(t,e,n){WKt.call(this,e,n),this.a=t}function WYt(t,e,n){this.b=t,oUt.call(this,e,n)}function Owt(t,e,n){this.c=t,KR.call(this,e,n)}function Pwt(t,e,n){n5t(n,0,t,e,n.length,!1)}function Wd(t,e,n,r,s){t.b=e,t.c=n,t.d=r,t.a=s}function aen(t,e){e&&(t.b=e,t.a=(Vp(e),e.a))}function Fwt(t,e,n,r,s){t.d=e,t.c=n,t.a=r,t.b=s}function Nwt(t){var e,n;e=t.b,n=t.c,t.b=n,t.c=e}function Bwt(t){var e,n;n=t.d,e=t.a,t.d=e,t.a=n}function Rwt(t){return Kp(fnn(Bo(t)?Lh(t):t))}function oen(t,e){return pu(uKt(t.d),uKt(e.d))}function cen(t,e){return e==(ve(),Bn)?t.c:t.d}function k8(){k8=Z,r_t=(ve(),Bn),CG=Hn}function YYt(){this.b=Xt(ye(Ie((Jf(),nlt))))}function KYt(t){return Qb(),Nt(Qn,De,1,t,5,1)}function uen(t){return new $e(t.c+t.b,t.d+t.a)}function len(t,e){return $R(),pu(t.d.p,e.d.p)}function Ont(t){return Zn(t.b!=0),lh(t,t.a.a)}function hen(t){return Zn(t.b!=0),lh(t,t.c.b)}function jwt(t,e){if(!t)throw it(new iHt(e))}function Bj(t,e){if(!t)throw it(new Fn(e))}function $wt(t,e,n){g8.call(this,t,e),this.b=n}function ZM(t,e,n){e2t.call(this,t,e),this.c=n}function XYt(t,e,n){See.call(this,e,n),this.d=t}function zwt(t){ywt(),Pk.call(this),this.th(t)}function QYt(t,e,n){this.a=t,V3.call(this,e,n)}function ZYt(t,e,n){this.a=t,V3.call(this,e,n)}function Rj(t,e,n){e2t.call(this,t,e),this.c=n}function JYt(){B8(),Mnn.call(this,(Pp(),Yh))}function tKt(t){return t!=null&&!tst(t,oA,cA)}function fen(t,e){return(uie(t)<<4|uie(e))&ys}function den(t,e){return c$(),kst(t,e),new SXt(t,e)}function Jb(t,e){var n;t.n&&(n=e,le(t.f,n))}function E8(t,e,n){var r;r=new Um(n),Yf(t,e,r)}function gen(t,e){var n;return n=t.c,syt(t,e),n}function qwt(t,e){return e<0?t.g=-1:t.g=e,t}function jj(t,e){return Zon(t),t.a*=e,t.b*=e,t}function eKt(t,e,n,r,s){t.c=e,t.d=n,t.b=r,t.a=s}function ri(t,e){return fs(t,e,t.c.b,t.c),!0}function Hwt(t){t.a.b=t.b,t.b.a=t.a,t.a=t.b=null}function Pnt(t){this.b=t,this.a=Rw(this.b.a).Ed()}function nKt(t,e){this.b=t,this.a=e,pC.call(this)}function rKt(t,e){this.a=t,this.b=e,pC.call(this)}function iKt(t,e){WKt.call(this,e,1040),this.a=t}function JM(t){return t==0||isNaN(t)?t:t<0?-1:1}function pen(t){return Ux(),e0(t)==es(tb(t))}function ben(t){return Ux(),tb(t)==es(e0(t))}function Bw(t,e){return d_(t,new g8(e.a,e.b))}function wen(t){return!Ga(t)&&t.c.i.c==t.d.i.c}function $j(t){var e;return e=t.n,t.a.b+e.d+e.a}function sKt(t){var e;return e=t.n,t.e.b+e.d+e.a}function Vwt(t){var e;return e=t.n,t.e.a+e.b+e.c}function aKt(t){return gi(),new Yd(0,t)}function ven(t){return t.a?t.a:grt(t)}function k9(t){if(!t)throw it(new i8(null))}function oKt(){oKt=Z,$ft=(wn(),new O(put))}function zj(){zj=Z,new z3t((oet(),Sut),(cet(),_ut))}function cKt(){cKt=Z,fEt=Nt(ja,ee,19,256,0,1)}function Fnt(t,e,n,r){b3t.call(this,t,e,n,r,0,0)}function men(t,e,n){return ki(t.b,u(n.b,17),e)}function yen(t,e,n){return ki(t.b,u(n.b,17),e)}function xen(t,e){return le(t,new $e(e.a,e.b))}function ken(t,e){return t.c=e)throw it(new Opt)}function inn(t,e,n){return ts(e,0,Ywt(e[0],n[0])),e}function snn(t,e,n){e.Ye(n,Xt(ye(tr(t.b,n)))*t.a)}function UKt(t,e,n){return k4(),Q8(t,e)&&Q8(t,n)}function S9(t){return Zu(),!t.Hc(sg)&&!t.Hc(Cb)}function e$(t){return new $e(t.c+t.b/2,t.d+t.a/2)}function Wnt(t,e){return e.kh()?Zp(t.b,u(e,49)):e}function lvt(t,e){this.e=t,this.d=e&64?e|md:e}function WKt(t,e){this.c=0,this.d=t,this.b=e|64|md}function n$(t){this.b=new Xc(11),this.a=(Z3(),t)}function Ynt(t){this.b=null,this.a=(Z3(),t||_Et)}function YKt(t){this.a=wse(t.a),this.b=new Bu(t.b)}function KKt(t){this.b=t,Nx.call(this,t),ZUt(this)}function XKt(t){this.b=t,$M.call(this,t),JUt(this)}function Gm(t,e,n){this.a=t,Rx.call(this,e,n,5,6)}function hvt(t,e,n,r){this.b=t,As.call(this,e,n,r)}function Js(t,e,n,r,s){Jrt.call(this,t,e,n,r,s,-1)}function A9(t,e,n,r,s){mD.call(this,t,e,n,r,s,-1)}function fe(t,e,n,r){As.call(this,t,e,n),this.b=r}function r$(t,e,n,r){ZM.call(this,t,e,n),this.b=r}function QKt(t){tUt.call(this,t,!1),this.a=!1}function ZKt(t,e){this.b=t,wtt.call(this,t.b),this.a=e}function JKt(t,e){Wm(),cXe.call(this,t,Dz(new yl(e)))}function i$(t,e){return gi(),new Cvt(t,e,0)}function Knt(t,e){return gi(),new Cvt(6,t,e)}function ann(t,e){return hn(t.substr(0,e.length),e)}function Tl(t,e){return ra(e)?wrt(t,e):!!Lo(t.f,e)}function ba(t,e){for(On(e);t.Ob();)e.td(t.Pb())}function X3(t,e,n){rb(),this.e=t,this.d=e,this.a=n}function Og(t,e,n,r){var s;s=t.i,s.i=e,s.a=n,s.b=r}function fvt(t){var e;for(e=t;e.f;)e=e.f;return e}function Hx(t){var e;return e=Q9(t),Zn(e!=null),e}function onn(t){var e;return e=Uln(t),Zn(e!=null),e}function C8(t,e){var n;return n=t.a.gc(),Emt(e,n),n-e}function dvt(t,e){var n;for(n=0;n0?b.Math.log(t/e):-100}function tXt(t,e){return yc(t,e)<0?-1:yc(t,e)>0?1:0}function vvt(t,e,n){return Gle(t,u(e,46),u(n,167))}function eXt(t,e){return u(cvt(Rw(t.a)).Xb(e),42).cd()}function bnn(t,e){return jon(e,t.length),new iKt(t,e)}function Jnt(t,e){this.d=t,nr.call(this,t),this.e=e}function jw(t){this.d=(On(t),t),this.a=0,this.c=qq}function mvt(t,e){yw.call(this,1),this.a=t,this.b=e}function nXt(t,e){return t.c?nXt(t.c,e):le(t.b,e),t}function wnn(t,e,n){var r;return r=Jm(t,e),Brt(t,e,n),r}function yvt(t,e){var n;return n=t.slice(0,e),Bmt(n,t)}function rXt(t,e,n){var r;for(r=0;r=t.g}function crt(t,e,n){var r;return r=mit(t,e,n),Y5t(t,r)}function Vx(t,e){var n;n=t.a.length,Jm(t,n),Brt(t,n,e)}function vXt(t,e){var n;n=console[t],n.call(console,e)}function mXt(t,e){var n;++t.j,n=t.Vi(),t.Ii(t.oi(n,e))}function Lnn(t,e,n){u(e.b,65),xu(e.a,new Swt(t,n,e))}function Tvt(t,e,n){vR.call(this,e),this.a=t,this.b=n}function Cvt(t,e,n){yw.call(this,t),this.a=e,this.b=n}function _vt(t,e,n){this.a=t,Cpt.call(this,e),this.b=n}function yXt(t,e,n){this.a=t,nmt.call(this,8,e,null,n)}function Mnn(t){this.a=(On(Yr),Yr),this.b=t,new Upt}function xXt(t){this.c=t,this.b=this.c.a,this.a=this.c.e}function Svt(t){this.c=t,this.b=t.a.d.a,Y2t(t.a.e,this)}function Cl(t){Rm(t.c!=-1),t.d.$c(t.c),t.b=t.c,t.c=-1}function D9(t){return b.Math.sqrt(t.a*t.a+t.b*t.b)}function zw(t,e){return T8(e,t.a.c.length),Ne(t.a,e)}function pd(t,e){return Vt(t)===Vt(e)||t!=null&&yi(t,e)}function Dnn(t){return 0>=t?new mbt:wcn(t-1)}function Inn(t){return s3?wrt(s3,t):!1}function kXt(t){return t?t.dc():!t.Kc().Ob()}function Na(t){return!t.a&&t.c?t.c.b:t.a}function Onn(t){return!t.a&&(t.a=new As(_b,t,4)),t.a}function qw(t){return!t.d&&(t.d=new As(ho,t,1)),t.d}function On(t){if(t==null)throw it(new IC);return t}function I9(t){t.c?t.c.He():(t.d=!0,Rwn(t))}function Vp(t){t.c?Vp(t.c):(w2(t),t.d=!0)}function EXt(t){Dvt(t.a),t.b=Nt(Qn,De,1,t.b.length,5,1)}function Pnn(t,e){return pu(e.j.c.length,t.j.c.length)}function Fnn(t,e){t.c<0||t.b.b=0?t.Bh(n):i5t(t,e)}function TXt(t){var e,n;return e=t.c.i.c,n=t.d.i.c,e==n}function Bnn(t){if(t.p!=4)throw it(new Ou);return t.e}function Rnn(t){if(t.p!=3)throw it(new Ou);return t.e}function jnn(t){if(t.p!=6)throw it(new Ou);return t.f}function $nn(t){if(t.p!=6)throw it(new Ou);return t.k}function znn(t){if(t.p!=3)throw it(new Ou);return t.j}function qnn(t){if(t.p!=4)throw it(new Ou);return t.j}function Avt(t){return!t.b&&(t.b=new mR(new aet)),t.b}function Hw(t){return t.c==-2&&Jk(t,agn(t.g,t.b)),t.c}function A8(t,e){var n;return n=rrt("",t),n.n=e,n.i=1,n}function Hnn(t,e){qnt(u(e.b,65),t),xu(e.a,new Jr(t))}function Vnn(t,e){Dr((!t.a&&(t.a=new GM(t,t)),t.a),e)}function CXt(t,e){this.b=t,Jnt.call(this,t,e),ZUt(this)}function _Xt(t,e){this.b=t,wwt.call(this,t,e),JUt(this)}function Lvt(t,e,n,r){Lw.call(this,t,e),this.d=n,this.a=r}function o$(t,e,n,r){Lw.call(this,t,n),this.a=e,this.f=r}function SXt(t,e){TQe.call(this,vcn(Lr(t),Lr(e))),this.a=e}function AXt(){N4t.call(this,O2,(DHt(),L5e)),f4n(this)}function LXt(){N4t.call(this,Bh,(c8(),aLt)),x3n(this)}function MXt(){Vr.call(this,"DELAUNAY_TRIANGULATION",0)}function Gnn(t){return String.fromCharCode.apply(null,t)}function ki(t,e,n){return ra(e)?ko(t,e,n):au(t.f,e,n)}function Mvt(t){return wn(),t?t.ve():(Z3(),Z3(),AEt)}function Unn(t,e,n){return i6(),n.pg(t,u(e.cd(),146))}function DXt(t,e){return zj(),new z3t(new fWt(t),new hWt(e))}function Wnn(t){return jl(t,Yat),J$(Pa(Pa(5,t),t/10|0))}function c$(){c$=Z,Age=new uet(lt(ct(P2,1),Hq,42,0,[]))}function IXt(t){return!t.d&&(t.d=new T(t.c.Cc())),t.d}function L8(t){return!t.a&&(t.a=new fHt(t.c.vc())),t.a}function OXt(t){return!t.b&&(t.b=new s8(t.c.ec())),t.b}function Xd(t,e){for(;e-- >0;)t=t<<1|(t<0?1:0);return t}function Fc(t,e){return Vt(t)===Vt(e)||t!=null&&yi(t,e)}function Ynn(t,e){return Nn(),u(e.b,19).ar&&++r,r}function N0(t){var e,n;return n=(e=new xw,e),H8(n,t),n}function drt(t){var e,n;return n=(e=new xw,e),j4t(n,t),n}function urn(t,e){var n;return n=tr(t.f,e),byt(e,n),null}function grt(t){var e;return e=ycn(t),e||null}function HXt(t){return!t.b&&(t.b=new fe(Ys,t,12,3)),t.b}function lrn(t){return t!=null&&yM(gU,t.toLowerCase())}function hrn(t,e){return Ms(Ru(t)*El(t),Ru(e)*El(e))}function frn(t,e){return Ms(Ru(t)*El(t),Ru(e)*El(e))}function drn(t,e){return Ms(t.d.c+t.d.b/2,e.d.c+e.d.b/2)}function grn(t,e){return Ms(t.g.c+t.g.b/2,e.g.c+e.g.b/2)}function VXt(t,e,n){n.a?Eu(t,e.b-t.f/2):ku(t,e.a-t.g/2)}function GXt(t,e,n,r){this.a=t,this.b=e,this.c=n,this.d=r}function UXt(t,e,n,r){this.a=t,this.b=e,this.c=n,this.d=r}function n2(t,e,n,r){this.e=t,this.a=e,this.c=n,this.d=r}function WXt(t,e,n,r){this.a=t,this.c=e,this.d=n,this.b=r}function YXt(t,e,n,r){ih(),$Jt.call(this,e,n,r),this.a=t}function KXt(t,e,n,r){ih(),$Jt.call(this,e,n,r),this.a=t}function XXt(t,e){this.a=t,yZe.call(this,t,u(t.d,15).Zc(e))}function prt(t){this.f=t,this.c=this.f.e,t.f>0&&cae(this)}function QXt(t,e,n,r){this.b=t,this.c=r,ent.call(this,e,n)}function ZXt(t){return Zn(t.b=0&&hn(t.substr(n,e.length),e)}function Gp(t,e,n,r,s,o,h){return new jrt(t.e,e,n,r,s,o,h)}function pQt(t,e,n,r,s,o){this.a=t,fit.call(this,e,n,r,s,o)}function bQt(t,e,n,r,s,o){this.a=t,fit.call(this,e,n,r,s,o)}function wQt(t,e){this.g=t,this.d=lt(ct(l0,1),Yg,10,0,[e])}function Pg(t,e){this.e=t,this.a=Qn,this.b=$ue(e),this.c=e}function vQt(t,e){Ij.call(this),Gmt(this),this.a=t,this.c=e}function aD(t,e,n,r){ts(t.c[e.g],n.g,r),ts(t.c[n.g],e.g,r)}function yrt(t,e,n,r){ts(t.c[e.g],e.g,n),ts(t.b[e.g],e.g,r)}function Nrn(){return pD(),lt(ct(Y9t,1),oe,376,0,[Sht,BO])}function Brn(){return xD(),lt(ct($Tt,1),oe,479,0,[jTt,WV])}function Rrn(){return LD(),lt(ct(BTt,1),oe,419,0,[GV,NTt])}function jrn(){return H$(),lt(ct(LTt,1),oe,422,0,[ATt,Alt])}function $rn(){return I$(),lt(ct(JTt,1),oe,420,0,[Hlt,ZTt])}function zrn(){return CD(),lt(ct(V9t,1),oe,421,0,[Tht,Cht])}function qrn(){return $9(),lt(ct(Ome,1),oe,523,0,[BS,NS])}function Hrn(){return Uf(),lt(ct(rye,1),oe,520,0,[Ky,mb])}function Vrn(){return bd(),lt(ct($me,1),oe,516,0,[zv,ep])}function Grn(){return C1(),lt(ct(qme,1),oe,515,0,[H2,H1])}function Urn(){return Gw(),lt(ct(lye,1),oe,455,0,[yb,r5])}function Wrn(){return A$(),lt(ct(v_t,1),oe,425,0,[qht,w_t])}function Yrn(){return T$(),lt(ct(b_t,1),oe,480,0,[zht,p_t])}function Krn(){return pz(),lt(ct(m_t,1),oe,495,0,[FG,D7])}function Xrn(){return G$(),lt(ct(x_t,1),oe,426,0,[y_t,Uht])}function Qrn(){return jD(),lt(ct(TSt,1),oe,429,0,[VG,ESt])}function Zrn(){return bD(),lt(ct(nSt,1),oe,430,0,[eft,qG])}function Jrn(){return Gz(),lt(ct(zEt,1),oe,428,0,[qut,$Et])}function tin(){return Q$(),lt(ct(HEt,1),oe,427,0,[qEt,Hut])}function ein(){return Z$(),lt(ct(w7t,1),oe,424,0,[tlt,gV])}function nin(){return X8(),lt(ct(n2e,1),oe,511,0,[yO,dlt])}function m$(t,e,n,r){return n>=0?t.jh(e,n,r):t.Sg(null,n,r)}function xrt(t){return t.b.b==0?t.a.$e():Ont(t.b)}function rin(t){if(t.p!=5)throw it(new Ou);return Ar(t.f)}function iin(t){if(t.p!=5)throw it(new Ou);return Ar(t.k)}function jvt(t){return Vt(t.a)===Vt((kit(),Bft))&&s4n(t),t.a}function mQt(t){this.a=u(Lr(t),271),this.b=(wn(),new I2t(t))}function yQt(t,e){vpt(this,new $e(t.a,t.b)),oR(this,QM(e))}function Gw(){Gw=Z,yb=new Wbt(y6,0),r5=new Wbt(x6,1)}function bd(){bd=Z,zv=new Gbt(x6,0),ep=new Gbt(y6,1)}function Uw(){gKe.call(this,new Lx(ty(12))),A2t(!0),this.a=2}function krt(t,e,n){gi(),yw.call(this,t),this.b=e,this.a=n}function $vt(t,e,n){ih(),vR.call(this,e),this.a=t,this.b=n}function xQt(t){Ij.call(this),Gmt(this),this.a=t,this.c=!0}function kQt(t){var e;e=t.c.d.b,t.b=e,t.a=t.c.d,e.a=t.c.d.b=t}function y$(t){var e;hcn(t.a),OUt(t.a),e=new er(t.a),p3t(e)}function sin(t,e){Due(t,!0),xu(t.e.wf(),new Ewt(t,!0,e))}function x$(t,e){return eJt(e),ccn(t,Nt(Cr,Xr,25,e,15,1),e)}function ain(t,e){return Ux(),t==es(e0(e))||t==es(tb(e))}function Nc(t,e){return e==null?ec(Lo(t.f,null)):KC(t.g,e)}function oin(t){return t.b==0?null:(Zn(t.b!=0),lh(t,t.a.a))}function ps(t){return Math.max(Math.min(t,wi),-2147483648)|0}function cin(t,e){var n=Iut[t.charCodeAt(0)];return n??t}function k$(t,e){return g$(t,"set1"),g$(e,"set2"),new vVt(t,e)}function uin(t,e){var n;return n=rcn(t.f,e),Li(Mj(n),t.f.d)}function P9(t,e){var n,r;return n=e,r=new zt,mhe(t,n,r),r.d}function Ert(t,e,n,r){var s;s=new uYt,e.a[n.g]=s,zx(t.b,r,s)}function zvt(t,e,n){var r;r=t.Yg(e),r>=0?t.sh(r,n):M5t(t,e,n)}function J3(t,e,n){C$(),t&&ki(Pft,t,e),t&&ki(dP,t,n)}function EQt(t,e,n){this.i=new he,this.b=t,this.g=e,this.a=n}function E$(t,e,n){this.c=new he,this.e=t,this.f=e,this.b=n}function qvt(t,e,n){this.a=new he,this.e=t,this.f=e,this.c=n}function TQt(t,e){yj(this),this.f=e,this.g=t,d$(this),this._d()}function oD(t,e){var n;n=t.q.getHours(),t.q.setDate(e),E_(t,n)}function CQt(t,e){var n;for(Lr(e),n=t.a;n;n=n.c)e.Od(n.g,n.i)}function _Qt(t){var e;return e=new IR(ty(t.length)),Oyt(e,t),e}function lin(t){function e(){}return e.prototype=t||{},new e}function hin(t,e){return ere(t,e)?(Jee(t),!0):!1}function B0(t,e){if(e==null)throw it(new IC);return cfn(t,e)}function fin(t){if(t.qe())return null;var e=t.n;return QH[e]}function cD(t){return t.Db>>16!=3?null:u(t.Cb,33)}function T1(t){return t.Db>>16!=9?null:u(t.Cb,33)}function SQt(t){return t.Db>>16!=6?null:u(t.Cb,79)}function AQt(t){return t.Db>>16!=7?null:u(t.Cb,235)}function LQt(t){return t.Db>>16!=7?null:u(t.Cb,160)}function es(t){return t.Db>>16!=11?null:u(t.Cb,33)}function MQt(t,e){var n;return n=t.Yg(e),n>=0?t.lh(n):Zst(t,e)}function DQt(t,e){var n;return n=new Wwt(e),Iae(n,t),new Bu(n)}function Hvt(t){var e;return e=t.d,e=t.si(t.f),Dr(t,e),e.Ob()}function IQt(t,e){return t.b+=e.b,t.c+=e.c,t.d+=e.d,t.a+=e.a,t}function Trt(t,e){return b.Math.abs(t)0}function OQt(){this.a=new O0,this.e=new Hs,this.g=0,this.i=0}function PQt(t){this.a=t,this.b=Nt(Mme,ee,1944,t.e.length,0,2)}function Crt(t,e,n){var r;r=xre(t,e,n),t.b=new gz(r.c.length)}function C1(){C1=Z,H2=new Vbt(Dot,0),H1=new Vbt("UP",1)}function T$(){T$=Z,zht=new Ybt(Y1e,0),p_t=new Ybt("FAN",1)}function C$(){C$=Z,Pft=new _r,dP=new _r,OXe(Uge,new JT)}function gin(t){if(t.p!=0)throw it(new Ou);return u9(t.f,0)}function pin(t){if(t.p!=0)throw it(new Ou);return u9(t.k,0)}function FQt(t){return t.Db>>16!=3?null:u(t.Cb,147)}function O8(t){return t.Db>>16!=6?null:u(t.Cb,235)}function Ym(t){return t.Db>>16!=17?null:u(t.Cb,26)}function NQt(t,e){var n=t.a=t.a||[];return n[e]||(n[e]=t.le(e))}function bin(t,e){var n;return n=t.a.get(e),n??new Array}function win(t,e){var n;n=t.q.getHours(),t.q.setMonth(e),E_(t,n)}function ko(t,e,n){return e==null?au(t.f,null,n):sv(t.g,e,n)}function F9(t,e,n,r,s,o){return new z0(t.e,e,t.aj(),n,r,s,o)}function uD(t,e,n){return t.a=Pl(t.a,0,e)+(""+n)+RM(t.a,e),t}function vin(t,e,n){return le(t.a,(c$(),kst(e,n),new Lw(e,n))),t}function Vvt(t){return M2t(t.c),t.e=t.a=t.c,t.c=t.c.c,++t.d,t.a.f}function BQt(t){return M2t(t.e),t.c=t.a=t.e,t.e=t.e.e,--t.d,t.a.f}function oa(t,e){t.d&&mu(t.d.e,t),t.d=e,t.d&&le(t.d.e,t)}function Oa(t,e){t.c&&mu(t.c.g,t),t.c=e,t.c&&le(t.c.g,t)}function Eo(t,e){t.c&&mu(t.c.a,t),t.c=e,t.c&&le(t.c.a,t)}function Uo(t,e){t.i&&mu(t.i.j,t),t.i=e,t.i&&le(t.i.j,t)}function RQt(t,e,n){this.a=e,this.c=t,this.b=(Lr(n),new Bu(n))}function jQt(t,e,n){this.a=e,this.c=t,this.b=(Lr(n),new Bu(n))}function $Qt(t,e){this.a=t,this.c=nc(this.a),this.b=new v$(e)}function min(t){var e;return w2(t),e=new Hs,Ri(t,new Ge(e))}function Km(t,e){if(t<0||t>e)throw it(new yo(Kxt+t+Xxt+e))}function Gvt(t,e){return MKt(t.a,e)?pvt(t,u(e,22).g,null):null}function yin(t){return qit(),Nn(),u(t.a,81).d.e!=0}function zQt(){zQt=Z,Dge=Wr((TR(),lt(ct(Mge,1),oe,538,0,[Mut])))}function qQt(){qQt=Z,wme=Ku(new Vs,(Wa(),Io),(ro(),xO))}function Uvt(){Uvt=Z,vme=Ku(new Vs,(Wa(),Io),(ro(),xO))}function HQt(){HQt=Z,yme=Ku(new Vs,(Wa(),Io),(ro(),xO))}function VQt(){VQt=Z,Fme=bi(new Vs,(Wa(),Io),(ro(),pS))}function Fl(){Fl=Z,Rme=bi(new Vs,(Wa(),Io),(ro(),pS))}function GQt(){GQt=Z,jme=bi(new Vs,(Wa(),Io),(ro(),pS))}function _rt(){_rt=Z,Vme=bi(new Vs,(Wa(),Io),(ro(),pS))}function UQt(){UQt=Z,Mye=Ku(new Vs,(wE(),jS),(p_(),Iht))}function i2(t,e,n,r){this.c=t,this.d=r,Art(this,e),Lrt(this,n)}function Yx(t){this.c=new Zi,this.b=t.b,this.d=t.c,this.a=t.a}function Srt(t){this.a=b.Math.cos(t),this.b=b.Math.sin(t)}function Art(t,e){t.a&&mu(t.a.k,t),t.a=e,t.a&&le(t.a.k,t)}function Lrt(t,e){t.b&&mu(t.b.f,t),t.b=e,t.b&&le(t.b.f,t)}function WQt(t,e){Lnn(t,t.b,t.c),u(t.b.b,65),e&&u(e.b,65).b}function xin(t,e){c3t(t,e),_t(t.Cb,88)&&gy(sl(u(t.Cb,88)),2)}function Mrt(t,e){_t(t.Cb,88)&&gy(sl(u(t.Cb,88)),4),Qc(t,e)}function _$(t,e){_t(t.Cb,179)&&(u(t.Cb,179).tb=null),Qc(t,e)}function Bc(t,e){return to(),ait(e)?new qj(e,t):new BM(e,t)}function kin(t,e){var n,r;n=e.c,r=n!=null,r&&Vx(t,new Um(e.c))}function YQt(t){var e,n;return n=(c8(),e=new xw,e),H8(n,t),n}function KQt(t){var e,n;return n=(c8(),e=new xw,e),H8(n,t),n}function XQt(t,e){var n;return n=new Sh(t),e.c[e.c.length]=n,n}function QQt(t,e){var n;return n=u(sy(Wx(t.a),e),14),n?n.gc():0}function ZQt(t){var e;return w2(t),e=(Z3(),Z3(),SEt),ez(t,e)}function JQt(t){for(var e;;)if(e=t.Pb(),!t.Ob())return e}function Wvt(t,e){fKe.call(this,new Lx(ty(t))),jl(e,ffe),this.a=e}function Qd(t,e,n){aie(e,n,t.gc()),this.c=t,this.a=e,this.b=n-e}function tZt(t,e,n){var r;aie(e,n,t.c.length),r=n-e,wbt(t.c,e,r)}function Ein(t,e){QUt(t,Ar(Ns($p(e,24),Uq)),Ar(Ns(e,Uq)))}function An(t,e){if(t<0||t>=e)throw it(new yo(Kxt+t+Xxt+e))}function Rr(t,e){if(t<0||t>=e)throw it(new sbt(Kxt+t+Xxt+e))}function _n(t,e){this.b=(On(t),t),this.a=e&Ey?e:e|64|md}function eZt(t){IUt(this),fqt(this.a,Dyt(b.Math.max(8,t))<<1)}function _1(t){return Yo(lt(ct(Ws,1),ee,8,0,[t.i.n,t.n,t.a]))}function Tin(){return O1(),lt(ct(fl,1),oe,132,0,[BEt,Ul,Iy])}function Cin(){return Kf(),lt(ct(Oy,1),oe,232,0,[sc,eu,ac])}function _in(){return Qu(),lt(ct(ppe,1),oe,461,0,[Md,fb,kf])}function Sin(){return yu(),lt(ct(wpe,1),oe,462,0,[n1,db,Ef])}function Ain(){return iv(),lt(ct(F7t,1),oe,423,0,[q4,P7t,llt])}function Lin(){return q9(),lt(ct(D7t,1),oe,379,0,[ilt,rlt,slt])}function Min(){return Z9(),lt(ct(P9t,1),oe,378,0,[vht,O9t,yG])}function Din(){return n6(),lt(ct(DTt,1),oe,314,0,[P6,EO,MTt])}function Iin(){return oz(),lt(ct(OTt,1),oe,337,0,[ITt,VV,Llt])}function Oin(){return d2(),lt(ct(D2e,1),oe,450,0,[Ilt,w7,U4])}function Pin(){return nv(),lt(ct(mlt,1),oe,361,0,[Dv,pb,Mv])}function Fin(){return q0(),lt(ct(j2e,1),oe,303,0,[CO,Y4,F6])}function Nin(){return eE(),lt(ct(qlt,1),oe,292,0,[$lt,zlt,TO])}function Bin(){return so(),lt(ct(lme,1),oe,452,0,[OS,tl,nu])}function Rin(){return V0(),lt(ct(H9t,1),oe,339,0,[vb,q9t,Eht])}function jin(){return yz(),lt(ct(W9t,1),oe,375,0,[G9t,_ht,U9t])}function $in(){return Cz(),lt(ct(t_t,1),oe,377,0,[Mht,L7,Yy])}function zin(){return cE(),lt(ct(X9t,1),oe,336,0,[Aht,K9t,PS])}function qin(){return vz(),lt(ct(J9t,1),oe,338,0,[Z9t,Lht,Q9t])}function Hin(){return ev(),lt(ct(Ame,1),oe,454,0,[RO,FS,TG])}function Vin(){return Nz(),lt(ct(Fye,1),oe,442,0,[Ght,Hht,Vht])}function Gin(){return HD(),lt(ct(T_t,1),oe,380,0,[NG,k_t,E_t])}function Uin(){return Fz(),lt(ct(q_t,1),oe,381,0,[z_t,Qht,$_t])}function Win(){return mz(),lt(ct(R_t,1),oe,293,0,[Xht,B_t,N_t])}function Yin(){return KD(),lt(ct(Zht,1),oe,437,0,[jG,$G,zG])}function Kin(){return G0(),lt(ct(DAt,1),oe,334,0,[tU,sp,ZS])}function Xin(){return M1(),lt(ct(mAt,1),oe,272,0,[P7,Zy,F7])}function Qin(t,e){return v2n(t,e,_t(e,99)&&(u(e,18).Bb&Ka)!=0)}function Zin(t,e,n){var r;return r=__(t,e,!1),r.b<=e&&r.a<=n}function nZt(t,e,n){var r;r=new NQ,r.b=e,r.a=n,++e.b,le(t.d,r)}function Jin(t,e){var n;return n=(On(t),t).g,q2t(!!n),On(e),n(e)}function Yvt(t,e){var n,r;return r=C8(t,e),n=t.a.Zc(r),new wVt(t,n)}function tsn(t){return t.Db>>16!=6?null:u(eat(t),235)}function esn(t){if(t.p!=2)throw it(new Ou);return Ar(t.f)&ys}function nsn(t){if(t.p!=2)throw it(new Ou);return Ar(t.k)&ys}function rsn(t){return t.a==(B8(),vU)&&Btt(t,P2n(t.g,t.b)),t.a}function Kx(t){return t.d==(B8(),vU)&&_C(t,Smn(t.g,t.b)),t.d}function J(t){return Zn(t.ar?1:0}function rZt(t,e){var n,r;return n=eit(e),r=n,u(tr(t.c,r),19).a}function iZt(t,e){var n;for(n=t+"";n.length0&&t.a[--t.d]==0;);t.a[t.d++]==0&&(t.e=0)}function EZt(t){return t.a?t.e.length==0?t.a.a:t.a.a+(""+t.e):t.c}function gsn(t){return!!t.a&&al(t.a.a).i!=0&&!(t.b&&mst(t.b))}function psn(t){return!!t.u&&Lc(t.u.a).i!=0&&!(t.n&&vst(t.n))}function TZt(t){return Bnt(t.e.Hd().gc()*t.c.Hd().gc(),16,new gx(t))}function bsn(t,e){return tXt(Tu(t.q.getTime()),Tu(e.q.getTime()))}function wd(t){return u(P1(t,Nt(hlt,Wot,17,t.c.length,0,1)),474)}function lD(t){return u(P1(t,Nt(l0,Yg,10,t.c.length,0,1)),193)}function wsn(t){return Fl(),!Ga(t)&&!(!Ga(t)&&t.c.i.c==t.d.i.c)}function CZt(t,e,n){var r;r=(Lr(t),new Bu(t)),W1n(new RQt(r,e,n))}function hD(t,e,n){var r;r=(Lr(t),new Bu(t)),Y1n(new jQt(r,e,n))}function _Zt(t,e){var n;return n=1-e,t.a[n]=dz(t.a[n],n),dz(t,e)}function SZt(t,e){var n;t.e=new Zpt,n=wy(e),Zs(n,t.c),yue(t,n,0)}function ca(t,e,n,r){var s;s=new iB,s.a=e,s.b=n,s.c=r,ri(t.a,s)}function xe(t,e,n,r){var s;s=new iB,s.a=e,s.b=n,s.c=r,ri(t.b,s)}function pf(t){var e,n,r;return e=new oXt,n=yat(e,t),n5n(e),r=n,r}function tmt(){var t,e,n;return e=(n=(t=new xw,t),n),le(bLt,e),e}function L$(t){return t.j.c=Nt(Qn,De,1,0,5,1),Dvt(t.c),Qnn(t.a),t}function t4(t){return GC(),_t(t.g,10)?u(t.g,10):null}function vsn(t){return Q3(t).dc()?!1:(wQe(t,new ut),!0)}function msn(t){if(!("stack"in t))try{throw t}catch{}return t}function fD(t,e){if(t<0||t>=e)throw it(new yo(Ipn(t,e)));return t}function AZt(t,e,n){if(t<0||en)throw it(new yo(rpn(t,e,n)))}function Prt(t,e){if(Fs(t.a,e),e.d)throw it(new Vo(Pfe));e.d=t}function Frt(t,e){if(e.$modCount!=t.$modCount)throw it(new rh)}function LZt(t,e){return _t(e,42)?Tst(t.a,u(e,42)):!1}function MZt(t,e){return _t(e,42)?Tst(t.a,u(e,42)):!1}function DZt(t,e){return _t(e,42)?Tst(t.a,u(e,42)):!1}function ysn(t,e){return t.a<=t.b?(e.ud(t.a++),!0):!1}function Yw(t){var e;return Bo(t)?(e=t,e==-0?0:e):Lon(t)}function M$(t){var e;return Vp(t),e=new Ye,j3(t.a,new bn(e)),e}function IZt(t){var e;return Vp(t),e=new Ve,j3(t.a,new we(e)),e}function da(t,e){this.a=t,mx.call(this,t),Km(e,t.gc()),this.b=e}function emt(t){this.e=t,this.b=this.e.a.entries(),this.a=new Array}function xsn(t){return Bnt(t.e.Hd().gc()*t.c.Hd().gc(),273,new eR(t))}function D$(t){return new Xc((jl(t,Yat),J$(Pa(Pa(5,t),t/10|0))))}function OZt(t){return u(P1(t,Nt(Jbe,h1e,11,t.c.length,0,1)),1943)}function ksn(t,e,n){return n.f.c.length>0?vvt(t.a,e,n):vvt(t.b,e,n)}function Esn(t,e,n){t.d&&mu(t.d.e,t),t.d=e,t.d&&Hm(t.d.e,n,t)}function Nrt(t,e){bxn(e,t),Bwt(t.d),Bwt(u(Q(t,(Te(),dG)),207))}function B9(t,e){pxn(e,t),Nwt(t.d),Nwt(u(Q(t,(Te(),dG)),207))}function Kw(t,e){var n,r;return n=B0(t,e),r=null,n&&(r=n.fe()),r}function P8(t,e){var n,r;return n=Jm(t,e),r=null,n&&(r=n.ie()),r}function R9(t,e){var n,r;return n=B0(t,e),r=null,n&&(r=n.ie()),r}function R0(t,e){var n,r;return n=B0(t,e),r=null,n&&(r=U4t(n)),r}function Tsn(t,e,n){var r;return r=pE(n),Aq(t.g,r,e),Aq(t.i,e,n),e}function Csn(t,e,n){var r;r=Jhn();try{return MZe(t,e,n)}finally{Nsn(r)}}function PZt(t){var e;e=t.Wg(),this.a=_t(e,69)?u(e,69).Zh():e.Kc()}function Vs(){Yqt.call(this),this.j.c=Nt(Qn,De,1,0,5,1),this.a=-1}function nmt(t,e,n,r){this.d=t,this.n=e,this.g=n,this.o=r,this.p=-1}function FZt(t,e,n,r){this.e=r,this.d=null,this.c=t,this.a=e,this.b=n}function rmt(t,e,n){this.d=new bR(this),this.e=t,this.i=e,this.f=n}function I$(){I$=Z,Hlt=new $bt(qE,0),ZTt=new $bt("TOP_LEFT",1)}function NZt(){NZt=Z,n_t=DXt(pe(1),pe(4)),e_t=DXt(pe(1),pe(2))}function BZt(){BZt=Z,C3e=Wr((qR(),lt(ct(T3e,1),oe,551,0,[tft])))}function RZt(){RZt=Z,E3e=Wr((zR(),lt(ct(eSt,1),oe,482,0,[Jht])))}function jZt(){jZt=Z,H3e=Wr((UC(),lt(ct(kSt,1),oe,530,0,[VO])))}function $Zt(){$Zt=Z,Kpe=Wr((jR(),lt(ct(l7t,1),oe,481,0,[Kut])))}function _sn(){return rv(),lt(ct(qpe,1),oe,406,0,[hO,lO,Wut,Yut])}function Ssn(){return U$(),lt(ct(sV,1),oe,297,0,[jut,OEt,PEt,FEt])}function Asn(){return c_(),lt(ct(Wpe,1),oe,394,0,[bO,lV,hV,wO])}function Lsn(){return u6(),lt(ct(Vpe,1),oe,323,0,[dO,fO,gO,pO])}function Msn(){return nE(),lt(ct(zbe,1),oe,405,0,[Lv,Fy,Py,z4])}function Dsn(){return Tz(),lt(ct(a2e,1),oe,360,0,[wlt,BV,RV,kO])}function zZt(t,e,n,r){return _t(n,54)?new SWt(t,e,n,r):new ovt(t,e,n,r)}function Isn(){return I1(),lt(ct(p2e,1),oe,411,0,[O6,f7,d7,vlt])}function Osn(t){var e;return t.j==(ve(),mr)&&(e=uce(t),Nu(e,Hn))}function Psn(t,e){var n;n=e.a,Oa(n,e.c.d),oa(n,e.d.d),ny(n.a,t.n)}function qZt(t,e){return u(Nw(Jj(u(Ai(t.k,e),15).Oc(),H4)),113)}function HZt(t,e){return u(Nw(t$(u(Ai(t.k,e),15).Oc(),H4)),113)}function Fsn(t){return new _n(Icn(u(t.a.dd(),14).gc(),t.a.cd()),16)}function F8(t){return _t(t,14)?u(t,14).dc():!t.Kc().Ob()}function Xx(t){return GC(),_t(t.g,145)?u(t.g,145):null}function VZt(t){if(t.e.g!=t.b)throw it(new rh);return!!t.c&&t.d>0}function ti(t){return Zn(t.b!=t.d.c),t.c=t.b,t.b=t.b.a,++t.a,t.c.c}function imt(t,e){On(e),ts(t.a,t.c,e),t.c=t.c+1&t.a.length-1,Gse(t)}function Up(t,e){On(e),t.b=t.b-1&t.a.length-1,ts(t.a,t.b,e),Gse(t)}function GZt(t,e){var n;for(n=t.j.c.length;n0&&Dc(t.g,0,e,0,t.i),e}function KZt(t,e){GR();var n;return n=u(tr(dU,t),55),!n||n.wj(e)}function Ysn(t){if(t.p!=1)throw it(new Ou);return Ar(t.f)<<24>>24}function Ksn(t){if(t.p!=1)throw it(new Ou);return Ar(t.k)<<24>>24}function Xsn(t){if(t.p!=7)throw it(new Ou);return Ar(t.k)<<16>>16}function Qsn(t){if(t.p!=7)throw it(new Ou);return Ar(t.f)<<16>>16}function j0(t){var e;for(e=0;t.Ob();)t.Pb(),e=Pa(e,1);return J$(e)}function XZt(t,e){var n;return n=new Im,t.xd(n),n.a+="..",e.yd(n),n.a}function Zsn(t,e,n){var r;r=u(tr(t.g,n),57),le(t.a.c,new fa(e,r))}function Jsn(t,e,n){return Unt(ye(ec(Lo(t.f,e))),ye(ec(Lo(t.f,n))))}function O$(t,e,n){return Mq(t,e,n,_t(e,99)&&(u(e,18).Bb&Ka)!=0)}function tan(t,e,n){return DE(t,e,n,_t(e,99)&&(u(e,18).Bb&Ka)!=0)}function ean(t,e,n){return T2n(t,e,n,_t(e,99)&&(u(e,18).Bb&Ka)!=0)}function omt(t,e){return t==(Vn(),Os)&&e==Os?4:t==Os||e==Os?8:32}function QZt(t,e){return Vt(e)===Vt(t)?"(this Map)":e==null?_u:$o(e)}function nan(t,e){return u(e==null?ec(Lo(t.f,null)):KC(t.g,e),281)}function ZZt(t,e,n){var r;return r=pE(n),ki(t.b,r,e),ki(t.c,e,n),e}function JZt(t,e){var n;for(n=e;n;)jm(t,n.i,n.j),n=es(n);return t}function cmt(t,e){var n;return n=iD(x8(new nit(t,e))),Vj(new nit(t,e)),n}function Zd(t,e){to();var n;return n=u(t,66).Mj(),Ngn(n,e),n.Ok(e)}function ran(t,e,n,r,s){var o;o=L2n(s,n,r),le(e,Spn(s,o)),vgn(t,s,e)}function tJt(t,e,n){t.i=0,t.e=0,e!=n&&(Cre(t,e,n),Tre(t,e,n))}function umt(t,e){var n;n=t.q.getHours(),t.q.setFullYear(e+ab),E_(t,n)}function ian(t,e,n){if(n){var r=n.ee();t.a[e]=r(n)}else delete t.a[e]}function Brt(t,e,n){if(n){var r=n.ee();n=r(n)}else n=void 0;t.a[e]=n}function eJt(t){if(t<0)throw it(new aHt("Negative array size: "+t))}function Lc(t){return t.n||(sl(t),t.n=new PKt(t,ho,t),Ao(t)),t.n}function j9(t){return Zn(t.a=0&&t.a[n]===e[n];n--);return n<0}function aJt(t,e){oE();var n;return n=t.j.g-e.j.g,n!=0?n:0}function oJt(t,e){return On(e),t.a!=null?Hen(e.Kb(t.a)):iV}function P$(t){var e;return t?new Wwt(t):(e=new O0,xit(e,t),e)}function Bl(t,e){var n;return e.b.Kb(Jte(t,e.c.Ee(),(n=new In(e),n)))}function F$(t){M4t(),QUt(this,Ar(Ns($p(t,24),Uq)),Ar(Ns(t,Uq)))}function cJt(){cJt=Z,upe=Wr((Gz(),lt(ct(zEt,1),oe,428,0,[qut,$Et])))}function uJt(){uJt=Z,lpe=Wr((Q$(),lt(ct(HEt,1),oe,427,0,[qEt,Hut])))}function lJt(){lJt=Z,fbe=Wr((Z$(),lt(ct(w7t,1),oe,424,0,[tlt,gV])))}function hJt(){hJt=Z,r2e=Wr((X8(),lt(ct(n2e,1),oe,511,0,[yO,dlt])))}function fJt(){fJt=Z,M2e=Wr((LD(),lt(ct(BTt,1),oe,419,0,[GV,NTt])))}function dJt(){dJt=Z,P2e=Wr((xD(),lt(ct($Tt,1),oe,479,0,[jTt,WV])))}function gJt(){gJt=Z,dme=Wr((pD(),lt(ct(Y9t,1),oe,376,0,[Sht,BO])))}function pJt(){pJt=Z,ume=Wr((CD(),lt(ct(V9t,1),oe,421,0,[Tht,Cht])))}function bJt(){bJt=Z,_2e=Wr((H$(),lt(ct(LTt,1),oe,422,0,[ATt,Alt])))}function wJt(){wJt=Z,z2e=Wr((I$(),lt(ct(JTt,1),oe,420,0,[Hlt,ZTt])))}function vJt(){vJt=Z,iye=Wr((Uf(),lt(ct(rye,1),oe,520,0,[Ky,mb])))}function mJt(){mJt=Z,Pme=Wr(($9(),lt(ct(Ome,1),oe,523,0,[BS,NS])))}function yJt(){yJt=Z,zme=Wr((bd(),lt(ct($me,1),oe,516,0,[zv,ep])))}function xJt(){xJt=Z,Hme=Wr((C1(),lt(ct(qme,1),oe,515,0,[H2,H1])))}function kJt(){kJt=Z,hye=Wr((Gw(),lt(ct(lye,1),oe,455,0,[yb,r5])))}function EJt(){EJt=Z,Lye=Wr((A$(),lt(ct(v_t,1),oe,425,0,[qht,w_t])))}function TJt(){TJt=Z,Pye=Wr((pz(),lt(ct(m_t,1),oe,495,0,[FG,D7])))}function CJt(){CJt=Z,Aye=Wr((T$(),lt(ct(b_t,1),oe,480,0,[zht,p_t])))}function _Jt(){_Jt=Z,Bye=Wr((G$(),lt(ct(x_t,1),oe,426,0,[y_t,Uht])))}function SJt(){SJt=Z,V3e=Wr((jD(),lt(ct(TSt,1),oe,429,0,[VG,ESt])))}function AJt(){AJt=Z,_3e=Wr((bD(),lt(ct(nSt,1),oe,430,0,[eft,qG])))}function $9(){$9=Z,BS=new Hbt("UPPER",0),NS=new Hbt("LOWER",1)}function can(t,e){var n;n=new _x,r2(n,"x",e.a),r2(n,"y",e.b),Vx(t,n)}function uan(t,e){var n;n=new _x,r2(n,"x",e.a),r2(n,"y",e.b),Vx(t,n)}function lan(t,e){var n,r;r=!1;do n=bre(t,e),r=r|n;while(n);return r}function fmt(t,e){var n,r;for(n=e,r=0;n>0;)r+=t.a[n],n-=n&-n;return r}function LJt(t,e){var n;for(n=e;n;)jm(t,-n.i,-n.j),n=es(n);return t}function va(t,e){var n,r;for(On(e),r=t.Kc();r.Ob();)n=r.Pb(),e.td(n)}function MJt(t,e){var n;return n=e.cd(),new Lw(n,t.e.pc(n,u(e.dd(),14)))}function fs(t,e,n,r){var s;s=new xt,s.c=e,s.b=n,s.a=r,r.b=n.a=s,++t.b}function ch(t,e,n){var r;return r=(An(e,t.c.length),t.c[e]),t.c[e]=n,r}function han(t,e,n){return u(e==null?au(t.f,null,n):sv(t.g,e,n),281)}function zrt(t){return t.c&&t.d?Kvt(t.c)+"->"+Kvt(t.d):"e_"+Pw(t)}function N8(t,e){return(w2(t),qC(new Tn(t,new Nmt(e,t.a)))).sd(o7)}function fan(){return Wa(),lt(ct(I7t,1),oe,356,0,[Dd,gb,cu,qc,Io])}function dan(){return ve(),lt(ct(Xa,1),xc,61,0,[Zo,Pn,Hn,mr,Bn])}function gan(t){return AR(),function(){return Csn(t,this,arguments)}}function pan(){return Date.now?Date.now():new Date().getTime()}function Ga(t){return!t.c||!t.d?!1:!!t.c.i&&t.c.i==t.d.i}function DJt(t){if(!t.c.Sb())throw it(new lc);return t.a=!0,t.c.Ub()}function dD(t){t.i=0,CM(t.b,null),CM(t.c,null),t.a=null,t.e=null,++t.g}function dmt(t){kXe.call(this,t==null?_u:$o(t),_t(t,78)?u(t,78):null)}function IJt(t){rfe(),nqt(this),this.a=new Zi,$yt(this,t),ri(this.a,t)}function OJt(){ant(this),this.b=new $e(as,as),this.a=new $e(Cs,Cs)}function PJt(t,e){this.c=0,this.b=e,cUt.call(this,t,17493),this.a=this.c}function qrt(t){N$(),!$1&&(this.c=t,this.e=!0,this.a=new he)}function N$(){N$=Z,$1=!0,Jge=!1,tpe=!1,npe=!1,epe=!1}function gmt(t,e){return _t(e,149)?hn(t.c,u(e,149).c):!1}function pmt(t,e){var n;return n=0,t&&(n+=t.f.a/2),e&&(n+=e.f.a/2),n}function Hrt(t,e){var n;return n=u(Xw(t.d,e),23),n||u(Xw(t.e,e),23)}function FJt(t){this.b=t,nr.call(this,t),this.a=u(Dn(this.b.a,4),126)}function NJt(t){this.b=t,Bx.call(this,t),this.a=u(Dn(this.b.a,4),126)}function sl(t){return t.t||(t.t=new Uzt(t),n_(new sHt(t),0,t.t)),t.t}function ban(){return ao(),lt(ct(XS,1),oe,103,0,[h0,Cf,zh,ng,rg])}function wan(){return l4(),lt(ct(tA,1),oe,249,0,[Eb,iP,IAt,JS,OAt])}function van(){return Qf(),lt(ct(ip,1),oe,175,0,[qn,ea,Pd,V2,rp])}function man(){return uI(),lt(ct(aSt,1),oe,316,0,[rSt,nft,sSt,rft,iSt])}function yan(){return u_(),lt(ct(N9t,1),oe,315,0,[F9t,xht,kht,DS,IS])}function xan(){return x2(),lt(ct(FTt,1),oe,335,0,[Mlt,PTt,Dlt,vS,wS])}function kan(){return AE(),lt(ct(y3e,1),oe,355,0,[i5,G6,GS,VS,US])}function Ean(){return b4(),lt(ct(w2e,1),oe,363,0,[$V,qV,HV,zV,jV])}function Tan(){return dh(),lt(ct(fCt,1),oe,163,0,[MO,ES,bb,TS,jy])}function B8(){B8=Z;var t,e;wU=(c8(),e=new xR,e),vU=(t=new ret,t)}function BJt(t){var e;return t.c||(e=t.r,_t(e,88)&&(t.c=u(e,26))),t.c}function Can(t){return t.e=3,t.d=t.Yb(),t.e!=2?(t.e=0,!0):!1}function Vrt(t){var e,n,r;return e=t&hl,n=t>>22&hl,r=t<0?Z0:0,iu(e,n,r)}function _an(t){var e,n,r,s;for(n=t,r=0,s=n.length;r0?Fie(t,e):rue(t,-e)}function bmt(t,e){return e==0||t.e==0?t:e>0?rue(t,e):Fie(t,-e)}function Mr(t){if(zr(t))return t.c=t.a,t.a.Pb();throw it(new lc)}function jJt(t){var e,n;return e=t.c.i,n=t.d.i,e.k==(Vn(),ks)&&n.k==ks}function Grt(t){var e;return e=new Vw,Mo(e,t),Jt(e,(Te(),So),null),e}function Urt(t,e,n){var r;return r=t.Yg(e),r>=0?t._g(r,n,!0):dv(t,e,n)}function wmt(t,e,n,r){var s;for(s=0;se)throw it(new yo(J4t(t,e,"index")));return t}function Wrt(t,e,n,r){var s;return s=Nt(Cr,Xr,25,e,15,1),j0n(s,t,e,n,r),s}function Aan(t,e){var n;n=t.q.getHours()+(e/60|0),t.q.setMinutes(e),E_(t,n)}function Lan(t,e){return b.Math.min(Wp(e.a,t.d.d.c),Wp(e.b,t.d.d.c))}function Jx(t,e){return ra(e)?e==null?b5t(t.f,null):Zne(t.g,e):b5t(t.f,e)}function L1(t){this.c=t,this.a=new S(this.c.a),this.b=new S(this.c.b)}function B$(){this.e=new he,this.c=new he,this.d=new he,this.b=new he}function VJt(){this.g=new Fpt,this.b=new Fpt,this.a=new he,this.k=new he}function GJt(t,e,n){this.a=t,this.c=e,this.d=n,le(e.e,this),le(n.b,this)}function UJt(t,e){oUt.call(this,e.rd(),e.qd()&-6),On(t),this.a=t,this.b=e}function WJt(t,e){cUt.call(this,e.rd(),e.qd()&-6),On(t),this.a=t,this.b=e}function Tmt(t,e){ent.call(this,e.rd(),e.qd()&-6),On(t),this.a=t,this.b=e}function R$(t,e,n){this.a=t,this.b=e,this.c=n,le(t.t,this),le(e.i,this)}function j$(){this.b=new Zi,this.a=new Zi,this.b=new Zi,this.a=new Zi}function $$(){$$=Z,WS=new Vi("org.eclipse.elk.labels.labelManager")}function YJt(){YJt=Z,ETt=new Ps("separateLayerConnections",(Tz(),wlt))}function Uf(){Uf=Z,Ky=new Ubt("REGULAR",0),mb=new Ubt("CRITICAL",1)}function pD(){pD=Z,Sht=new qbt("STACKED",0),BO=new qbt("SEQUENCED",1)}function bD(){bD=Z,eft=new Zbt("FIXED",0),qG=new Zbt("CENTER_NODE",1)}function Man(t,e){var n;return n=P4n(t,e),t.b=new gz(n.c.length),U3n(t,n)}function Dan(t,e,n){var r;return++t.e,--t.f,r=u(t.d[e].$c(n),133),r.dd()}function KJt(t){var e;return t.a||(e=t.r,_t(e,148)&&(t.a=u(e,148))),t.a}function Cmt(t){if(t.a){if(t.e)return Cmt(t.e)}else return t;return null}function Ian(t,e){return t.pe.p?-1:0}function z$(t,e){return On(e),t.c=0,"Initial capacity must not be negative")}function ZJt(){ZJt=Z,gpe=Wr((Kf(),lt(ct(Oy,1),oe,232,0,[sc,eu,ac])))}function JJt(){JJt=Z,bpe=Wr((Qu(),lt(ct(ppe,1),oe,461,0,[Md,fb,kf])))}function tte(){tte=Z,vpe=Wr((yu(),lt(ct(wpe,1),oe,462,0,[n1,db,Ef])))}function ete(){ete=Z,rpe=Wr((O1(),lt(ct(fl,1),oe,132,0,[BEt,Ul,Iy])))}function nte(){nte=Z,Obe=Wr((q9(),lt(ct(D7t,1),oe,379,0,[ilt,rlt,slt])))}function rte(){rte=Z,Ybe=Wr((iv(),lt(ct(F7t,1),oe,423,0,[q4,P7t,llt])))}function ite(){ite=Z,S2e=Wr((n6(),lt(ct(DTt,1),oe,314,0,[P6,EO,MTt])))}function ste(){ste=Z,A2e=Wr((oz(),lt(ct(OTt,1),oe,337,0,[ITt,VV,Llt])))}function ate(){ate=Z,I2e=Wr((d2(),lt(ct(D2e,1),oe,450,0,[Ilt,w7,U4])))}function ote(){ote=Z,E2e=Wr((nv(),lt(ct(mlt,1),oe,361,0,[Dv,pb,Mv])))}function cte(){cte=Z,$2e=Wr((q0(),lt(ct(j2e,1),oe,303,0,[CO,Y4,F6])))}function ute(){ute=Z,R2e=Wr((eE(),lt(ct(qlt,1),oe,292,0,[$lt,zlt,TO])))}function lte(){lte=Z,ime=Wr((Z9(),lt(ct(P9t,1),oe,378,0,[vht,O9t,yG])))}function hte(){hte=Z,fme=Wr((yz(),lt(ct(W9t,1),oe,375,0,[G9t,_ht,U9t])))}function fte(){fte=Z,cme=Wr((V0(),lt(ct(H9t,1),oe,339,0,[vb,q9t,Eht])))}function dte(){dte=Z,hme=Wr((so(),lt(ct(lme,1),oe,452,0,[OS,tl,nu])))}function gte(){gte=Z,bme=Wr((Cz(),lt(ct(t_t,1),oe,377,0,[Mht,L7,Yy])))}function pte(){pte=Z,gme=Wr((cE(),lt(ct(X9t,1),oe,336,0,[Aht,K9t,PS])))}function bte(){bte=Z,pme=Wr((vz(),lt(ct(J9t,1),oe,338,0,[Z9t,Lht,Q9t])))}function wte(){wte=Z,Lme=Wr((ev(),lt(ct(Ame,1),oe,454,0,[RO,FS,TG])))}function vte(){vte=Z,Nye=Wr((Nz(),lt(ct(Fye,1),oe,442,0,[Ght,Hht,Vht])))}function mte(){mte=Z,Rye=Wr((HD(),lt(ct(T_t,1),oe,380,0,[NG,k_t,E_t])))}function yte(){yte=Z,e3e=Wr((Fz(),lt(ct(q_t,1),oe,381,0,[z_t,Qht,$_t])))}function xte(){xte=Z,t3e=Wr((mz(),lt(ct(R_t,1),oe,293,0,[Xht,B_t,N_t])))}function kte(){kte=Z,k3e=Wr((KD(),lt(ct(Zht,1),oe,437,0,[jG,$G,zG])))}function Ete(){Ete=Z,C4e=Wr((G0(),lt(ct(DAt,1),oe,334,0,[tU,sp,ZS])))}function Tte(){Tte=Z,x4e=Wr((M1(),lt(ct(mAt,1),oe,272,0,[P7,Zy,F7])))}function jan(){return ua(),lt(ct(PAt,1),oe,98,0,[Tb,G1,B7,Y2,g0,Gc])}function o2(t,e){return!t.o&&(t.o=new _l((Jc(),Sb),Hv,t,0)),ist(t.o,e)}function $an(t){return!t.g&&(t.g=new Ik),!t.g.d&&(t.g.d=new Hzt(t)),t.g.d}function zan(t){return!t.g&&(t.g=new Ik),!t.g.a&&(t.g.a=new Vzt(t)),t.g.a}function qan(t){return!t.g&&(t.g=new Ik),!t.g.b&&(t.g.b=new qzt(t)),t.g.b}function wD(t){return!t.g&&(t.g=new Ik),!t.g.c&&(t.g.c=new Gzt(t)),t.g.c}function Han(t,e,n){var r,s;for(s=new tE(e,t),r=0;rn||e=0?t._g(n,!0,!0):dv(t,e,!0)}function aon(t,e){return Ms(Xt(ye(Q(t,(ae(),Fv)))),Xt(ye(Q(e,Fv))))}function Dte(){Dte=Z,Dye=uv(uv(VR(new Vs,(wE(),RS)),(p_(),LG)),Oht)}function oon(t,e,n){var r;return r=xre(t,e,n),t.b=new gz(r.c.length),z5t(t,r)}function con(t){if(t.b<=0)throw it(new lc);return--t.b,t.a-=t.c.c,pe(t.a)}function uon(t){var e;if(!t.a)throw it(new FXt);return e=t.a,t.a=es(t.a),e}function lon(t){for(;!t.a;)if(!mYt(t.c,new ze(t)))return!1;return!0}function e6(t){var e;return Lr(t),_t(t,198)?(e=u(t,198),e):new btt(t)}function hon(t){V$(),u(t.We((ui(),Qy)),174).Fc((Zu(),sP)),t.Ye(kft,null)}function V$(){V$=Z,W3e=new LZ,K3e=new MZ,Y3e=Kun((ui(),kft),W3e,xb,K3e)}function G$(){G$=Z,y_t=new Qbt("LEAF_NUMBER",0),Uht=new Qbt("NODE_SIZE",1)}function fon(t,e,n){t.a=e,t.c=n,t.b.a.$b(),Ah(t.d),t.e.a.c=Nt(Qn,De,1,0,5,1)}function tit(t){t.a=Nt(Cr,Xr,25,t.b+1,15,1),t.c=Nt(Cr,Xr,25,t.b,15,1),t.d=0}function don(t,e){t.a.ue(e.d,t.b)>0&&(le(t.c,new $wt(e.c,e.d,t.d)),t.b=e.d)}function Fmt(t,e){if(t.g==null||e>=t.i)throw it(new nnt(e,t.i));return t.g[e]}function Ite(t,e,n){if(sE(t,n),n!=null&&!t.wj(n))throw it(new tet);return n}function Ote(t){var e;if(t.Ek())for(e=t.i-1;e>=0;--e)At(t,e);return amt(t)}function gon(t){var e,n;if(!t.b)return null;for(n=t.b;e=n.a[0];)n=e;return n}function pon(t,e){var n,r;return eJt(e),n=(r=t.slice(0,e),Bmt(r,t)),n.length=e,n}function $8(t,e,n,r){var s;r=(Z3(),r||_Et),s=t.slice(e,n),t5t(s,t,e,n,-e,r)}function uh(t,e,n,r,s){return e<0?dv(t,n,r):u(n,66).Nj().Pj(t,t.yh(),e,r,s)}function bon(t){return _t(t,172)?""+u(t,172).a:t==null?null:$o(t)}function won(t){return _t(t,172)?""+u(t,172).a:t==null?null:$o(t)}function Pte(t,e){if(e.a)throw it(new Vo(Pfe));Fs(t.a,e),e.a=t,!t.j&&(t.j=e)}function Nmt(t,e){ent.call(this,e.rd(),e.qd()&-16449),On(t),this.a=t,this.c=e}function Fte(t,e){var n,r;return r=e/t.c.Hd().gc()|0,n=e%t.c.Hd().gc(),t6(t,r,n)}function Qu(){Qu=Z,Md=new Let(y6,0),fb=new Let(qE,1),kf=new Let(x6,2)}function U$(){U$=Z,jut=new YR("All",0),OEt=new MUt,PEt=new qUt,FEt=new DUt}function Nte(){Nte=Z,Qge=Wr((U$(),lt(ct(sV,1),oe,297,0,[jut,OEt,PEt,FEt])))}function Bte(){Bte=Z,qbe=Wr((nE(),lt(ct(zbe,1),oe,405,0,[Lv,Fy,Py,z4])))}function Rte(){Rte=Z,Hpe=Wr((rv(),lt(ct(qpe,1),oe,406,0,[hO,lO,Wut,Yut])))}function jte(){jte=Z,Gpe=Wr((u6(),lt(ct(Vpe,1),oe,323,0,[dO,fO,gO,pO])))}function $te(){$te=Z,Ype=Wr((c_(),lt(ct(Wpe,1),oe,394,0,[bO,lV,hV,wO])))}function zte(){zte=Z,fye=Wr((wE(),lt(ct(s_t,1),oe,393,0,[AG,RS,$O,jS])))}function qte(){qte=Z,o2e=Wr((Tz(),lt(ct(a2e,1),oe,360,0,[wlt,BV,RV,kO])))}function Hte(){Hte=Z,Jye=Wr((eq(),lt(ct(F_t,1),oe,340,0,[Kht,O_t,P_t,I_t])))}function Vte(){Vte=Z,b2e=Wr((I1(),lt(ct(p2e,1),oe,411,0,[O6,f7,d7,vlt])))}function Gte(){Gte=Z,sme=Wr((cy(),lt(ct(yht,1),oe,197,0,[xG,mht,n5,e5])))}function Ute(){Ute=Z,q4e=Wr((Sl(),lt(ct(z4e,1),oe,396,0,[Ql,qAt,zAt,HAt])))}function Wte(){Wte=Z,S4e=Wr((zl(),lt(ct(_4e,1),oe,285,0,[rP,f0,kb,nP])))}function Yte(){Yte=Z,k4e=Wr((W0(),lt(ct(_ft,1),oe,218,0,[Cft,eP,N7,X6])))}function Kte(){Kte=Z,j4e=Wr((jz(),lt(ct($At,1),oe,311,0,[Lft,BAt,jAt,RAt])))}function Xte(){Xte=Z,B4e=Wr((Al(),lt(ct(rA,1),oe,374,0,[oP,K2,aP,Jy])))}function Qte(){Qte=Z,Dq(),TLt=as,V5e=Cs,CLt=new P3(as),G5e=new P3(Cs)}function xD(){xD=Z,jTt=new jbt(J0,0),WV=new jbt("IMPROVE_STRAIGHTNESS",1)}function von(t,e){return k8(),le(t,new fa(e,pe(e.e.c.length+e.g.c.length)))}function mon(t,e){return k8(),le(t,new fa(e,pe(e.e.c.length+e.g.c.length)))}function Bmt(t,e){return _D(e)!=10&<(ol(e),e.hm,e.__elementTypeId$,_D(e),t),t}function mu(t,e){var n;return n=Ro(t,e,0),n==-1?!1:(Fg(t,n),!0)}function Zte(t,e){var n;return n=u(Jx(t.e,e),387),n?(Hwt(n),n.e):null}function z8(t){var e;return Bo(t)&&(e=0-t,!isNaN(e))?e:Kp(rE(t))}function Ro(t,e,n){for(;n=0?Xz(t,n,!0,!0):dv(t,e,!0)}function qmt(t,e){GC();var n,r;return n=Xx(t),r=Xx(e),!!n&&!!r&&!gse(n.k,r.k)}function kon(t,e){ku(t,e==null||Pj((On(e),e))||isNaN((On(e),e))?0:(On(e),e))}function Eon(t,e){Eu(t,e==null||Pj((On(e),e))||isNaN((On(e),e))?0:(On(e),e))}function Ton(t,e){tv(t,e==null||Pj((On(e),e))||isNaN((On(e),e))?0:(On(e),e))}function Con(t,e){Jw(t,e==null||Pj((On(e),e))||isNaN((On(e),e))?0:(On(e),e))}function ree(t){(this.q?this.q:(wn(),wn(),u0)).Ac(t.q?t.q:(wn(),wn(),u0))}function _on(t,e){return _t(e,99)&&u(e,18).Bb&Ka?new rnt(e,t):new tE(e,t)}function Son(t,e){return _t(e,99)&&u(e,18).Bb&Ka?new rnt(e,t):new tE(e,t)}function iee(t,e){c7t=new vp,Upe=e,hS=t,u(hS.b,65),Amt(hS,c7t,null),Qle(hS)}function sit(t,e,n){var r;return r=t.g[e],p9(t,e,t.oi(e,n)),t.gi(e,n,r),t.ci(),r}function X$(t,e){var n;return n=t.Xc(e),n>=0?(t.$c(n),!0):!1}function ait(t){var e;return t.d!=t.r&&(e=Dh(t),t.e=!!e&&e.Cj()==j0e,t.d=e),t.e}function oit(t,e){var n;for(Lr(t),Lr(e),n=!1;e.Ob();)n=n|t.Fc(e.Pb());return n}function Xw(t,e){var n;return n=u(tr(t.e,e),387),n?(XUt(t,n),n.e):null}function see(t){var e,n;return e=t/60|0,n=t%60,n==0?""+e:""+e+":"+(""+n)}function Wo(t,e){var n,r;return w2(t),r=new Tmt(e,t.a),n=new kYt(r),new Tn(t,n)}function Jm(t,e){var n=t.a[e],r=(_it(),Put)[typeof n];return r?r(n):Uyt(typeof n)}function Aon(t){switch(t.g){case 0:return wi;case 1:return-1;default:return 0}}function Lon(t){return u4t(t,(q8(),oEt))<0?-GQe(rE(t)):t.l+t.m*m6+t.h*C2}function _D(t){return t.__elementTypeCategory$==null?10:t.__elementTypeCategory$}function cit(t){var e;return e=t.b.c.length==0?null:Ne(t.b,0),e!=null&&vit(t,0),e}function aee(t,e){for(;e[0]=0;)++e[0]}function SD(t,e){this.e=e,this.a=Jne(t),this.a<54?this.f=Yw(t):this.c=JD(t)}function oee(t,e,n,r){gi(),yw.call(this,26),this.c=t,this.a=e,this.d=n,this.b=r}function Jd(t,e,n){var r,s;for(r=10,s=0;st.a[r]&&(r=n);return r}function Fon(t,e){var n;return n=av(t.e.c,e.e.c),n==0?Ms(t.e.d,e.e.d):n}function e4(t,e){return e.e==0||t.e==0?s7:(TE(),uat(t,e))}function Non(t,e){if(!t)throw it(new Fn(jwn("Enum constant undefined: %s",e)))}function H9(){H9=Z,Gbe=new xg,Ube=new T3,Hbe=new cK,Vbe=new Vb,Wbe=new uK}function Q$(){Q$=Z,qEt=new Obt("BY_SIZE",0),Hut=new Obt("BY_SIZE_AND_SHAPE",1)}function Z$(){Z$=Z,tlt=new Pbt("EADES",0),gV=new Pbt("FRUCHTERMAN_REINGOLD",1)}function LD(){LD=Z,GV=new Rbt("READING_DIRECTION",0),NTt=new Rbt("ROTATION",1)}function uee(){uee=Z,L2e=Wr((x2(),lt(ct(FTt,1),oe,335,0,[Mlt,PTt,Dlt,vS,wS])))}function lee(){lee=Z,ame=Wr((u_(),lt(ct(N9t,1),oe,315,0,[F9t,xht,kht,DS,IS])))}function hee(){hee=Z,v2e=Wr((b4(),lt(ct(w2e,1),oe,363,0,[$V,qV,HV,zV,jV])))}function fee(){fee=Z,q2e=Wr((dh(),lt(ct(fCt,1),oe,163,0,[MO,ES,bb,TS,jy])))}function dee(){dee=Z,S3e=Wr((uI(),lt(ct(aSt,1),oe,316,0,[rSt,nft,sSt,rft,iSt])))}function gee(){gee=Z,X3e=Wr((Qf(),lt(ct(ip,1),oe,175,0,[qn,ea,Pd,V2,rp])))}function pee(){pee=Z,x3e=Wr((AE(),lt(ct(y3e,1),oe,355,0,[i5,G6,GS,VS,US])))}function bee(){bee=Z,Bbe=Wr((Wa(),lt(ct(I7t,1),oe,356,0,[Dd,gb,cu,qc,Io])))}function wee(){wee=Z,y4e=Wr((ao(),lt(ct(XS,1),oe,103,0,[h0,Cf,zh,ng,rg])))}function vee(){vee=Z,L4e=Wr((l4(),lt(ct(tA,1),oe,249,0,[Eb,iP,IAt,JS,OAt])))}function mee(){mee=Z,I4e=Wr((ve(),lt(ct(Xa,1),xc,61,0,[Zo,Pn,Hn,mr,Bn])))}function uit(t,e){var n;return n=u(tr(t.a,e),134),n||(n=new ka,ki(t.a,e,n)),n}function yee(t){var e;return e=u(Q(t,(ae(),Iv)),305),e?e.a==t:!1}function xee(t){var e;return e=u(Q(t,(ae(),Iv)),305),e?e.i==t:!1}function kee(t,e){return On(e),uvt(t),t.d.Ob()?(e.td(t.d.Pb()),!0):!1}function J$(t){return yc(t,wi)>0?wi:yc(t,Sa)<0?Sa:Ar(t)}function ty(t){return t<3?(jl(t,bfe),t+1):t=0&&e=-.01&&t.a<=B1&&(t.a=0),t.b>=-.01&&t.b<=B1&&(t.b=0),t}function Tee(t,e){return e==(Ant(),Ant(),Yge)?t.toLocaleLowerCase():t.toLowerCase()}function Vmt(t){return(t.i&2?"interface ":t.i&1?"":"class ")+(P0(t),t.o)}function Co(t){var e,n;n=(e=new iet,e),Dr((!t.q&&(t.q=new fe(Wh,t,11,10)),t.q),n)}function Bon(t,e){var n;return n=e>0?e-1:e,yHt(QKe(Kee(qwt(new r8,n),t.n),t.j),t.k)}function Ron(t,e,n,r){var s;t.j=-1,d5t(t,W4t(t,e,n),(to(),s=u(e,66).Mj(),s.Ok(r)))}function Cee(t){this.g=t,this.f=new he,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function _ee(t){this.b=new he,this.a=new he,this.c=new he,this.d=new he,this.e=t}function See(t,e){this.a=new _r,this.e=new _r,this.b=(Z9(),yG),this.c=t,this.b=e}function Aee(t,e,n){Ij.call(this),Gmt(this),this.a=t,this.c=n,this.b=e.d,this.f=e.e}function Lee(t){this.d=t,this.c=t.c.vc().Kc(),this.b=null,this.a=null,this.e=(TR(),Mut)}function Qw(t){if(t<0)throw it(new Fn("Illegal Capacity: "+t));this.g=this.ri(t)}function jon(t,e){if(0>t||t>e)throw it(new ibt("fromIndex: 0, toIndex: "+t+Uxt+e))}function $on(t){var e;if(t.a==t.b.a)throw it(new lc);return e=t.a,t.c=e,t.a=t.a.e,e}function tz(t){var e;Rm(!!t.c),e=t.c.a,lh(t.d,t.c),t.b==t.c?t.b=e:--t.a,t.c=null}function ez(t,e){var n;return w2(t),n=new QXt(t,t.a.rd(),t.a.qd()|4,e),new Tn(t,n)}function zon(t,e){var n,r;return n=u(sy(t.d,e),14),n?(r=e,t.e.pc(r,n)):null}function nz(t,e){var n,r;for(r=t.Kc();r.Ob();)n=u(r.Pb(),70),Jt(n,(ae(),j6),e)}function qon(t){var e;return e=Xt(ye(Q(t,(Te(),Jg)))),e<0&&(e=0,Jt(t,Jg,e)),e}function Hon(t,e,n){var r;r=b.Math.max(0,t.b/2-.5),h_(n,r,1),le(e,new eGt(n,r))}function Von(t,e,n){var r;return r=t.a.e[u(e.a,10).p]-t.a.e[u(n.a,10).p],ps(JM(r))}function Mee(t,e,n,r,s,o){var h;h=Grt(r),Oa(h,s),oa(h,o),ln(t.a,r,new Fj(h,e,n.f))}function Dee(t,e){var n;if(n=mI(t.Tg(),e),!n)throw it(new Fn(lb+e+Wct));return n}function ey(t,e){var n;for(n=t;es(n);)if(n=es(n),n==e)return!0;return!1}function Gon(t,e){var n,r,s;for(r=e.a.cd(),n=u(e.a.dd(),14).gc(),s=0;s0&&(t.a/=e,t.b/=e),t}function Rl(t){var e;return t.w?t.w:(e=tsn(t),e&&!e.kh()&&(t.w=e),e)}function Jon(t){var e;return t==null?null:(e=u(t,190),tgn(e,e.length))}function At(t,e){if(t.g==null||e>=t.i)throw it(new nnt(e,t.i));return t.li(e,t.g[e])}function tcn(t){var e,n;for(e=t.a.d.j,n=t.c.d.j;e!=n;)vf(t.b,e),e=Oz(e);vf(t.b,e)}function ecn(t){var e;for(e=0;e=14&&e<=16))),t}function Fee(t,e,n){var r=function(){return t.apply(r,arguments)};return e.apply(r,n),r}function Nee(t,e,n){var r,s;r=e;do s=Xt(t.p[r.p])+n,t.p[r.p]=s,r=t.a[r.p];while(r!=e)}function H8(t,e){var n,r;r=t.a,n=Fln(t,e,null),r!=e&&!t.e&&(n=PE(t,e,n)),n&&n.Fi()}function Umt(t,e){return k1(),wf(sb),b.Math.abs(t-e)<=sb||t==e||isNaN(t)&&isNaN(e)}function Wmt(t,e){return k1(),wf(sb),b.Math.abs(t-e)<=sb||t==e||isNaN(t)&&isNaN(e)}function icn(t,e){return nb(),pu(t.b.c.length-t.e.c.length,e.b.c.length-e.e.c.length)}function n4(t,e){return nXe(U9(t,e,Ar(_a(i0,Xd(Ar(_a(e==null?0:Hi(e),s0)),15)))))}function Bee(){Bee=Z,Zbe=Wr((Vn(),lt(ct(flt,1),oe,267,0,[Os,ta,ks,Hc,Ll,z1])))}function Ree(){Ree=Z,s4e=Wr((hy(),lt(ct(dft,1),oe,291,0,[fft,XO,KO,hft,WO,YO])))}function jee(){jee=Z,J3e=Wr((t0(),lt(ct(LSt,1),oe,248,0,[uft,GO,UO,WG,GG,UG])))}function $ee(){$ee=Z,C2e=Wr((h6(),lt(ct(b7,1),oe,227,0,[p7,bS,g7,Ny,G4,V4])))}function zee(){zee=Z,N2e=Wr((kE(),lt(ct(QTt,1),oe,275,0,[mS,WTt,XTt,KTt,YTt,UTt])))}function qee(){qee=Z,F2e=Wr((oI(),lt(ct(GTt,1),oe,274,0,[YV,qTt,VTt,zTt,HTt,Rlt])))}function Hee(){Hee=Z,rme=Wr((uq(),lt(ct(I9t,1),oe,313,0,[wht,M9t,bht,L9t,D9t,mG])))}function Vee(){Vee=Z,O2e=Wr((dq(),lt(ct(RTt,1),oe,276,0,[Plt,Olt,Nlt,Flt,Blt,UV])))}function Gee(){Gee=Z,gye=Wr((p_(),lt(ct(dye,1),oe,327,0,[LG,Oht,Fht,Pht,Nht,Iht])))}function Uee(){Uee=Z,D4e=Wr((Zu(),lt(ct(eU,1),oe,273,0,[Cb,sg,sP,nA,eA,Q6])))}function Wee(){Wee=Z,E4e=Wr((hq(),lt(ct(CAt,1),oe,312,0,[Sft,kAt,TAt,yAt,EAt,xAt])))}function scn(){return py(),lt(ct(lo,1),oe,93,0,[_f,ig,Sf,Lf,d0,Hh,Yl,Af,qh])}function iz(t,e){var n;n=t.a,t.a=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,0,n,t.a))}function sz(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,1,n,t.b))}function V8(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,3,n,t.b))}function Jw(t,e){var n;n=t.f,t.f=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,3,n,t.f))}function tv(t,e){var n;n=t.g,t.g=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,4,n,t.g))}function ku(t,e){var n;n=t.i,t.i=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,5,n,t.i))}function Eu(t,e){var n;n=t.j,t.j=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,6,n,t.j))}function G8(t,e){var n;n=t.j,t.j=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,1,n,t.j))}function U8(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,4,n,t.c))}function W8(t,e){var n;n=t.k,t.k=e,t.Db&4&&!(t.Db&1)&&mi(t,new Qm(t,2,n,t.k))}function hit(t,e){var n;n=t.d,t.d=e,t.Db&4&&!(t.Db&1)&&mi(t,new Rrt(t,2,n,t.d))}function Rg(t,e){var n;n=t.s,t.s=e,t.Db&4&&!(t.Db&1)&&mi(t,new Rrt(t,4,n,t.s))}function ry(t,e){var n;n=t.t,t.t=e,t.Db&4&&!(t.Db&1)&&mi(t,new Rrt(t,5,n,t.t))}function Y8(t,e){var n;n=t.F,t.F=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,5,n,e))}function MD(t,e){var n;return n=u(tr((GR(),dU),t),55),n?n.xj(e):Nt(Qn,De,1,e,5,1)}function H0(t,e){var n,r;return n=e in t.a,n&&(r=B0(t,e).he(),r)?r.a:null}function acn(t,e){var n,r,s;return n=(r=(Sw(),s=new ZT,s),e&&F5t(r,e),r),nyt(n,t),n}function Yee(t,e,n){if(sE(t,n),!t.Bk()&&n!=null&&!t.wj(n))throw it(new tet);return n}function Kee(t,e){return t.n=e,t.n?(t.f=new he,t.e=new he):(t.f=null,t.e=null),t}function jr(t,e,n,r,s,o){var h;return h=rrt(t,e),Qee(n,h),h.i=s?8:0,h.f=r,h.e=s,h.g=o,h}function Ymt(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=1,this.c=t,this.a=n}function Kmt(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=2,this.c=t,this.a=n}function Xmt(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=6,this.c=t,this.a=n}function Qmt(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=7,this.c=t,this.a=n}function Zmt(t,e,n,r,s){this.d=e,this.j=r,this.e=s,this.o=-1,this.p=4,this.c=t,this.a=n}function Xee(t,e){var n,r,s,o;for(r=e,s=0,o=r.length;s=0),afn(t.d,t.c)<0&&(t.a=t.a-1&t.d.a.length-1,t.b=t.d.c),t.c=-1}function Jmt(t){return t.a<54?t.f<0?-1:t.f>0?1:0:(!t.c&&(t.c=VD(t.f)),t.c).e}function wf(t){if(!(t>=0))throw it(new Fn("tolerance ("+t+") must be >= 0"));return t}function K8(){return oft||(oft=new jue,o4(oft,lt(ct($4,1),De,130,0,[new Tp]))),oft}function so(){so=Z,OS=new zet(N_,0),tl=new zet("INPUT",1),nu=new zet("OUTPUT",2)}function oz(){oz=Z,ITt=new Fet("ARD",0),VV=new Fet("MSD",1),Llt=new Fet("MANUAL",2)}function ev(){ev=Z,RO=new Uet("BARYCENTER",0),FS=new Uet(E1e,1),TG=new Uet(T1e,2)}function DD(t,e){var n;if(n=t.gc(),e<0||e>n)throw it(new qm(e,n));return new wwt(t,e)}function tne(t,e){var n;return _t(e,42)?t.c.Mc(e):(n=ist(t,e),qz(t,e),n)}function bo(t,e,n){return b2(t,e),Qc(t,n),Rg(t,0),ry(t,1),qg(t,!0),zg(t,!0),t}function jl(t,e){if(t<0)throw it(new Fn(e+" cannot be negative but was: "+t));return t}function ene(t,e){var n,r;for(n=0,r=t.gc();n0?u(Ne(n.a,r-1),10):null}function G9(t,e){var n;n=t.k,t.k=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,2,n,t.k))}function uz(t,e){var n;n=t.f,t.f=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,8,n,t.f))}function lz(t,e){var n;n=t.i,t.i=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,7,n,t.i))}function nyt(t,e){var n;n=t.a,t.a=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,8,n,t.a))}function ryt(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,0,n,t.b))}function iyt(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,0,n,t.b))}function syt(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,1,n,t.c))}function ayt(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,1,n,t.c))}function dit(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,4,n,t.c))}function oyt(t,e){var n;n=t.d,t.d=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,1,n,t.d))}function git(t,e){var n;n=t.D,t.D=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,2,n,t.D))}function pit(t,e){t.r>0&&t.c0&&t.g!=0&&pit(t.i,e/t.r*t.i.d))}function pcn(t,e,n){var r;t.b=e,t.a=n,r=(t.a&512)==512?new Vqt:new XL,t.c=Dvn(r,t.b,t.a)}function lne(t,e){return X0(t.e,e)?(to(),ait(e)?new qj(e,t):new BM(e,t)):new nUt(e,t)}function hz(t,e){return eXe(W9(t.a,e,Ar(_a(i0,Xd(Ar(_a(e==null?0:Hi(e),s0)),15)))))}function bcn(t,e,n){return Zm(t,new ge(e),new Kn,new be(n),lt(ct(fl,1),oe,132,0,[]))}function wcn(t){var e,n;return 0>t?new mbt:(e=t+1,n=new PJt(e,t),new Z2t(null,n))}function vcn(t,e){wn();var n;return n=new Lx(1),ra(t)?ko(n,t,e):au(n.f,t,e),new q(n)}function mcn(t,e){var n,r;return n=t.o+t.p,r=e.o+e.p,ne?(e<<=1,e>0?e:D_):e}function bit(t){switch(L2t(t.e!=3),t.e){case 2:return!1;case 0:return!0}return Can(t)}function fne(t,e){var n;return _t(e,8)?(n=u(e,8),t.a==n.a&&t.b==n.b):!1}function wit(t,e,n){var r,s,o;return o=e>>5,s=e&31,r=Ns(Vm(t.n[n][o],Ar(F0(s,1))),3),r}function xcn(t,e){var n,r;for(r=e.vc().Kc();r.Ob();)n=u(r.Pb(),42),aq(t,n.cd(),n.dd())}function kcn(t,e){var n;n=new vp,u(e.b,65),u(e.b,65),u(e.b,65),xu(e.a,new Awt(t,n,e))}function cyt(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,21,n,t.b))}function uyt(t,e){var n;n=t.d,t.d=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,11,n,t.d))}function fz(t,e){var n;n=t.j,t.j=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,13,n,t.j))}function dne(t,e,n){var r,s,o;for(o=t.a.length-1,s=t.b,r=0;r>>31;r!=0&&(t[n]=r)}function Icn(t,e){wn();var n,r;for(r=new he,n=0;n0&&(this.g=this.ri(this.i+(this.i/8|0)+1),t.Qc(this.g))}function ss(t,e){Rj.call(this,E5e,t,e),this.b=this,this.a=ou(t.Tg(),yn(this.e.Tg(),this.c))}function Y9(t,e){var n,r;for(On(e),r=e.vc().Kc();r.Ob();)n=u(r.Pb(),42),t.zc(n.cd(),n.dd())}function qcn(t,e,n){var r;for(r=n.Kc();r.Ob();)if(!O$(t,e,r.Pb()))return!1;return!0}function Hcn(t,e,n,r,s){var o;return n&&(o=Gi(e.Tg(),t.c),s=n.gh(e,-1-(o==-1?r:o),null,s)),s}function Vcn(t,e,n,r,s){var o;return n&&(o=Gi(e.Tg(),t.c),s=n.ih(e,-1-(o==-1?r:o),null,s)),s}function Ine(t){var e;if(t.b==-2){if(t.e==0)e=-1;else for(e=0;t.a[e]==0;e++);t.b=e}return t.b}function One(t){switch(t.g){case 2:return ve(),Bn;case 4:return ve(),Hn;default:return t}}function Pne(t){switch(t.g){case 1:return ve(),mr;case 3:return ve(),Pn;default:return t}}function Gcn(t){var e,n,r;return t.j==(ve(),Pn)&&(e=uce(t),n=Nu(e,Hn),r=Nu(e,Bn),r||r&&n)}function Ucn(t){var e,n;return e=u(t.e&&t.e(),9),n=u(yvt(e,e.length),9),new sh(e,n,e.length)}function Wcn(t,e){vr(e,k1e,1),p3t(dXe(new er((VC(),new hrt(t,!1,!1,new aN))))),or(e)}function ID(t,e){return Nn(),ra(t)?kmt(t,Br(e)):Bm(t)?Unt(t,ye(e)):Nm(t)?Qen(t,Re(e)):t.wd(e)}function pyt(t,e){e.q=t,t.d=b.Math.max(t.d,e.r),t.b+=e.d+(t.a.c.length==0?0:t.c),le(t.a,e)}function Q8(t,e){var n,r,s,o;return s=t.c,n=t.c+t.b,o=t.d,r=t.d+t.a,e.a>s&&e.ao&&e.b1||t.Ob())return++t.a,t.g=0,e=t.i,t.Ob(),e;throw it(new lc)}function sun(t){FUt();var e;return GVt(Dht,t)||(e=new RQ,e.a=t,swt(Dht,t,e)),u(po(Dht,t),635)}function Lh(t){var e,n,r,s;return s=t,r=0,s<0&&(s+=C2,r=Z0),n=ps(s/m6),e=ps(s-n*m6),iu(e,n,r)}function OD(t){var e,n,r;for(r=0,n=new Mx(t.a);n.a>22),s=t.h+e.h+(r>>22),iu(n&hl,r&hl,s&Z0)}function tre(t,e){var n,r,s;return n=t.l-e.l,r=t.m-e.m+(n>>22),s=t.h-e.h+(r>>22),iu(n&hl,r&hl,s&Z0)}function BD(t){var e;return t<128?(e=(pKt(),hEt)[t],!e&&(e=hEt[t]=new hR(t)),e):new hR(t)}function Wi(t){var e;return _t(t,78)?t:(e=t&&t.__java$exception,e||(e=new Hre(t),aqt(e)),e)}function RD(t){if(_t(t,186))return u(t,118);if(t)return null;throw it(new Sx(Kde))}function ere(t,e){if(e==null)return!1;for(;t.a!=t.b;)if(yi(e,Mz(t)))return!0;return!1}function xyt(t){return t.a.Ob()?!0:t.a!=t.d?!1:(t.a=new emt(t.e.f),t.a.Ob())}function Ls(t,e){var n,r;return n=e.Pc(),r=n.length,r==0?!1:(Pwt(t.c,t.c.length,n),!0)}function yun(t,e,n){var r,s;for(s=e.vc().Kc();s.Ob();)r=u(s.Pb(),42),t.yc(r.cd(),r.dd(),n);return t}function nre(t,e){var n,r;for(r=new S(t.b);r.a=0,"Negative initial capacity"),Bj(e>=0,"Non-positive load factor"),Xu(this)}function Sit(t,e,n){return t>=128?!1:t<64?u9(Ns(F0(1,t),n),0):u9(Ns(F0(1,t-64),e),0)}function Lun(t,e){return!t||!e||t==e?!1:av(t.b.c,e.b.c+e.b.b)<0&&av(e.b.c,t.b.c+t.b.b)<0}function gre(t){var e,n,r;return n=t.n,r=t.o,e=t.d,new ah(n.a-e.b,n.b-e.d,r.a+(e.b+e.c),r.b+(e.d+e.a))}function Mun(t){var e,n,r,s;for(n=t.a,r=0,s=n.length;rr)throw it(new qm(e,r));return t.hi()&&(n=DQt(t,n)),t.Vh(e,n)}function zD(t,e,n){return n==null?(!t.q&&(t.q=new _r),Jx(t.q,e)):(!t.q&&(t.q=new _r),ki(t.q,e,n)),t}function Jt(t,e,n){return n==null?(!t.q&&(t.q=new _r),Jx(t.q,e)):(!t.q&&(t.q=new _r),ki(t.q,e,n)),t}function pre(t){var e,n;return n=new B$,Mo(n,t),Jt(n,(Yp(),I6),t),e=new _r,Pyn(t,n,e),a5n(t,n,e),n}function Oun(t){k4();var e,n,r;for(n=Nt(Ws,ee,8,2,0,1),r=0,e=0;e<2;e++)r+=.5,n[e]=g1n(r,t);return n}function bre(t,e){var n,r,s,o;for(n=!1,r=t.a[e].length,o=0;o>=1);return e}function vre(t){var e,n;return n=pI(t.h),n==32?(e=pI(t.m),e==32?pI(t.l)+32:e+20-10):n-12}function Q9(t){var e;return e=t.a[t.b],e==null?null:(ts(t.a,t.b,null),t.b=t.b+1&t.a.length-1,e)}function mre(t){var e,n;return e=t.t-t.k[t.o.p]*t.d+t.j[t.o.p]>t.f,n=t.u+t.e[t.o.p]*t.d>t.f*t.s*t.d,e||n}function _z(t,e,n){var r,s;return r=new Qrt(e,n),s=new zt,t.b=lue(t,t.b,r,s),s.b||++t.c,t.b.b=!1,s.d}function yre(t,e,n){var r,s,o,h;for(h=t_(e,n),o=0,s=h.Kc();s.Ob();)r=u(s.Pb(),11),ki(t.c,r,pe(o++))}function Xp(t){var e,n;for(n=new S(t.a.b);n.an&&(n=t[e]);return n}function xre(t,e,n){var r;return r=new he,R5t(t,e,r,(ve(),Hn),!0,!1),R5t(t,n,r,Bn,!1,!1),r}function Lit(t,e,n){var r,s,o,h;return o=null,h=e,s=Kw(h,"labels"),r=new zGt(t,n),o=(Zbn(r.a,r.b,s),s),o}function Fun(t,e,n,r){var s;return s=C5t(t,e,n,r),!s&&(s=Nln(t,n,r),s&&!C4(t,e,s))?null:s}function Nun(t,e,n,r){var s;return s=_5t(t,e,n,r),!s&&(s=Uit(t,n,r),s&&!C4(t,e,s))?null:s}function kre(t,e){var n;for(n=0;n1||e>=0&&t.b<3)}function qD(t){var e,n,r;for(e=new Pu,r=ei(t,0);r.b!=r.d.c;)n=u(ti(r),8),m8(e,0,new xo(n));return e}function g2(t){var e,n;for(n=new S(t.a.b);n.ar?1:0}function $yt(t,e){return Uce(t,e)?(ln(t.b,u(Q(e,(ae(),By)),21),e),ri(t.a,e),!0):!1}function Yun(t){var e,n;e=u(Q(t,(ae(),Ju)),10),e&&(n=e.c,mu(n.a,e),n.a.c.length==0&&mu(Na(e).b,n))}function Are(t){return $1?Nt(Zge,Mfe,572,0,0,1):u(P1(t.a,Nt(Zge,Mfe,572,t.a.c.length,0,1)),842)}function Kun(t,e,n,r){return c$(),new uet(lt(ct(P2,1),Hq,42,0,[(kst(t,e),new Lw(t,e)),(kst(n,r),new Lw(n,r))]))}function a4(t,e,n){var r,s;return s=(r=new iet,r),bo(s,e,n),Dr((!t.q&&(t.q=new fe(Wh,t,11,10)),t.q),s),s}function Oit(t){var e,n,r,s;for(s=xXe(Z4e,t),n=s.length,r=Nt(Ae,ee,2,n,6,1),e=0;e=t.b.c.length||(zyt(t,2*e+1),n=2*e+2,n=0&&t[r]===e[r];r--);return r<0?0:Cet(Ns(t[r],co),Ns(e[r],co))?-1:1}function Xun(t,e){var n,r;for(r=ei(t,0);r.b!=r.d.c;)n=u(ti(r),214),n.e.length>0&&(e.td(n),n.i&&Vln(n))}function Fit(t,e){var n,r;return r=u(Dn(t.a,4),126),n=Nt(Fft,lut,415,e,0,1),r!=null&&Dc(r,0,n,0,r.length),n}function Mre(t,e){var n;return n=new fat((t.f&256)!=0,t.i,t.a,t.d,(t.f&16)!=0,t.j,t.g,e),t.e!=null||(n.c=t),n}function Qun(t,e){var n,r;for(r=t.Zb().Cc().Kc();r.Ob();)if(n=u(r.Pb(),14),n.Hc(e))return!0;return!1}function Nit(t,e,n,r,s){var o,h;for(h=n;h<=s;h++)for(o=e;o<=r;o++)if(f4(t,o,h))return!0;return!1}function Dre(t,e,n){var r,s,o,h;for(On(n),h=!1,o=t.Zc(e),s=n.Kc();s.Ob();)r=s.Pb(),o.Rb(r),h=!0;return h}function Zun(t,e){var n;return t===e?!0:_t(e,83)?(n=u(e,83),H4t(Rw(t),n.vc())):!1}function Ire(t,e,n){var r,s;for(s=n.Kc();s.Ob();)if(r=u(s.Pb(),42),t.re(e,r.dd()))return!0;return!1}function Ore(t,e,n){return t.d[e.p][n.p]||(Yfn(t,e,n),t.d[e.p][n.p]=!0,t.d[n.p][e.p]=!0),t.a[e.p][n.p]}function sE(t,e){if(!t.ai()&&e==null)throw it(new Fn("The 'no null' constraint is violated"));return e}function aE(t,e){t.D==null&&t.B!=null&&(t.D=t.B,t.B=null),git(t,e==null?null:(On(e),e)),t.C&&t.yk(null)}function Jun(t,e){var n;return!t||t==e||!Us(e,(ae(),Pv))?!1:(n=u(Q(e,(ae(),Pv)),10),n!=t)}function Bit(t){switch(t.i){case 2:return!0;case 1:return!1;case-1:++t.c;default:return t.pl()}}function Pre(t){switch(t.i){case-2:return!0;case-1:return!1;case 1:--t.c;default:return t.ql()}}function Fre(t){TQt.call(this,"The given string does not match the expected format for individual spacings.",t)}function Sl(){Sl=Z,Ql=new uj("ELK",0),qAt=new uj("JSON",1),zAt=new uj("DOT",2),HAt=new uj("SVG",3)}function HD(){HD=Z,NG=new Yet(J0,0),k_t=new Yet("RADIAL_COMPACTION",1),E_t=new Yet("WEDGE_COMPACTION",2)}function O1(){O1=Z,BEt=new _et("CONCURRENT",0),Ul=new _et("IDENTITY_FINISH",1),Iy=new _et("UNORDERED",2)}function Rit(){Rit=Z,f7t=(jR(),Kut),h7t=new mn(o6t,f7t),Xpe=new Vi(c6t),Qpe=new Vi(u6t),Zpe=new Vi(l6t)}function oE(){oE=Z,CTt=new J5,_Tt=new ZK,l2e=new OL,u2e=new JK,c2e=new tX,TTt=(On(c2e),new gn)}function cE(){cE=Z,Aht=new Het("CONSERVATIVE",0),K9t=new Het("CONSERVATIVE_SOFT",1),PS=new Het("SLOPPY",2)}function Sz(){Sz=Z,MAt=new Ow(15),T4e=new eo((ui(),U2),MAt),QS=Y6,_At=o4e,SAt=G2,LAt=c5,AAt=XG}function jit(t,e,n){var r,s,o;for(r=new Zi,o=ei(n,0);o.b!=o.d.c;)s=u(ti(o),8),ri(r,new xo(s));Dre(t,e,r)}function tln(t){var e,n,r;for(e=0,r=Nt(Ws,ee,8,t.b,0,1),n=ei(t,0);n.b!=n.d.c;)r[e++]=u(ti(n),8);return r}function Hyt(t){var e;return e=(!t.a&&(t.a=new fe(ag,t,9,5)),t.a),e.i!=0?vXe(u(At(e,0),678)):null}function eln(t,e){var n;return n=Pa(t,e),Cet(Drt(t,e),0)|PXe(Drt(t,n),0)?n:Pa(qq,Drt(Vm(n,63),1))}function nln(t,e){var n;n=Ie((nst(),vG))!=null&&e.wg()!=null?Xt(ye(e.wg()))/Xt(ye(Ie(vG))):1,ki(t.b,e,n)}function rln(t,e){var n,r;return n=u(t.d.Bc(e),14),n?(r=t.e.hc(),r.Gc(n),t.e.d-=n.gc(),n.$b(),r):null}function Vyt(t,e){var n,r;if(r=t.c[e],r!=0)for(t.c[e]=0,t.d-=r,n=e+1;n0)return T8(e-1,t.a.c.length),Fg(t.a,e-1);throw it(new cqt)}function iln(t,e,n){if(e<0)throw it(new yo(sde+e));ee)throw it(new Fn(Wq+t+Dfe+e));if(t<0||e>n)throw it(new ibt(Wq+t+Yxt+e+Uxt+n))}function Rre(t){if(!t.a||!(t.a.i&8))throw it(new No("Enumeration class expected for layout option "+t.f))}function iy(t){var e;++t.j,t.i==0?t.g=null:t.ikH?t-n>kH:n-t>kH}function zit(t,e){return!t||e&&!t.j||_t(t,124)&&u(t,124).a.b==0?0:t.Re()}function Lz(t,e){return!t||e&&!t.k||_t(t,124)&&u(t,124).a.a==0?0:t.Se()}function VD(t){return rb(),t<0?t!=-1?new j3t(-1,-t):But:t<=10?CEt[ps(t)]:new j3t(1,t)}function Uyt(t){throw _it(),it(new eHt("Unexpected typeof result '"+t+"'; please report this bug to the GWT team"))}function Hre(t){oHt(),yj(this),d$(this),this.e=t,nue(this,t),this.g=t==null?_u:$o(t),this.a="",this.b=t,this.a=""}function Wyt(){this.a=new vZ,this.f=new X$t(this),this.b=new Q$t(this),this.i=new Z$t(this),this.e=new J$t(this)}function Vre(){dKe.call(this,new Mmt(ty(16))),jl(2,ffe),this.b=2,this.a=new Lvt(null,null,0,null),dM(this.a,this.a)}function Z9(){Z9=Z,vht=new jet("DUMMY_NODE_OVER",0),O9t=new jet("DUMMY_NODE_UNDER",1),yG=new jet("EQUAL",2)}function qit(){qit=Z,olt=_Qt(lt(ct(XS,1),oe,103,0,[(ao(),zh),Cf])),clt=_Qt(lt(ct(XS,1),oe,103,0,[rg,ng]))}function Hit(t){return(ve(),Au).Hc(t.j)?Xt(ye(Q(t,(ae(),k7)))):Yo(lt(ct(Ws,1),ee,8,0,[t.i.n,t.n,t.a])).b}function uln(t){var e,n,r,s;for(r=t.b.a,n=r.a.ec().Kc();n.Ob();)e=u(n.Pb(),561),s=new Nce(e,t.e,t.f),le(t.g,s)}function b2(t,e){var n,r,s;r=t.nk(e,null),s=null,e&&(s=(c8(),n=new xw,n),H8(s,t.r)),r=F1(t,s,r),r&&r.Fi()}function lln(t,e){var n,r;for(r=ul(t.d,1)!=0,n=!0;n;)n=!1,n=e.c.Tf(e.e,r),n=n|yI(t,e,r,!1),r=!r;hyt(t)}function Yyt(t,e){var n,r,s;return r=!1,n=e.q.d,e.ds&&(bae(e.q,s),r=n!=e.q.d)),r}function Gre(t,e){var n,r,s,o,h,d,v,k;return v=e.i,k=e.j,r=t.f,s=r.i,o=r.j,h=v-s,d=k-o,n=b.Math.sqrt(h*h+d*d),n}function Kyt(t,e){var n,r;return r=Hz(t),r||(n=(Fat(),woe(e)),r=new Jzt(n),Dr(r.Vk(),t)),r}function GD(t,e){var n,r;return n=u(t.c.Bc(e),14),n?(r=t.hc(),r.Gc(n),t.d-=n.gc(),n.$b(),t.mc(r)):t.jc()}function Ure(t,e){var n;for(n=0;n=t.c.b:t.a<=t.c.b))throw it(new lc);return e=t.a,t.a+=t.c.c,++t.b,pe(e)}function dln(t){var e;return e=new Cee(t),hD(t.a,Wbe,new yl(lt(ct(mO,1),De,369,0,[e]))),e.d&&le(e.f,e.d),e.f}function Vit(t){var e;return e=new b2t(t.a),Mo(e,t),Jt(e,(ae(),_i),t),e.o.a=t.g,e.o.b=t.f,e.n.a=t.i,e.n.b=t.j,e}function gln(t,e,n,r){var s,o;for(o=t.Kc();o.Ob();)s=u(o.Pb(),70),s.n.a=e.a+(r.a-s.o.a)/2,s.n.b=e.b,e.b+=s.o.b+n}function pln(t,e,n){var r,s;for(s=e.a.a.ec().Kc();s.Ob();)if(r=u(s.Pb(),57),sQt(t,r,n))return!0;return!1}function bln(t){var e,n;for(n=new S(t.r);n.a=0?e:-e;r>0;)r%2==0?(n*=n,r=r/2|0):(s*=n,r-=1);return e<0?1/s:s}function yln(t,e){var n,r,s;for(s=1,n=t,r=e>=0?e:-e;r>0;)r%2==0?(n*=n,r=r/2|0):(s*=n,r-=1);return e<0?1/s:s}function Jre(t){var e,n;if(t!=null)for(n=0;n0&&(n=u(Ne(t.a,t.a.c.length-1),570),$yt(n,e))||le(t.a,new IJt(e))}function Cln(t){df();var e,n;e=t.d.c-t.e.c,n=u(t.g,145),xu(n.b,new AC(e)),xu(n.c,new Yb(e)),va(n.i,new dR(e))}function rie(t){var e;return e=new Mp,e.a+="VerticalSegment ",hc(e,t.e),e.a+=" ",Gr(e,_2t(new vet,new S(t.k))),e.a}function _ln(t){var e;return e=u(Xw(t.c.c,""),229),e||(e=new Yx(o8(a8(new xm,""),"Other")),m2(t.c.c,"",e)),e}function J9(t){var e;return t.Db&64?mf(t):(e=new _h(mf(t)),e.a+=" (name: ",go(e,t.zb),e.a+=")",e.a)}function t3t(t,e,n){var r,s;return s=t.sb,t.sb=e,t.Db&4&&!(t.Db&1)&&(r=new Js(t,1,4,s,e),n?n.Ei(r):n=r),n}function Git(t,e){var n,r,s;for(n=0,s=Ko(t,e).Kc();s.Ob();)r=u(s.Pb(),11),n+=Q(r,(ae(),Ju))!=null?1:0;return n}function c4(t,e,n){var r,s,o;for(r=0,o=ei(t,0);o.b!=o.d.c&&(s=Xt(ye(ti(o))),!(s>n));)s>=e&&++r;return r}function Sln(t,e,n){var r,s;return r=new z0(t.e,3,13,null,(s=e.c,s||(dn(),W1)),Hg(t,e),!1),n?n.Ei(r):n=r,n}function Aln(t,e,n){var r,s;return r=new z0(t.e,4,13,(s=e.c,s||(dn(),W1)),null,Hg(t,e),!1),n?n.Ei(r):n=r,n}function e3t(t,e,n){var r,s;return s=t.r,t.r=e,t.Db&4&&!(t.Db&1)&&(r=new Js(t,1,8,s,t.r),n?n.Ei(r):n=r),n}function $g(t,e){var n,r;return n=u(e,676),r=n.vk(),!r&&n.wk(r=_t(e,88)?new JGt(t,u(e,26)):new yZt(t,u(e,148))),r}function UD(t,e,n){var r;t.qi(t.i+1),r=t.oi(e,n),e!=t.i&&Dc(t.g,e,t.g,e+1,t.i-e),ts(t.g,e,r),++t.i,t.bi(e,n),t.ci()}function Lln(t,e){var n;return e.a&&(n=e.a.a.length,t.a?Gr(t.a,t.b):t.a=new Ol(t.d),kZt(t.a,e.a,e.d.length,n)),t}function Mln(t,e){var n,r,s,o;if(e.vi(t.a),o=u(Dn(t.a,8),1936),o!=null)for(n=o,r=0,s=n.length;rn)throw it(new yo(Wq+t+Yxt+e+", size: "+n));if(t>e)throw it(new Fn(Wq+t+Dfe+e))}function fh(t,e,n){if(e<0)i5t(t,n);else{if(!n.Ij())throw it(new Fn(lb+n.ne()+X_));u(n,66).Nj().Vj(t,t.yh(),e)}}function Oln(t,e,n,r,s,o,h,d){var v;for(v=n;o=r||e=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t>=48&&t<=57?t-48:0}function lie(t){var e;return t.Db&64?mf(t):(e=new _h(mf(t)),e.a+=" (source: ",go(e,t.d),e.a+=")",e.a)}function Fln(t,e,n){var r,s;return s=t.a,t.a=e,t.Db&4&&!(t.Db&1)&&(r=new Js(t,1,5,s,t.a),n?T4t(n,r):n=r),n}function zg(t,e){var n;n=(t.Bb&256)!=0,e?t.Bb|=256:t.Bb&=-257,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,2,n,e))}function r3t(t,e){var n;n=(t.Bb&256)!=0,e?t.Bb|=256:t.Bb&=-257,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,8,n,e))}function Iz(t,e){var n;n=(t.Bb&256)!=0,e?t.Bb|=256:t.Bb&=-257,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,8,n,e))}function qg(t,e){var n;n=(t.Bb&512)!=0,e?t.Bb|=512:t.Bb&=-513,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,3,n,e))}function i3t(t,e){var n;n=(t.Bb&512)!=0,e?t.Bb|=512:t.Bb&=-513,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,9,n,e))}function e_(t,e){var n;return t.b==-1&&t.a&&(n=t.a.Gj(),t.b=n?t.c.Xg(t.a.aj(),n):Gi(t.c.Tg(),t.a)),t.c.Og(t.b,e)}function pe(t){var e,n;return t>-129&&t<128?(e=t+128,n=(cKt(),fEt)[e],!n&&(n=fEt[e]=new uM(t)),n):new uM(t)}function uE(t){var e,n;return t>-129&&t<128?(e=t+128,n=(gKt(),bEt)[e],!n&&(n=bEt[e]=new fR(t)),n):new fR(t)}function s3t(t){var e,n;return e=t.k,e==(Vn(),ks)?(n=u(Q(t,(ae(),oc)),61),n==(ve(),Pn)||n==mr):!1}function Nln(t,e,n){var r,s,o;return o=(s=_E(t.b,e),s),o&&(r=u(Pq(TD(t,o),""),26),r)?C5t(t,r,e,n):null}function Uit(t,e,n){var r,s,o;return o=(s=_E(t.b,e),s),o&&(r=u(Pq(TD(t,o),""),26),r)?_5t(t,r,e,n):null}function hie(t,e){var n,r;for(r=new nr(t);r.e!=r.i.gc();)if(n=u(dr(r),138),Vt(e)===Vt(n))return!0;return!1}function n_(t,e,n){var r;if(r=t.gc(),e>r)throw it(new qm(e,r));if(t.hi()&&t.Hc(n))throw it(new Fn(eO));t.Xh(e,n)}function Bln(t,e){var n;if(n=n4(t.i,e),n==null)throw it(new ud("Node did not exist in input."));return byt(e,n),null}function Rln(t,e){var n;if(n=mI(t,e),_t(n,322))return u(n,34);throw it(new Fn(lb+e+"' is not a valid attribute"))}function jln(t,e,n){var r,s;for(s=_t(e,99)&&u(e,18).Bb&Ka?new rnt(e,t):new tE(e,t),r=0;re?1:t==e?t==0?Ms(1/t,1/e):0:isNaN(t)?isNaN(e)?0:1:-1}function Yln(t,e){vr(e,"Sort end labels",1),ls(Ri(Wo(new Tn(null,new _n(t.b,16)),new cN),new K5),new AK),or(e)}function r_(t,e,n){var r,s;return t.ej()?(s=t.fj(),r=Jst(t,e,n),t.$i(t.Zi(7,pe(n),r,e,s)),r):Jst(t,e,n)}function Wit(t,e){var n,r,s;t.d==null?(++t.e,--t.f):(s=e.cd(),n=e.Sh(),r=(n&wi)%t.d.length,Dan(t,r,Lce(t,r,n,s)))}function lE(t,e){var n;n=(t.Bb&xf)!=0,e?t.Bb|=xf:t.Bb&=-1025,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,10,n,e))}function hE(t,e){var n;n=(t.Bb&Ey)!=0,e?t.Bb|=Ey:t.Bb&=-4097,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,12,n,e))}function fE(t,e){var n;n=(t.Bb&Hu)!=0,e?t.Bb|=Hu:t.Bb&=-8193,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,15,n,e))}function dE(t,e){var n;n=(t.Bb&Dy)!=0,e?t.Bb|=Dy:t.Bb&=-2049,t.Db&4&&!(t.Db&1)&&mi(t,new bf(t,1,11,n,e))}function Kln(t,e){var n;return n=Ms(t.b.c,e.b.c),n!=0||(n=Ms(t.a.a,e.a.a),n!=0)?n:Ms(t.a.b,e.a.b)}function Xln(t,e){var n;if(n=tr(t.k,e),n==null)throw it(new ud("Port did not exist in input."));return byt(e,n),null}function Qln(t){var e,n;for(n=Pce(Rl(t)).Kc();n.Ob();)if(e=Br(n.Pb()),k_(t,e))return san((HVt(),l5e),e);return null}function Zln(t,e){var n,r,s,o,h;for(h=ou(t.e.Tg(),e),o=0,n=u(t.g,119),s=0;s>10)+RI&ys,e[1]=(t&1023)+56320&ys,Mh(e,0,e.length)}function Pz(t){var e,n;return n=u(Q(t,(Te(),Wl)),103),n==(ao(),h0)?(e=Xt(ye(Q(t,rG))),e>=1?Cf:ng):n}function ehn(t){switch(u(Q(t,(Te(),eg)),218).g){case 1:return new YX;case 3:return new JX;default:return new WX}}function w2(t){if(t.c)w2(t.c);else if(t.d)throw it(new No("Stream already terminated, can't be modified or used"))}function Xit(t){var e;return t.Db&64?mf(t):(e=new _h(mf(t)),e.a+=" (identifier: ",go(e,t.k),e.a+=")",e.a)}function pie(t,e,n){var r,s;return r=(Sw(),s=new xp,s),iz(r,e),sz(r,n),t&&Dr((!t.a&&(t.a=new As(Gh,t,5)),t.a),r),r}function Qit(t,e,n,r){var s,o;return On(r),On(n),s=t.xc(e),o=s==null?n:MVt(u(s,15),u(n,14)),o==null?t.Bc(e):t.zc(e,o),o}function un(t){var e,n,r,s;return n=(e=u(Vf((r=t.gm,s=r.f,s==Hr?r:s)),9),new sh(e,u(ff(e,e.length),9),0)),vf(n,t),n}function nhn(t,e,n){var r,s;for(s=t.a.ec().Kc();s.Ob();)if(r=u(s.Pb(),10),ND(n,u(Ne(e,r.p),14)))return r;return null}function rhn(t,e,n){var r;try{Bun(t,e,n)}catch(s){throw s=Wi(s),_t(s,597)?(r=s,it(new dmt(r))):it(s)}return e}function Jp(t,e){var n;return Bo(t)&&Bo(e)&&(n=t-e,BI>1,t.k=n-1>>1}function Zit(){M4t();var t,e,n;n=Jxn+++Date.now(),t=ps(b.Math.floor(n*$I))&Uq,e=ps(n-t*Gxt),this.a=t^1502,this.b=e^Eot}function U0(t){var e,n,r;for(e=new he,r=new S(t.j);r.a34028234663852886e22?as:e<-34028234663852886e22?Cs:e}function bie(t){return t-=t>>1&1431655765,t=(t>>2&858993459)+(t&858993459),t=(t>>4)+t&252645135,t+=t>>8,t+=t>>16,t&63}function wie(t){var e,n,r,s;for(e=new QWt(t.Hd().gc()),s=0,r=e6(t.Hd().Kc());r.Ob();)n=r.Pb(),vin(e,n,pe(s++));return Hgn(e.a)}function uhn(t,e){var n,r,s;for(s=new _r,r=e.vc().Kc();r.Ob();)n=u(r.Pb(),42),ki(s,n.cd(),tun(t,u(n.dd(),15)));return s}function h3t(t,e){t.n.c.length==0&&le(t.n,new E$(t.s,t.t,t.i)),le(t.b,e),W3t(u(Ne(t.n,t.n.c.length-1),211),e),Sle(t,e)}function u4(t){return(t.c!=t.b.b||t.i!=t.g.b)&&(t.a.c=Nt(Qn,De,1,0,5,1),Ls(t.a,t.b),Ls(t.a,t.g),t.c=t.b.b,t.i=t.g.b),t.a}function Jit(t,e){var n,r,s;for(s=0,r=u(e.Kb(t),20).Kc();r.Ob();)n=u(r.Pb(),17),je(Re(Q(n,(ae(),q1))))||++s;return s}function lhn(t,e){var n,r,s;r=t4(e),s=Xt(ye(oy(r,(Te(),Tf)))),n=b.Math.max(0,s/2-.5),h_(e,n,1),le(t,new uGt(e,n))}function dh(){dh=Z,MO=new MM(J0,0),ES=new MM("FIRST",1),bb=new MM(C1e,2),TS=new MM("LAST",3),jy=new MM(_1e,4)}function W0(){W0=Z,Cft=new sj(N_,0),eP=new sj("POLYLINE",1),N7=new sj("ORTHOGONAL",2),X6=new sj("SPLINES",3)}function Fz(){Fz=Z,z_t=new Xet("ASPECT_RATIO_DRIVEN",0),Qht=new Xet("MAX_SCALE_DRIVEN",1),$_t=new Xet("AREA_DRIVEN",2)}function KD(){KD=Z,jG=new Qet("P1_STRUCTURE",0),$G=new Qet("P2_PROCESSING_ORDER",1),zG=new Qet("P3_EXECUTION",2)}function Nz(){Nz=Z,Ght=new Wet("OVERLAP_REMOVAL",0),Hht=new Wet("COMPACTION",1),Vht=new Wet("GRAPH_SIZE_CALCULATION",2)}function av(t,e){return k1(),wf(sb),b.Math.abs(t-e)<=sb||t==e||isNaN(t)&&isNaN(e)?0:te?1:Iw(isNaN(t),isNaN(e))}function vie(t,e){var n,r;for(n=ei(t,0);n.b!=n.d.c;){if(r=pM(ye(ti(n))),r==e)return;if(r>e){Ort(n);break}}eD(n,e)}function an(t,e){var n,r,s,o,h;if(n=e.f,m2(t.c.d,n,e),e.g!=null)for(s=e.g,o=0,h=s.length;oe&&r.ue(t[o-1],t[o])>0;--o)h=t[o],ts(t,o,t[o-1]),ts(t,o-1,h)}function gh(t,e,n,r){if(e<0)M5t(t,n,r);else{if(!n.Ij())throw it(new Fn(lb+n.ne()+X_));u(n,66).Nj().Tj(t,t.yh(),e,r)}}function Bz(t,e){if(e==t.d)return t.e;if(e==t.e)return t.d;throw it(new Fn("Node "+e+" not part of edge "+t))}function fhn(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function mie(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function f3t(t,e,n,r){switch(e){case 3:return t.f;case 4:return t.g;case 5:return t.i;case 6:return t.j}return n3t(t,e,n,r)}function dhn(t){return t.k!=(Vn(),Os)?!1:N8(new Tn(null,new jw(new ar(lr(Ds(t).a.Kc(),new z)))),new $N)}function ghn(t){return t.e==null?t:(!t.c&&(t.c=new fat((t.f&256)!=0,t.i,t.a,t.d,(t.f&16)!=0,t.j,t.g,null)),t.c)}function phn(t,e){return t.h==NI&&t.m==0&&t.l==0?(e&&(hb=iu(0,0,0)),yUt((q8(),aEt))):(e&&(hb=iu(t.l,t.m,t.h)),iu(0,0,0))}function $o(t){var e;return Array.isArray(t)&&t.im===Et?Ip(ol(t))+"@"+(e=Hi(t)>>>0,e.toString(16)):t.toString()}function i_(t){var e;this.a=(e=u(t.e&&t.e(),9),new sh(e,u(ff(e,e.length),9),0)),this.b=Nt(Qn,De,1,this.a.a.length,5,1)}function bhn(t){var e,n,r;for(this.a=new O0,r=new S(t);r.a0&&(Rr(e-1,t.length),t.charCodeAt(e-1)==58)&&!tst(t,oA,cA))}function tst(t,e,n){var r,s;for(r=0,s=t.length;r=s)return e.c+n;return e.c+e.b.gc()}function xhn(t,e){y8();var n,r,s,o;for(r=Ote(t),s=e,$8(r,0,r.length,s),n=0;n0&&(r+=s,++n);return n>1&&(r+=t.d*(n-1)),r}function g3t(t){var e,n,r;for(r=new Ag,r.a+="[",e=0,n=t.gc();e0&&this.b>0&&Kwt(this.c,this.b,this.a)}function w3t(t){nst(),this.c=A1(lt(ct(w6n,1),De,831,0,[eme])),this.b=new _r,this.a=t,ki(this.b,vG,1),xu(nme,new czt(this))}function yie(t,e){var n;return t.d?Tl(t.b,e)?u(tr(t.b,e),51):(n=e.Kf(),ki(t.b,e,n),n):e.Kf()}function v3t(t,e){var n;return Vt(t)===Vt(e)?!0:_t(e,91)?(n=u(e,91),t.e==n.e&&t.d==n.d&&oan(t,n.a)):!1}function a6(t){switch(ve(),t.g){case 4:return Pn;case 1:return Hn;case 3:return mr;case 2:return Bn;default:return Zo}}function m3t(t,e){switch(e){case 3:return t.f!=0;case 4:return t.g!=0;case 5:return t.i!=0;case 6:return t.j!=0}return vyt(t,e)}function Shn(t){switch(t.g){case 0:return new gZ;case 1:return new tB;default:throw it(new Fn(Ict+(t.f!=null?t.f:""+t.g)))}}function xie(t){switch(t.g){case 0:return new JN;case 1:return new eB;default:throw it(new Fn(Yot+(t.f!=null?t.f:""+t.g)))}}function kie(t){switch(t.g){case 0:return new Qpt;case 1:return new Oqt;default:throw it(new Fn(_H+(t.f!=null?t.f:""+t.g)))}}function Ahn(t){switch(t.g){case 1:return new uZ;case 2:return new jWt;default:throw it(new Fn(Ict+(t.f!=null?t.f:""+t.g)))}}function Lhn(t){var e,n;if(t.b)return t.b;for(n=$1?null:t.d;n;){if(e=$1?null:n.b,e)return e;n=$1?null:n.d}return d8(),NEt}function Mhn(t){var e,n,r;return t.e==0?0:(e=t.d<<5,n=t.a[t.d-1],t.e<0&&(r=Ine(t),r==t.d-1&&(--n,n=n|0)),e-=pI(n),e)}function Dhn(t){var e,n,r;return t>5,e=t&31,r=Nt(Cr,Xr,25,n+1,15,1),r[n]=1<3;)s*=10,--o;t=(t+(s>>1))/s|0}return r.i=t,!0}function Ohn(t){return qit(),Nn(),!!(mie(u(t.a,81).j,u(t.b,103))||u(t.a,81).d.e!=0&&mie(u(t.a,81).j,u(t.b,103)))}function Phn(t){V$(),u(t.We((ui(),xb)),174).Hc((ll(),iU))&&(u(t.We(Qy),174).Fc((Zu(),Q6)),u(t.We(xb),174).Mc(iU))}function Tie(t,e){var n,r;if(e){for(n=0;n=0;--r)for(e=n[r],s=0;s>1,this.k=e-1>>1}function $hn(t,e){vr(e,"End label post-processing",1),ls(Ri(Wo(new Tn(null,new _n(t.b,16)),new kK),new EK),new TK),or(e)}function zhn(t,e,n){var r,s;return r=Xt(t.p[e.i.p])+Xt(t.d[e.i.p])+e.n.b+e.a.b,s=Xt(t.p[n.i.p])+Xt(t.d[n.i.p])+n.n.b+n.a.b,s-r}function qhn(t,e,n){var r,s;for(r=Ns(n,co),s=0;yc(r,0)!=0&&s0&&(Rr(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function Vhn(t){var e;return t==null?null:new Rp((e=$c(t,!0),e.length>0&&(Rr(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function _3t(t,e){var n;return t.i>0&&(e.lengtht.i&&ts(e,t.i,null),e}function Zc(t,e,n){var r,s,o;return t.ej()?(r=t.i,o=t.fj(),UD(t,r,e),s=t.Zi(3,null,e,r,o),n?n.Ei(s):n=s):UD(t,t.i,e),n}function Ghn(t,e,n){var r,s;return r=new z0(t.e,4,10,(s=e.c,_t(s,88)?u(s,26):(dn(),Kh)),null,Hg(t,e),!1),n?n.Ei(r):n=r,n}function Uhn(t,e,n){var r,s;return r=new z0(t.e,3,10,null,(s=e.c,_t(s,88)?u(s,26):(dn(),Kh)),Hg(t,e),!1),n?n.Ei(r):n=r,n}function Sie(t){$m();var e;return e=new xo(u(t.e.We((ui(),c5)),8)),t.B.Hc((ll(),R7))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function Aie(t){cy();var e;return(t.q?t.q:(wn(),wn(),u0))._b((Te(),Bv))?e=u(Q(t,Bv),197):e=u(Q(Na(t),AS),197),e}function oy(t,e){var n,r;return r=null,Us(t,(Te(),bG))&&(n=u(Q(t,bG),94),n.Xe(e)&&(r=n.We(e))),r==null&&(r=Q(Na(t),e)),r}function Lie(t,e){var n,r,s;return _t(e,42)?(n=u(e,42),r=n.cd(),s=sy(t.Rc(),r),pd(s,n.dd())&&(s!=null||t.Rc()._b(r))):!1}function ist(t,e){var n,r,s;return t.f>0?(t.qj(),r=e==null?0:Hi(e),s=(r&wi)%t.d.length,n=Lce(t,s,r,e),n!=-1):!1}function Xf(t,e){var n,r,s;return t.f>0&&(t.qj(),r=e==null?0:Hi(e),s=(r&wi)%t.d.length,n=l5t(t,s,r,e),n)?n.dd():null}function XD(t,e){var n,r,s,o;for(o=ou(t.e.Tg(),e),n=u(t.g,119),s=0;s1?S1(F0(e.a[1],32),Ns(e.a[0],co)):Ns(e.a[0],co),Yw(_a(e.e,n))))}function QD(t,e){var n;return Bo(t)&&Bo(e)&&(n=t%e,BI>5,e&=31,s=t.d+n+(e==0?0:1),r=Nt(Cr,Xr,25,s,15,1),W0n(r,t.a,n,e),o=new X3(t.e,s,r),N9(o),o}function A3t(t,e,n){var r,s;r=u(Nc(z7,e),117),s=u(Nc(gA,e),117),n?(ko(z7,t,r),ko(gA,t,s)):(ko(gA,t,r),ko(z7,t,s))}function Nie(t,e,n){var r,s,o;for(s=null,o=t.b;o;){if(r=t.a.ue(e,o.d),n&&r==0)return o;r>=0?o=o.a[1]:(s=o,o=o.a[0])}return s}function Bie(t,e,n){var r,s,o;for(s=null,o=t.b;o;){if(r=t.a.ue(e,o.d),n&&r==0)return o;r<=0?o=o.a[0]:(s=o,o=o.a[1])}return s}function Qhn(t,e,n,r){var s,o,h;return s=!1,I4n(t.f,n,r)&&(kfn(t.f,t.a[e][n],t.a[e][r]),o=t.a[e],h=o[r],o[r]=o[n],o[n]=h,s=!0),s}function L3t(t,e,n,r,s){var o,h,d;for(h=s;e.b!=e.c;)o=u(Hx(e),10),d=u(Ko(o,r).Xb(0),11),t.d[d.p]=h++,n.c[n.c.length]=d;return h}function M3t(t,e,n){var r,s,o,h,d;return h=t.k,d=e.k,r=n[h.g][d.g],s=ye(oy(t,r)),o=ye(oy(e,r)),b.Math.max((On(s),s),(On(o),o))}function Zhn(t,e,n){var r,s,o,h;for(r=n/t.c.length,s=0,h=new S(t);h.a2e3&&(Pge=t,JH=b.setTimeout(sXe,10))),ZH++==0?(Oon((nbt(),rEt)),!0):!1}function tfn(t,e){var n,r,s;for(r=new ar(lr(Ds(t).a.Kc(),new z));zr(r);)if(n=u(Mr(r),17),s=n.d.i,s.c==e)return!1;return!0}function D3t(t,e){var n,r;if(_t(e,245)){r=u(e,245);try{return n=t.vd(r),n==0}catch(s){if(s=Wi(s),!_t(s,205))throw it(s)}}return!1}function efn(){return Error.stackTraceLimit>0?(b.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function nfn(t,e){return k1(),k1(),wf(sb),(b.Math.abs(t-e)<=sb||t==e||isNaN(t)&&isNaN(e)?0:te?1:Iw(isNaN(t),isNaN(e)))>0}function I3t(t,e){return k1(),k1(),wf(sb),(b.Math.abs(t-e)<=sb||t==e||isNaN(t)&&isNaN(e)?0:te?1:Iw(isNaN(t),isNaN(e)))<0}function $ie(t,e){return k1(),k1(),wf(sb),(b.Math.abs(t-e)<=sb||t==e||isNaN(t)&&isNaN(e)?0:te?1:Iw(isNaN(t),isNaN(e)))<=0}function ast(t,e){for(var n=0;!e[n]||e[n]=="";)n++;for(var r=e[n++];nvot)return n.fh();if(r=n.Zg(),r||n==t)break}return r}function O3t(t){return C$(),_t(t,156)?u(tr(dP,Uge),288).vg(t):Tl(dP,ol(t))?u(tr(dP,ol(t)),288).vg(t):null}function ifn(t){if(Vz(XE,t))return Nn(),r7;if(Vz(Vct,t))return Nn(),F2;throw it(new Fn("Expecting true or false"))}function sfn(t,e){if(e.c==t)return e.d;if(e.d==t)return e.c;throw it(new Fn("Input edge is not connected to the input port."))}function Uie(t,e){return t.e>e.e?1:t.ee.d?t.e:t.d=48&&t<48+b.Math.min(10,10)?t-48:t>=97&&t<97?t-97+10:t>=65&&t<65?t-65+10:-1}function Yie(t,e){var n;return Vt(e)===Vt(t)?!0:!_t(e,21)||(n=u(e,21),n.gc()!=t.gc())?!1:t.Ic(n)}function afn(t,e){var n,r,s,o;return r=t.a.length-1,n=e-t.b&r,o=t.c-e&r,s=t.c-t.b&r,TWt(n=o?(sln(t,e),-1):(aln(t,e),1)}function ofn(t,e){var n,r;for(n=(Rr(e,t.length),t.charCodeAt(e)),r=e+1;re.e?1:t.fe.f?1:Hi(t)-Hi(e)}function Vz(t,e){return On(t),e==null?!1:hn(t,e)?!0:t.length==e.length&&hn(t.toLowerCase(),e.toLowerCase())}function bfn(t,e){var n,r,s,o;for(r=0,s=e.gc();r0&&yc(t,128)<0?(e=Ar(t)+128,n=(dKt(),dEt)[e],!n&&(n=dEt[e]=new Am(t)),n):new Am(t)}function Xie(t,e){var n,r;return n=e.Hh(t.a),n&&(r=Br(Xf((!n.b&&(n.b=new kl((dn(),Qa),cc,n)),n.b),ci)),r!=null)?r:e.ne()}function wfn(t,e){var n,r;return n=e.Hh(t.a),n&&(r=Br(Xf((!n.b&&(n.b=new kl((dn(),Qa),cc,n)),n.b),ci)),r!=null)?r:e.ne()}function vfn(t,e){_rt();var n,r;for(r=new ar(lr(U0(t).a.Kc(),new z));zr(r);)if(n=u(Mr(r),17),n.d.i==e||n.c.i==e)return n;return null}function N3t(t,e,n){this.c=t,this.f=new he,this.e=new Ca,this.j=new Gwt,this.n=new Gwt,this.b=e,this.g=new ah(e.c,e.d,e.b,e.a),this.a=n}function ost(t){var e,n,r,s;for(this.a=new O0,this.d=new Hs,this.e=0,n=t,r=0,s=n.length;r0):!1}function Jie(t){var e;Vt(qe(t,(ui(),s5)))===Vt((G0(),tU))&&(es(t)?(e=u(qe(es(t),s5),334),wo(t,s5,e)):wo(t,s5,ZS))}function kfn(t,e,n){var r,s;qst(t.e,e,n,(ve(),Bn)),qst(t.i,e,n,Hn),t.a&&(s=u(Q(e,(ae(),_i)),11),r=u(Q(n,_i),11),Irt(t.g,s,r))}function tse(t,e,n){var r,s,o;r=e.c.p,o=e.p,t.b[r][o]=new wQt(t,e),n&&(t.a[r][o]=new e8(e),s=u(Q(e,(ae(),Pv)),10),s&&ln(t.d,s,e))}function ese(t,e){var n,r,s;if(le(dV,t),e.Fc(t),n=u(tr(Jut,t),21),n)for(s=n.Kc();s.Ob();)r=u(s.Pb(),33),Ro(dV,r,0)!=-1||ese(r,e)}function Efn(t,e,n){var r;(Jge?(Lhn(t),!0):tpe||npe?(d8(),!0):epe&&(d8(),!1))&&(r=new LYt(e),r.b=n,_gn(t,r))}function cst(t,e){var n;n=!t.A.Hc((Al(),K2))||t.q==(ua(),Gc),t.u.Hc((Zu(),sg))?n?G5n(t,e):Dhe(t,e):t.u.Hc(Cb)&&(n?l5n(t,e):Ghe(t,e))}function bE(t,e){var n,r;if(++t.j,e!=null&&(n=(r=t.a.Cb,_t(r,97)?u(r,97).Jg():null),vbn(e,n))){o6(t.a,4,n);return}o6(t.a,4,u(e,126))}function nse(t,e,n){return new ah(b.Math.min(t.a,e.a)-n/2,b.Math.min(t.b,e.b)-n/2,b.Math.abs(t.a-e.a)+n,b.Math.abs(t.b-e.b)+n)}function Tfn(t,e){var n,r;return n=pu(t.a.c.p,e.a.c.p),n!=0?n:(r=pu(t.a.d.i.p,e.a.d.i.p),r!=0?r:pu(e.a.d.p,t.a.d.p))}function Cfn(t,e,n){var r,s,o,h;return o=e.j,h=n.j,o!=h?o.g-h.g:(r=t.f[e.p],s=t.f[n.p],r==0&&s==0?0:r==0?-1:s==0?1:Ms(r,s))}function rse(t,e,n){var r,s,o;if(!n[e.d])for(n[e.d]=!0,s=new S(u4(e));s.a=s)return s;for(e=e>0?e:0;er&&ts(e,r,null),e}function sse(t,e){var n,r;for(r=t.a.length,e.lengthr&&ts(e,r,null),e}function m2(t,e,n){var r,s,o;return s=u(tr(t.e,e),387),s?(o=awt(s,n),XUt(t,s),o):(r=new Owt(t,e,n),ki(t.e,e,r),kQt(r),null)}function Afn(t){var e;if(t==null)return null;if(e=k2n($c(t,!0)),e==null)throw it(new pet("Invalid hexBinary value: '"+t+"'"));return e}function JD(t){return rb(),yc(t,0)<0?yc(t,-1)!=0?new x4t(-1,z8(t)):But:yc(t,10)<=0?CEt[Ar(t)]:new x4t(1,t)}function lst(){return $q(),lt(ct($pe,1),oe,159,0,[Rpe,Bpe,jpe,Lpe,Ape,Mpe,Ope,Ipe,Dpe,Npe,Fpe,Ppe,_pe,Cpe,Spe,Epe,kpe,Tpe,ype,mpe,xpe,Uut])}function ase(t){var e;this.d=new he,this.j=new Ca,this.g=new Ca,e=t.g.b,this.f=u(Q(Na(e),(Te(),Wl)),103),this.e=Xt(ye(Wz(e,Wy)))}function ose(t){this.b=new he,this.e=new he,this.d=t,this.a=!qC(Ri(new Tn(null,new jw(new L1(t.b))),new Zt(new zN))).sd((Qb(),o7))}function Qf(){Qf=Z,qn=new OM("PARENTS",0),ea=new OM("NODES",1),Pd=new OM("EDGES",2),V2=new OM("PORTS",3),rp=new OM("LABELS",4)}function l4(){l4=Z,Eb=new FM("DISTRIBUTED",0),iP=new FM("JUSTIFIED",1),IAt=new FM("BEGIN",2),JS=new FM(qE,3),OAt=new FM("END",4)}function Lfn(t){var e;switch(e=t.yi(null),e){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return-1}function hst(t){switch(t.g){case 1:return ao(),rg;case 4:return ao(),zh;case 2:return ao(),Cf;case 3:return ao(),ng}return ao(),h0}function Mfn(t,e,n){var r;switch(r=n.q.getFullYear()-ab+ab,r<0&&(r=-r),e){case 1:t.a+=r;break;case 2:Jd(t,r%100,2);break;default:Jd(t,r,e)}}function ei(t,e){var n,r;if(Km(e,t.b),e>=t.b>>1)for(r=t.c,n=t.b;n>e;--n)r=r.b;else for(r=t.a.a,n=0;n=64&&e<128&&(s=S1(s,F0(1,e-64)));return s}function Wz(t,e){var n,r;return r=null,Us(t,(ui(),K6))&&(n=u(Q(t,K6),94),n.Xe(e)&&(r=n.We(e))),r==null&&Na(t)&&(r=Q(Na(t),e)),r}function lse(t,e){var n,r,s;s=e.d.i,r=s.k,!(r==(Vn(),Os)||r==z1)&&(n=new ar(lr(Ds(s).a.Kc(),new z)),zr(n)&&ki(t.k,e,u(Mr(n),17)))}function fst(t,e){var n,r,s;return r=yn(t.Tg(),e),n=e-t.Ah(),n<0?(s=t.Yg(r),s>=0?t.lh(s):Zst(t,r)):n<0?Zst(t,r):u(r,66).Nj().Sj(t,t.yh(),n)}function Ie(t){var e;if(_t(t.a,4)){if(e=O3t(t.a),e==null)throw it(new No(ode+t.b+"'. "+ade+(P0(gP),gP.k)+d8t));return e}else return t.a}function Ofn(t){var e;if(t==null)return null;if(e=J5n($c(t,!0)),e==null)throw it(new pet("Invalid base64Binary value: '"+t+"'"));return e}function dr(t){var e;try{return e=t.i.Xb(t.e),t.mj(),t.g=t.e++,e}catch(n){throw n=Wi(n),_t(n,73)?(t.mj(),it(new lc)):it(n)}}function dst(t){var e;try{return e=t.c.ki(t.e),t.mj(),t.g=t.e++,e}catch(n){throw n=Wi(n),_t(n,73)?(t.mj(),it(new lc)):it(n)}}function o_(){o_=Z,p7t=(ui(),hAt),Qut=HSt,Jpe=W6,g7t=U2,rbe=(sq(),WEt),nbe=GEt,ibe=KEt,ebe=VEt,tbe=(Rit(),h7t),Xut=Xpe,d7t=Qpe,fV=Zpe}function Yz(t){switch(kbt(),this.c=new he,this.d=t,t.g){case 0:case 2:this.a=Mvt(O7t),this.b=as;break;case 3:case 1:this.a=O7t,this.b=Cs}}function hse(t,e,n){var r,s;if(t.c)ku(t.c,t.c.i+e),Eu(t.c,t.c.j+n);else for(s=new S(t.b);s.a0&&(le(t.b,new GYt(e.a,n)),r=e.a.length,0r&&(e.a+=KUt(Nt(xh,yd,25,-r,15,1))))}function fse(t,e){var n,r,s;for(n=t.o,s=u(u(Ai(t.r,e),21),84).Kc();s.Ob();)r=u(s.Pb(),111),r.e.a=N1n(r,n.a),r.e.b=n.b*Xt(ye(r.b.We(uV)))}function Ffn(t,e){var n,r,s,o;return s=t.k,n=Xt(ye(Q(t,(ae(),Fv)))),o=e.k,r=Xt(ye(Q(e,Fv))),o!=(Vn(),ks)?-1:s!=ks?1:n==r?0:n=0?t.hh(e,n,r):(t.eh()&&(r=(s=t.Vg(),s>=0?t.Qg(r):t.eh().ih(t,-1-s,null,r))),t.Sg(e,n,r))}function R3t(t,e){switch(e){case 7:!t.e&&(t.e=new Cn(Ys,t,7,4)),xr(t.e);return;case 8:!t.d&&(t.d=new Cn(Ys,t,8,5)),xr(t.d);return}T3t(t,e)}function Zf(t,e){var n;n=t.Zc(e);try{return n.Pb()}catch(r){throw r=Wi(r),_t(r,109)?it(new yo("Can't get element "+e)):it(r)}}function j3t(t,e){this.e=t,e=0&&(n.d=t.t);break;case 3:t.t>=0&&(n.a=t.t)}t.C&&(n.b=t.C.b,n.c=t.C.c)}function u6(){u6=Z,dO=new QR(Kq,0),fO=new QR(Iot,1),gO=new QR(Oot,2),pO=new QR(Pot,3),dO.a=!1,fO.a=!0,gO.a=!1,pO.a=!0}function c_(){c_=Z,bO=new XR(Kq,0),lV=new XR(Iot,1),hV=new XR(Oot,2),wO=new XR(Pot,3),bO.a=!1,lV.a=!0,hV.a=!1,wO.a=!0}function $fn(t){var e;e=t.a;do e=u(Mr(new ar(lr(jo(e).a.Kc(),new z))),17).c.i,e.k==(Vn(),ta)&&t.b.Fc(e);while(e.k==(Vn(),ta));t.b=l2(t.b)}function zfn(t){var e,n,r;for(r=t.c.a,t.p=(Lr(r),new Bu(r)),n=new S(r);n.an.b)return!0}return!1}function gst(t,e){return ra(t)?!!Sge[e]:t.hm?!!t.hm[e]:Bm(t)?!!_ge[e]:Nm(t)?!!Cge[e]:!1}function wo(t,e,n){return n==null?(!t.o&&(t.o=new _l((Jc(),Sb),Hv,t,0)),qz(t.o,e)):(!t.o&&(t.o=new _l((Jc(),Sb),Hv,t,0)),aq(t.o,e,n)),t}function Gfn(t,e,n,r){var s,o;o=e.Xe((ui(),o5))?u(e.We(o5),21):t.j,s=Pln(o),s!=($q(),Uut)&&(n&&!P3t(s)||V4t(E2n(t,s,r),e))}function Xz(t,e,n,r){var s,o,h;return o=yn(t.Tg(),e),s=e-t.Ah(),s<0?(h=t.Yg(o),h>=0?t._g(h,n,!0):dv(t,o,n)):u(o,66).Nj().Pj(t,t.yh(),s,n,r)}function Ufn(t,e,n,r){var s,o,h;n.mh(e)&&(to(),ait(e)?(s=u(n.ah(e),153),bfn(t,s)):(o=(h=e,h?u(r,49).xh(h):null),o&&YYe(n.ah(e),o)))}function Wfn(t){switch(t.g){case 1:return rv(),hO;case 3:return rv(),lO;case 2:return rv(),Yut;case 4:return rv(),Wut;default:return null}}function $3t(t){switch(typeof t){case Vat:return Vg(t);case Nxt:return ps(t);case b6:return Nn(),t?1231:1237;default:return t==null?0:Pw(t)}}function Yfn(t,e,n){if(t.e)switch(t.b){case 1:Ern(t.c,e,n);break;case 0:Trn(t.c,e,n)}else tJt(t.c,e,n);t.a[e.p][n.p]=t.c.i,t.a[n.p][e.p]=t.c.e}function wse(t){var e,n;if(t==null)return null;for(n=Nt(l0,ee,193,t.length,0,2),e=0;e=0)return s;if(t.Fk()){for(r=0;r=s)throw it(new qm(e,s));if(t.hi()&&(r=t.Xc(n),r>=0&&r!=e))throw it(new Fn(eO));return t.mi(e,n)}function z3t(t,e){if(this.a=u(Lr(t),245),this.b=u(Lr(e),245),t.vd(e)>0||t==(cet(),_ut)||e==(oet(),Sut))throw it(new Fn("Invalid range: "+XZt(t,e)))}function vse(t){var e,n;for(this.b=new he,this.c=t,this.a=!1,n=new S(t.a);n.a0),(e&-e)==e)return ps(e*ul(t,31)*4656612873077393e-25);do n=ul(t,31),r=n%e;while(n-r+(e-1)<0);return ps(r)}function Vg(t){MYt();var e,n,r;return n=":"+t,r=aV[n],r!=null?ps((On(r),r)):(r=REt[n],e=r==null?$wn(t):ps((On(r),r)),prn(),aV[n]=e,e)}function yse(t,e,n){vr(n,"Compound graph preprocessor",1),t.a=new Uw,_he(t,e,null),S3n(t,e),uwn(t),Jt(e,(ae(),rCt),t.a),t.a=null,Xu(t.b),or(n)}function Qfn(t,e,n){switch(n.g){case 1:t.a=e.a/2,t.b=0;break;case 2:t.a=e.a,t.b=e.b/2;break;case 3:t.a=e.a/2,t.b=e.b;break;case 4:t.a=0,t.b=e.b/2}}function Zfn(t){var e,n,r;for(r=u(Ai(t.a,(b4(),qV)),15).Kc();r.Ob();)n=u(r.Pb(),101),e=t4t(n),_8(t,n,e[0],(nv(),Mv),0),_8(t,n,e[1],Dv,1)}function Jfn(t){var e,n,r;for(r=u(Ai(t.a,(b4(),HV)),15).Kc();r.Ob();)n=u(r.Pb(),101),e=t4t(n),_8(t,n,e[0],(nv(),Mv),0),_8(t,n,e[1],Dv,1)}function pst(t){switch(t.g){case 0:return null;case 1:return new yne;case 2:return new Zpt;default:throw it(new Fn(Ict+(t.f!=null?t.f:""+t.g)))}}function tI(t,e,n){var r,s;for(xun(t,e-t.s,n-t.t),s=new S(t.n);s.a1&&(o=Xfn(t,e)),o}function bst(t){var e;return t.f&&t.f.kh()&&(e=u(t.f,49),t.f=u(Zp(t,e),82),t.f!=e&&t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,9,8,e,t.f))),t.f}function wst(t){var e;return t.i&&t.i.kh()&&(e=u(t.i,49),t.i=u(Zp(t,e),82),t.i!=e&&t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,9,7,e,t.i))),t.i}function no(t){var e;return t.b&&t.b.Db&64&&(e=t.b,t.b=u(Zp(t,e),18),t.b!=e&&t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,9,21,e,t.b))),t.b}function Jz(t,e){var n,r,s;t.d==null?(++t.e,++t.f):(r=e.Sh(),bwn(t,t.f+1),s=(r&wi)%t.d.length,n=t.d[s],!n&&(n=t.d[s]=t.uj()),n.Fc(e),++t.f)}function V3t(t,e,n){var r;return e.Kj()?!1:e.Zj()!=-2?(r=e.zj(),r==null?n==null:yi(r,n)):e.Hj()==t.e.Tg()&&n==null}function tq(){var t;jl(16,bfe),t=hne(16),this.b=Nt(Lut,PI,317,t,0,1),this.c=Nt(Lut,PI,317,t,0,1),this.a=null,this.e=null,this.i=0,this.f=t-1,this.g=0}function Y0(t){cwt.call(this),this.k=(Vn(),Os),this.j=(jl(6,ky),new Xc(6)),this.b=(jl(2,ky),new Xc(2)),this.d=new net,this.f=new Hpt,this.a=t}function e1n(t){var e,n;t.c.length<=1||(e=vue(t,(ve(),mr)),aoe(t,u(e.a,19).a,u(e.b,19).a),n=vue(t,Bn),aoe(t,u(n.a,19).a,u(n.b,19).a))}function u_(){u_=Z,F9t=new LM("SIMPLE",0),xht=new LM(Xot,1),kht=new LM("LINEAR_SEGMENTS",2),DS=new LM("BRANDES_KOEPF",3),IS=new LM(q1e,4)}function G3t(t,e,n){jx(u(Q(e,(Te(),cs)),98))||(jmt(t,e,Gg(e,n)),jmt(t,e,Gg(e,(ve(),mr))),jmt(t,e,Gg(e,Pn)),wn(),Zs(e.j,new hM(t)))}function xse(t,e,n,r){var s,o,h;for(s=u(Ai(r?t.a:t.b,e),21),h=s.Kc();h.Ob();)if(o=u(h.Pb(),33),Tq(t,n,o))return!0;return!1}function vst(t){var e,n;for(n=new nr(t);n.e!=n.i.gc();)if(e=u(dr(n),87),e.e||(!e.d&&(e.d=new As(ho,e,1)),e.d).i!=0)return!0;return!1}function mst(t){var e,n;for(n=new nr(t);n.e!=n.i.gc();)if(e=u(dr(n),87),e.e||(!e.d&&(e.d=new As(ho,e,1)),e.d).i!=0)return!0;return!1}function n1n(t){var e,n,r;for(e=0,r=new S(t.c.a);r.a102?-1:t<=57?t-48:t<65?-1:t<=70?t-65+10:t<97?-1:t-97+10}function kst(t,e){if(t==null)throw it(new Sx("null key in entry: null="+e));if(e==null)throw it(new Sx("null value in entry: "+t+"=null"))}function r1n(t,e){for(var n,r;t.Ob();)if(!e.Ob()||(n=t.Pb(),r=e.Pb(),!(Vt(n)===Vt(r)||n!=null&&yi(n,r))))return!1;return!e.Ob()}function Ese(t,e){var n;return n=lt(ct(aa,1),vo,25,15,[zit(t.a[0],e),zit(t.a[1],e),zit(t.a[2],e)]),t.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function Tse(t,e){var n;return n=lt(ct(aa,1),vo,25,15,[Lz(t.a[0],e),Lz(t.a[1],e),Lz(t.a[2],e)]),t.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function x2(){x2=Z,Mlt=new AM("GREEDY",0),PTt=new AM(A1e,1),Dlt=new AM(Xot,2),vS=new AM("MODEL_ORDER",3),wS=new AM("GREEDY_MODEL_ORDER",4)}function Cse(t,e){var n,r,s;for(t.b[e.g]=1,r=ei(e.d,0);r.b!=r.d.c;)n=u(ti(r),188),s=n.c,t.b[s.g]==1?ri(t.a,n):t.b[s.g]==2?t.b[s.g]=1:Cse(t,s)}function i1n(t,e){var n,r,s;for(s=new Xc(e.gc()),r=e.Kc();r.Ob();)n=u(r.Pb(),286),n.c==n.f?EE(t,n,n.c):npn(t,n)||(s.c[s.c.length]=n);return s}function s1n(t,e,n){var r,s,o,h,d;for(d=t.r+e,t.r+=e,t.d+=n,r=n/t.n.c.length,s=0,h=new S(t.n);h.ao&&ts(e,o,null),e}function m1n(t,e){var n,r;if(r=t.gc(),e==null){for(n=0;n0&&(v+=s),k[C]=h,h+=d*(v+r)}function Ose(t){var e,n,r;for(r=t.f,t.n=Nt(aa,vo,25,r,15,1),t.d=Nt(aa,vo,25,r,15,1),e=0;e0?t.c:0),++s;t.b=r,t.d=o}function _1n(t,e){var n,r,s,o,h;for(r=0,s=0,n=0,h=new S(e);h.a0?t.g:0),++n;t.c=s,t.d=r}function Rse(t,e){var n;return n=lt(ct(aa,1),vo,25,15,[H3t(t,(Kf(),sc),e),H3t(t,eu,e),H3t(t,ac,e)]),t.f&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function S1n(t,e,n){var r;try{Sq(t,e+t.j,n+t.k,!1,!0)}catch(s){throw s=Wi(s),_t(s,73)?(r=s,it(new yo(r.g+Qq+e+Ya+n+")."))):it(s)}}function A1n(t,e,n){var r;try{Sq(t,e+t.j,n+t.k,!0,!1)}catch(s){throw s=Wi(s),_t(s,73)?(r=s,it(new yo(r.g+Qq+e+Ya+n+")."))):it(s)}}function jse(t){var e;Us(t,(Te(),Nv))&&(e=u(Q(t,Nv),21),e.Hc((py(),_f))?(e.Mc(_f),e.Fc(Sf)):e.Hc(Sf)&&(e.Mc(Sf),e.Fc(_f)))}function $se(t){var e;Us(t,(Te(),Nv))&&(e=u(Q(t,Nv),21),e.Hc((py(),Lf))?(e.Mc(Lf),e.Fc(Hh)):e.Hc(Hh)&&(e.Mc(Hh),e.Fc(Lf)))}function L1n(t,e,n){vr(n,"Self-Loop ordering",1),ls(wu(Ri(Ri(Wo(new Tn(null,new _n(e.b,16)),new mN),new rX),new iX),new sX),new Lm(t)),or(n)}function nI(t,e,n,r){var s,o;for(s=e;s0&&(s.b+=e),s}function rq(t,e){var n,r,s;for(s=new Ca,r=t.Kc();r.Ob();)n=u(r.Pb(),37),x_(n,0,s.b),s.b+=n.f.b+e,s.a=b.Math.max(s.a,n.f.a);return s.a>0&&(s.a+=e),s}function qse(t){var e,n,r;for(r=wi,n=new S(t.a);n.a>16==6?t.Cb.ih(t,5,i1,e):(r=no(u(yn((n=u(Dn(t,16),26),n||t.zh()),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function P1n(t){I8();var e=t.e;if(e&&e.stack){var n=e.stack,r=e+` -`;return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split(` -`)}return[]}function F1n(t){var e;return e=(sne(),jge),e[t>>>28]|e[t>>24&15]<<4|e[t>>20&15]<<8|e[t>>16&15]<<12|e[t>>12&15]<<16|e[t>>8&15]<<20|e[t>>4&15]<<24|e[t&15]<<28}function Gse(t){var e,n,r;t.b==t.c&&(r=t.a.length,n=Dyt(b.Math.max(8,r))<<1,t.b!=0?(e=ff(t.a,n),dne(t,e,r),t.a=e,t.b=0):fqt(t.a,n),t.c=r)}function N1n(t,e){var n;return n=t.b,n.Xe((ui(),dl))?n.Hf()==(ve(),Bn)?-n.rf().a-Xt(ye(n.We(dl))):e+Xt(ye(n.We(dl))):n.Hf()==(ve(),Bn)?-n.rf().a:e}function rI(t){var e;return t.b.c.length!=0&&u(Ne(t.b,0),70).a?u(Ne(t.b,0),70).a:(e=grt(t),e??""+(t.c?Ro(t.c.a,t,0):-1))}function iq(t){var e;return t.f.c.length!=0&&u(Ne(t.f,0),70).a?u(Ne(t.f,0),70).a:(e=grt(t),e??""+(t.i?Ro(t.i.j,t,0):-1))}function B1n(t,e){var n,r;if(e<0||e>=t.gc())return null;for(n=e;n0?t.c:0),s=b.Math.max(s,e.d),++r;t.e=o,t.b=s}function j1n(t){var e,n;if(!t.b)for(t.b=D$(u(t.f,118).Ag().i),n=new nr(u(t.f,118).Ag());n.e!=n.i.gc();)e=u(dr(n),137),le(t.b,new get(e));return t.b}function $1n(t,e){var n,r,s;if(e.dc())return y8(),y8(),pP;for(n=new YWt(t,e.gc()),s=new nr(t);s.e!=s.i.gc();)r=dr(s),e.Hc(r)&&Dr(n,r);return n}function Z3t(t,e,n,r){return e==0?r?(!t.o&&(t.o=new _l((Jc(),Sb),Hv,t,0)),t.o):(!t.o&&(t.o=new _l((Jc(),Sb),Hv,t,0)),wD(t.o)):Xz(t,e,n,r)}function Mst(t){var e,n;if(t.rb)for(e=0,n=t.rb.i;e>22),s+=r>>22,s<0)?!1:(t.l=n&hl,t.m=r&hl,t.h=s&Z0,!0)}function V1n(t,e,n,r,s,o,h){var d,v;return!(e.Ae()&&(v=t.a.ue(n,r),v<0||!s&&v==0)||e.Be()&&(d=t.a.ue(n,o),d>0||!h&&d==0))}function G1n(t,e){oE();var n;if(n=t.j.g-e.j.g,n!=0)return 0;switch(t.j.g){case 2:return Jit(e,_Tt)-Jit(t,_Tt);case 4:return Jit(t,CTt)-Jit(e,CTt)}return 0}function U1n(t){switch(t.g){case 0:return Olt;case 1:return Plt;case 2:return Flt;case 3:return Nlt;case 4:return UV;case 5:return Blt;default:return null}}function _o(t,e,n){var r,s;return r=(s=new set,b2(s,e),Qc(s,n),Dr((!t.c&&(t.c=new fe(Vv,t,12,10)),t.c),s),s),Rg(r,0),ry(r,1),qg(r,!0),zg(r,!0),r}function l6(t,e){var n,r;if(e>=t.i)throw it(new nnt(e,t.i));return++t.j,n=t.g[e],r=t.i-e-1,r>0&&Dc(t.g,e+1,t.g,e,r),ts(t.g,--t.i,null),t.fi(e,n),t.ci(),n}function Use(t,e){var n,r;return t.Db>>16==17?t.Cb.ih(t,21,Uh,e):(r=no(u(yn((n=u(Dn(t,16),26),n||t.zh()),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function W1n(t){var e,n,r,s;for(wn(),Zs(t.c,t.a),s=new S(t.c);s.an.a.c.length))throw it(new Fn("index must be >= 0 and <= layer node count"));t.c&&mu(t.c.a,t),t.c=n,n&&Hm(n.a,e,t)}function Qse(t,e){var n,r,s;for(r=new ar(lr(U0(t).a.Kc(),new z));zr(r);)return n=u(Mr(r),17),s=u(e.Kb(n),10),new Wk(Lr(s.n.b+s.o.b/2));return PC(),PC(),Cut}function Zse(t,e){this.c=new _r,this.a=t,this.b=e,this.d=u(Q(t,(ae(),Q4)),304),Vt(Q(t,(Te(),h9t)))===Vt((xD(),WV))?this.e=new Lqt:this.e=new Aqt}function J1n(t,e){var n,r,s,o;for(o=0,r=new S(t);r.a>16==6?t.Cb.ih(t,6,Ys,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(Jc(),aU)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function i4t(t,e){var n,r;return t.Db>>16==7?t.Cb.ih(t,1,lP,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(Jc(),GAt)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function s4t(t,e){var n,r;return t.Db>>16==9?t.Cb.ih(t,9,rs,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(Jc(),WAt)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function tae(t,e){var n,r;return t.Db>>16==5?t.Cb.ih(t,9,pU,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(dn(),op)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function a4t(t,e){var n,r;return t.Db>>16==3?t.Cb.ih(t,0,fP,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(dn(),ap)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function eae(t,e){var n,r;return t.Db>>16==7?t.Cb.ih(t,6,i1,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(dn(),up)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function nae(){this.a=new oB,this.g=new tq,this.j=new tq,this.b=new _r,this.d=new tq,this.i=new tq,this.k=new _r,this.c=new _r,this.e=new _r,this.f=new _r}function rdn(t,e,n){var r,s,o;for(n<0&&(n=0),o=t.i,s=n;svot)return vE(t,r);if(r==t)return!0}}return!1}function sdn(t){switch(Cj(),t.q.g){case 5:$oe(t,(ve(),Pn)),$oe(t,mr);break;case 4:Fce(t,(ve(),Pn)),Fce(t,mr);break;default:Fhe(t,(ve(),Pn)),Fhe(t,mr)}}function adn(t){switch(Cj(),t.q.g){case 5:ece(t,(ve(),Hn)),ece(t,Bn);break;case 4:fse(t,(ve(),Hn)),fse(t,Bn);break;default:Nhe(t,(ve(),Hn)),Nhe(t,Bn)}}function odn(t){var e,n;e=u(Q(t,(Jf(),ybe)),19),e?(n=e.a,n==0?Jt(t,(Yp(),wV),new Zit):Jt(t,(Yp(),wV),new F$(n))):Jt(t,(Yp(),wV),new F$(1))}function cdn(t,e){var n;switch(n=t.i,e.g){case 1:return-(t.n.b+t.o.b);case 2:return t.n.a-n.o.a;case 3:return t.n.b-n.o.b;case 4:return-(t.n.a+t.o.a)}return 0}function udn(t,e){switch(t.g){case 0:return e==(dh(),bb)?BV:RV;case 1:return e==(dh(),bb)?BV:kO;case 2:return e==(dh(),bb)?kO:RV;default:return kO}}function sI(t,e){var n,r,s;for(mu(t.a,e),t.e-=e.r+(t.a.c.length==0?0:t.c),s=Ukt,r=new S(t.a);r.a>16==3?t.Cb.ih(t,12,rs,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(Jc(),VAt)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function c4t(t,e){var n,r;return t.Db>>16==11?t.Cb.ih(t,10,rs,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(Jc(),UAt)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function rae(t,e){var n,r;return t.Db>>16==10?t.Cb.ih(t,11,Uh,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(dn(),cp)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function iae(t,e){var n,r;return t.Db>>16==10?t.Cb.ih(t,12,Wh,e):(r=no(u(yn((n=u(Dn(t,16),26),n||(dn(),i3)),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function Dh(t){var e;return!(t.Bb&1)&&t.r&&t.r.kh()&&(e=u(t.r,49),t.r=u(Zp(t,e),138),t.r!=e&&t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,9,8,e,t.r))),t.r}function Ist(t,e,n){var r;return r=lt(ct(aa,1),vo,25,15,[O4t(t,(Kf(),sc),e,n),O4t(t,eu,e,n),O4t(t,ac,e,n)]),t.f&&(r[0]=b.Math.max(r[0],r[2]),r[2]=r[0]),r}function ldn(t,e){var n,r,s;if(s=i1n(t,e),s.c.length!=0)for(Zs(s,new WK),n=s.c.length,r=0;r>19,k=e.h>>19,v!=k?k-v:(s=t.h,d=e.h,s!=d?s-d:(r=t.m,h=e.m,r!=h?r-h:(n=t.l,o=e.l,n-o)))}function sq(){sq=Z,XEt=(Cq(),Vut),KEt=new mn(Qxt,XEt),YEt=(Q$(),Hut),WEt=new mn(Zxt,YEt),UEt=(Gz(),qut),GEt=new mn(Jxt,UEt),VEt=new mn(t6t,(Nn(),!0))}function h_(t,e,n){var r,s;r=e*n,_t(t.g,145)?(s=Xx(t),s.f.d?s.f.a||(t.d.a+=r+B1):(t.d.d-=r+B1,t.d.a+=r+B1)):_t(t.g,10)&&(t.d.d-=r,t.d.a+=2*r)}function sae(t,e,n){var r,s,o,h,d;for(s=t[n.g],d=new S(e.d);d.a0?t.g:0),++n;e.b=r,e.e=s}function aae(t){var e,n,r;if(r=t.b,AVt(t.i,r.length)){for(n=r.length*2,t.b=Nt(Lut,PI,317,n,0,1),t.c=Nt(Lut,PI,317,n,0,1),t.f=n-1,t.i=0,e=t.a;e;e=e.c)fI(t,e,e);++t.g}}function vdn(t,e,n,r){var s,o,h,d;for(s=0;sh&&(d=h/r),s>o&&(v=o/s),fd(t,b.Math.min(d,v)),t}function ydn(){Dq();var t,e;try{if(e=u(m4t((Pp(),Yh),ZE),2014),e)return e}catch(n){if(n=Wi(n),_t(n,102))t=n,avt((Pr(),t));else throw it(n)}return new ax}function xdn(){Qte();var t,e;try{if(e=u(m4t((Pp(),Yh),O2),2024),e)return e}catch(n){if(n=Wi(n),_t(n,102))t=n,avt((Pr(),t));else throw it(n)}return new _m}function kdn(){Dq();var t,e;try{if(e=u(m4t((Pp(),Yh),Bh),1941),e)return e}catch(n){if(n=Wi(n),_t(n,102))t=n,avt((Pr(),t));else throw it(n)}return new aJ}function Edn(t,e,n){var r,s;return s=t.e,t.e=e,t.Db&4&&!(t.Db&1)&&(r=new Js(t,1,4,s,e),n?n.Ei(r):n=r),s!=e&&(e?n=PE(t,vq(t,e),n):n=PE(t,t.a,n)),n}function oae(){BR.call(this),this.e=-1,this.a=!1,this.p=Sa,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=Sa}function Tdn(t,e){var n,r,s;if(r=t.b.d.d,t.a||(r+=t.b.d.a),s=e.b.d.d,e.a||(s+=e.b.d.a),n=Ms(r,s),n==0){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Cdn(t,e){var n,r,s;if(r=t.b.b.d,t.a||(r+=t.b.b.a),s=e.b.b.d,e.a||(s+=e.b.b.a),n=Ms(r,s),n==0){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function _dn(t,e){var n,r,s;if(r=t.b.g.d,t.a||(r+=t.b.g.a),s=e.b.g.d,e.a||(s+=e.b.g.a),n=Ms(r,s),n==0){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function l4t(){l4t=Z,Pbe=Ku(bi(bi(bi(new Vs,(Wa(),qc),(ro(),hTt)),qc,fTt),Io,dTt),Io,tTt),Nbe=bi(bi(new Vs,qc,W7t),qc,eTt),Fbe=Ku(new Vs,Io,rTt)}function Sdn(t){var e,n,r,s,o;for(e=u(Q(t,(ae(),kS)),83),o=t.n,r=e.Cc().Kc();r.Ob();)n=u(r.Pb(),306),s=n.i,s.c+=o.a,s.d+=o.b,n.c?Eue(n):Tue(n);Jt(t,kS,null)}function Adn(t,e,n){var r,s;switch(s=t.b,r=s.d,e.g){case 1:return-r.d-n;case 2:return s.o.a+r.c+n;case 3:return s.o.b+r.a+n;case 4:return-r.b-n;default:return-1}}function Ldn(t){var e,n,r,s,o;if(r=0,s=VE,t.b)for(e=0;e<360;e++)n=e*.017453292519943295,txt(t,t.d,0,0,O4,n),o=t.b.ig(t.d),o0&&(h=(o&wi)%t.d.length,s=l5t(t,h,o,e),s)?(d=s.ed(n),d):(r=t.tj(o,e,n),t.c.Fc(r),null)}function d4t(t,e){var n,r,s,o;switch($g(t,e)._k()){case 3:case 2:{for(n=T4(e),s=0,o=n.i;s=0;r--)if(hn(t[r].d,e)||hn(t[r].d,n)){t.length>=r+1&&t.splice(0,r+1);break}return t}function aI(t,e){var n;return Bo(t)&&Bo(e)&&(n=t/e,BI0&&(t.b+=2,t.a+=r):(t.b+=1,t.a+=b.Math.min(r,s))}function gae(t,e){var n,r;if(r=!1,ra(e)&&(r=!0,Vx(t,new Um(Br(e)))),r||_t(e,236)&&(r=!0,Vx(t,(n=mwt(u(e,236)),new EC(n)))),!r)throw it(new fet(A8t))}function Wdn(t,e,n,r){var s,o,h;return s=new z0(t.e,1,10,(h=e.c,_t(h,88)?u(h,26):(dn(),Kh)),(o=n.c,_t(o,88)?u(o,26):(dn(),Kh)),Hg(t,e),!1),r?r.Ei(s):r=s,r}function b4t(t){var e,n;switch(u(Q(Na(t),(Te(),r9t)),420).g){case 0:return e=t.n,n=t.o,new $e(e.a+n.a/2,e.b+n.b/2);case 1:return new xo(t.n);default:return null}}function oI(){oI=Z,YV=new t9(J0,0),qTt=new t9("LEFTUP",1),VTt=new t9("RIGHTUP",2),zTt=new t9("LEFTDOWN",3),HTt=new t9("RIGHTDOWN",4),Rlt=new t9("BALANCED",5)}function Ydn(t,e,n){var r,s,o;if(r=Ms(t.a[e.p],t.a[n.p]),r==0){if(s=u(Q(e,(ae(),R6)),15),o=u(Q(n,R6),15),s.Hc(n))return-1;if(o.Hc(e))return 1}return r}function Kdn(t){switch(t.g){case 1:return new hZ;case 2:return new fZ;case 3:return new lZ;case 0:return null;default:throw it(new Fn(Ict+(t.f!=null?t.f:""+t.g)))}}function w4t(t,e,n){switch(e){case 1:!t.n&&(t.n=new fe(qo,t,1,7)),xr(t.n),!t.n&&(t.n=new fe(qo,t,1,7)),is(t.n,u(n,14));return;case 2:G9(t,Br(n));return}Byt(t,e,n)}function v4t(t,e,n){switch(e){case 3:Jw(t,Xt(ye(n)));return;case 4:tv(t,Xt(ye(n)));return;case 5:ku(t,Xt(ye(n)));return;case 6:Eu(t,Xt(ye(n)));return}w4t(t,e,n)}function oq(t,e,n){var r,s,o;o=(r=new set,r),s=F1(o,e,null),s&&s.Fi(),Qc(o,n),Dr((!t.c&&(t.c=new fe(Vv,t,12,10)),t.c),o),Rg(o,0),ry(o,1),qg(o,!0),zg(o,!0)}function m4t(t,e){var n,r,s;return n=KC(t.g,e),_t(n,235)?(s=u(n,235),s.Qh()==null,s.Nh()):_t(n,498)?(r=u(n,1938),s=r.b,s):null}function Xdn(t,e,n,r){var s,o;return Lr(e),Lr(n),o=u(x9(t.d,e),19),nee(!!o,"Row %s not in %s",e,t.e),s=u(x9(t.b,n),19),nee(!!s,"Column %s not in %s",n,t.c),ore(t,o.a,s.a,r)}function pae(t,e,n,r,s,o,h){var d,v,k,C,M;if(C=s[o],k=o==h-1,d=k?r:0,M=Nse(d,C),r!=10&<(ct(t,h-o),e[o],n[o],d,M),!k)for(++o,v=0;v1||d==-1?(o=u(v,15),s.Wb(rfn(t,o))):s.Wb(yat(t,u(v,56)))))}function r0n(t,e,n,r){nVt();var s=Tut;function o(){for(var h=0;hLct)return n;s>-1e-6&&++n}return n}function k4t(t,e){var n;e!=t.b?(n=null,t.b&&(n=m$(t.b,t,-4,n)),e&&(n=c6(e,t,-4,n)),n=Qre(t,e,n),n&&n.Fi()):t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,3,e,e))}function vae(t,e){var n;e!=t.f?(n=null,t.f&&(n=m$(t.f,t,-1,n)),e&&(n=c6(e,t,-1,n)),n=Zre(t,e,n),n&&n.Fi()):t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,0,e,e))}function mae(t){var e,n,r;if(t==null)return null;if(n=u(t,15),n.dc())return"";for(r=new Ag,e=n.Kc();e.Ob();)go(r,(Ii(),Br(e.Pb()))),r.a+=" ";return int(r,r.a.length-1)}function yae(t){var e,n,r;if(t==null)return null;if(n=u(t,15),n.dc())return"";for(r=new Ag,e=n.Kc();e.Ob();)go(r,(Ii(),Br(e.Pb()))),r.a+=" ";return int(r,r.a.length-1)}function h0n(t,e,n){var r,s;return r=t.c[e.c.p][e.p],s=t.c[n.c.p][n.p],r.a!=null&&s.a!=null?Unt(r.a,s.a):r.a!=null?-1:s.a!=null?1:0}function f0n(t,e){var n,r,s,o,h,d;if(e)for(o=e.a.length,n=new e2(o),d=(n.b-n.a)*n.c<0?(Fp(),Ib):new jp(n);d.Ob();)h=u(d.Pb(),19),s=P8(e,h.a),r=new xzt(t),ern(r.a,s)}function d0n(t,e){var n,r,s,o,h,d;if(e)for(o=e.a.length,n=new e2(o),d=(n.b-n.a)*n.c<0?(Fp(),Ib):new jp(n);d.Ob();)h=u(d.Pb(),19),s=P8(e,h.a),r=new fzt(t),trn(r.a,s)}function g0n(t){var e;if(t!=null&&t.length>0&&wa(t,t.length-1)==33)try{return e=woe(Pl(t,0,t.length-1)),e.e==null}catch(n){if(n=Wi(n),!_t(n,32))throw it(n)}return!1}function xae(t,e,n){var r,s,o;return r=e.ak(),o=e.dd(),s=r.$j()?Gp(t,3,r,null,o,DE(t,r,o,_t(r,99)&&(u(r,18).Bb&Ka)!=0),!0):Gp(t,1,r,r.zj(),o,-1,!0),n?n.Ei(s):n=s,n}function p0n(){var t,e,n;for(e=0,t=0;t<1;t++){if(n=g5t((Rr(t,1),"X".charCodeAt(t))),n==0)throw it(new Nr("Unknown Option: "+"X".substr(t)));e|=n}return e}function b0n(t,e,n){var r,s,o;switch(r=Na(e),s=Pz(r),o=new Mc,Uo(o,e),n.g){case 1:Bs(o,YD(a6(s)));break;case 2:Bs(o,a6(s))}return Jt(o,(Te(),Vy),ye(Q(t,Vy))),o}function E4t(t){var e,n;return e=u(Mr(new ar(lr(jo(t.a).a.Kc(),new z))),17),n=u(Mr(new ar(lr(Ds(t.a).a.Kc(),new z))),17),je(Re(Q(e,(ae(),q1))))||je(Re(Q(n,q1)))}function b4(){b4=Z,$V=new SM("ONE_SIDE",0),qV=new SM("TWO_SIDES_CORNER",1),HV=new SM("TWO_SIDES_OPPOSING",2),zV=new SM("THREE_SIDES",3),jV=new SM("FOUR_SIDES",4)}function Nst(t,e,n,r,s){var o,h;o=u(Bl(Ri(e.Oc(),new VX),c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[(O1(),Ul)]))),15),h=u(h2(t.b,n,r),15),s==0?h.Wc(0,o):h.Gc(o)}function w0n(t,e){var n,r,s,o,h;for(o=new S(e.a);o.a0&&Wse(this,this.c-1,(ve(),Hn)),this.c0&&t[0].length>0&&(this.c=je(Re(Q(Na(t[0][0]),(ae(),sCt))))),this.a=Nt(Tme,ee,2018,t.length,0,2),this.b=Nt(Cme,ee,2019,t.length,0,2),this.d=new Vre}function k0n(t){return t.c.length==0?!1:(An(0,t.c.length),u(t.c[0],17)).c.i.k==(Vn(),ta)?!0:N8(wu(new Tn(null,new _n(t,16)),new mQ),new yQ)}function E0n(t,e,n){return vr(n,"Tree layout",1),L$(t.b),Kd(t.b,(wE(),AG),AG),Kd(t.b,RS,RS),Kd(t.b,$O,$O),Kd(t.b,jS,jS),t.a=Fq(t.b,e),Zwn(t,e,Rc(n,1)),or(n),e}function Eae(t,e){var n,r,s,o,h,d,v;for(d=wy(e),o=e.f,v=e.g,h=b.Math.sqrt(o*o+v*v),s=0,r=new S(d);r.a=0?(n=aI(t,Gq),r=QD(t,Gq)):(e=Vm(t,1),n=aI(e,5e8),r=QD(e,5e8),r=Pa(F0(r,1),Ns(t,1))),S1(F0(r,32),Ns(n,co))}function _ae(t,e,n){var r,s;switch(r=(Zn(e.b!=0),u(lh(e,e.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=t.f;break;case 3:r.a=0;break;default:r.a=t.g}return s=ei(e,0),eD(s,r),e}function Sae(t,e,n,r){var s,o,h,d,v;switch(v=t.b,o=e.d,h=o.j,d=B3t(h,v.d[h.g],n),s=Li(nc(o.n),o.a),o.j.g){case 1:case 3:d.a+=s.a;break;case 2:case 4:d.b+=s.b}fs(r,d,r.c.b,r.c)}function F0n(t,e,n){var r,s,o,h;for(h=Ro(t.e,e,0),o=new zpt,o.b=n,r=new da(t.e,h);r.b1;e>>=1)e&1&&(r=e4(r,n)),n.d==1?n=e4(n,n):n=new Qie(ale(n.a,n.d,Nt(Cr,Xr,25,n.d<<1,15,1)));return r=e4(r,n),r}function M4t(){M4t=Z;var t,e,n,r;for(DEt=Nt(aa,vo,25,25,15,1),IEt=Nt(aa,vo,25,33,15,1),r=152587890625e-16,e=32;e>=0;e--)IEt[e]=r,r*=.5;for(n=1,t=24;t>=0;t--)DEt[t]=n,n*=.5}function z0n(t){var e,n;if(je(Re(qe(t,(Te(),Hy))))){for(n=new ar(lr(K0(t).a.Kc(),new z));zr(n);)if(e=u(Mr(n),79),fv(e)&&je(Re(qe(e,j2))))return!0}return!1}function Aae(t,e){var n,r,s;Fs(t.f,e)&&(e.b=t,r=e.c,Ro(t.j,r,0)!=-1||le(t.j,r),s=e.d,Ro(t.j,s,0)!=-1||le(t.j,s),n=e.a.b,n.c.length!=0&&(!t.i&&(t.i=new ase(t)),run(t.i,n)))}function q0n(t){var e,n,r,s,o;return n=t.c.d,r=n.j,s=t.d.d,o=s.j,r==o?n.p=0&&hn(t.substr(e,3),"GMT")||e>=0&&hn(t.substr(e,3),"UTC"))&&(n[0]=e+3),rxt(t,n,r)}function V0n(t,e){var n,r,s,o,h;for(o=t.g.a,h=t.g.b,r=new S(t.d);r.an;o--)t[o]|=e[o-n-1]>>>h,t[o-1]=e[o-n-1]<=t.f)break;o.c[o.c.length]=n}return o}function I4t(t){var e,n,r,s;for(e=null,s=new S(t.wf());s.a0&&Dc(t.g,e,t.g,e+r,d),h=n.Kc(),t.i+=r,s=0;so&&ann(k,Tee(n[d],LEt))&&(s=d,o=v);return s>=0&&(r[0]=e+o),s}function Q0n(t,e){var n;if(n=xUt(t.b.Hf(),e.b.Hf()),n!=0)return n;switch(t.b.Hf().g){case 1:case 2:return pu(t.b.sf(),e.b.sf());case 3:case 4:return pu(e.b.sf(),t.b.sf())}return 0}function Z0n(t){var e,n,r;for(r=t.e.c.length,t.a=t2(Cr,[ee,Xr],[48,25],15,[r,r],2),n=new S(t.c);n.a>4&15,o=t[r]&15,h[s++]=YAt[n],h[s++]=YAt[o];return Mh(h,0,h.length)}function egn(t,e,n){var r,s,o;return r=e.ak(),o=e.dd(),s=r.$j()?Gp(t,4,r,o,null,DE(t,r,o,_t(r,99)&&(u(r,18).Bb&Ka)!=0),!0):Gp(t,r.Kj()?2:1,r,o,r.zj(),-1,!0),n?n.Ei(s):n=s,n}function Cu(t){var e,n;return t>=Ka?(e=RI+(t-Ka>>10&1023)&ys,n=56320+(t-Ka&1023)&ys,String.fromCharCode(e)+(""+String.fromCharCode(n))):String.fromCharCode(t&ys)}function ngn(t,e){$m();var n,r,s,o;return s=u(u(Ai(t.r,e),21),84),s.gc()>=2?(r=u(s.Kc().Pb(),111),n=t.u.Hc((Zu(),nA)),o=t.u.Hc(Q6),!r.a&&!n&&(s.gc()==2||o)):!1}function Dae(t,e,n,r,s){var o,h,d;for(o=gue(t,e,n,r,s),d=!1;!o;)bq(t,s,!0),d=!0,o=gue(t,e,n,r,s);d&&bq(t,s,!1),h=Cit(s),h.c.length!=0&&(t.d&&t.d.lg(h),Dae(t,s,n,r,h))}function hq(){hq=Z,Sft=new a9(J0,0),kAt=new a9("DIRECTED",1),TAt=new a9("UNDIRECTED",2),yAt=new a9("ASSOCIATION",3),EAt=new a9("GENERALIZATION",4),xAt=new a9("DEPENDENCY",5)}function rgn(t,e){var n;if(!T1(t))throw it(new No(_de));switch(n=T1(t),e.g){case 1:return-(t.j+t.f);case 2:return t.i-n.g;case 3:return t.j-n.f;case 4:return-(t.i+t.g)}return 0}function xE(t,e){var n,r;for(On(e),r=t.b.c.length,le(t.b,e);r>0;){if(n=r,r=(r-1)/2|0,t.a.ue(Ne(t.b,r),e)<=0)return ch(t.b,n,e),!0;ch(t.b,n,Ne(t.b,r))}return ch(t.b,r,e),!0}function O4t(t,e,n,r){var s,o;if(s=0,n)s=Lz(t.a[n.g][e.g],r);else for(o=0;o=d)}function P4t(t,e,n,r){var s;if(s=!1,ra(r)&&(s=!0,E8(e,n,Br(r))),s||Nm(r)&&(s=!0,P4t(t,e,n,r)),s||_t(r,236)&&(s=!0,r2(e,n,u(r,236))),!s)throw it(new fet(A8t))}function sgn(t,e){var n,r,s;if(n=e.Hh(t.a),n&&(s=Xf((!n.b&&(n.b=new kl((dn(),Qa),cc,n)),n.b),Nh),s!=null)){for(r=1;r<($u(),vLt).length;++r)if(hn(vLt[r],s))return r}return 0}function agn(t,e){var n,r,s;if(n=e.Hh(t.a),n&&(s=Xf((!n.b&&(n.b=new kl((dn(),Qa),cc,n)),n.b),Nh),s!=null)){for(r=1;r<($u(),mLt).length;++r)if(hn(mLt[r],s))return r}return 0}function Iae(t,e){var n,r,s,o;if(On(e),o=t.a.gc(),o0?1:0;o.a[s]!=n;)o=o.a[s],s=t.a.ue(n.d,o.d)>0?1:0;o.a[s]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function ugn(t){Zu();var e,n;return e=ji(sg,lt(ct(eU,1),oe,273,0,[Cb])),!(OD(k$(e,t))>1||(n=ji(nA,lt(ct(eU,1),oe,273,0,[eA,Q6])),OD(k$(n,t))>1))}function N4t(t,e){var n;n=Nc((Pp(),Yh),t),_t(n,498)?ko(Yh,t,new QGt(this,e)):ko(Yh,t,this),Hst(this,e),e==(c8(),aLt)?(this.wb=u(this,1939),u(e,1941)):this.wb=(Hp(),Ln)}function lgn(t){var e,n,r;if(t==null)return null;for(e=null,n=0;n=Wg?"error":r>=900?"warn":r>=800?"info":"log"),vXt(n,t.a),t.b&&N5t(e,n,t.b,"Exception: ",!0))}function Q(t,e){var n,r;return r=(!t.q&&(t.q=new _r),tr(t.q,e)),r??(n=e.wg(),_t(n,4)&&(n==null?(!t.q&&(t.q=new _r),Jx(t.q,e)):(!t.q&&(t.q=new _r),ki(t.q,e,n))),n)}function Wa(){Wa=Z,Dd=new _M("P1_CYCLE_BREAKING",0),gb=new _M("P2_LAYERING",1),cu=new _M("P3_NODE_ORDERING",2),qc=new _M("P4_NODE_PLACEMENT",3),Io=new _M("P5_EDGE_ROUTING",4)}function Nae(t,e){var n,r,s,o,h;for(s=e==1?clt:olt,r=s.a.ec().Kc();r.Ob();)for(n=u(r.Pb(),103),h=u(Ai(t.f.c,n),21).Kc();h.Ob();)o=u(h.Pb(),46),mu(t.b.b,o.b),mu(t.b.a,u(o.b,81).d)}function hgn(t,e){H9();var n;if(t.c==e.c){if(t.b==e.b||Ncn(t.b,e.b)){if(n=GXe(t.b)?1:-1,t.a&&!e.a)return n;if(!t.a&&e.a)return-n}return pu(t.b.g,e.b.g)}else return Ms(t.c,e.c)}function fgn(t,e){var n;vr(e,"Hierarchical port position processing",1),n=t.b,n.c.length>0&&ele((An(0,n.c.length),u(n.c[0],29)),t),n.c.length>1&&ele(u(Ne(n,n.c.length-1),29),t),or(e)}function Bae(t,e){var n,r,s;if(R4t(t,e))return!0;for(r=new S(e);r.a=s||e<0)throw it(new yo(iut+e+D2+s));if(n>=s||n<0)throw it(new yo(sut+n+D2+s));return e!=n?r=(o=t.Ti(n),t.Hi(e,o),o):r=t.Oi(n),r}function $ae(t){var e,n,r;if(r=t,t)for(e=0,n=t.Ug();n;n=n.Ug()){if(++e>vot)return $ae(n);if(r=n,n==t)throw it(new No("There is a cycle in the containment hierarchy of "+t))}return r}function eb(t){var e,n,r;for(r=new f2(Ya,"[","]"),n=t.Kc();n.Ob();)e=n.Pb(),$0(r,Vt(e)===Vt(t)?"(this Collection)":e==null?_u:$o(e));return r.a?r.e.length==0?r.a.a:r.a.a+(""+r.e):r.c}function R4t(t,e){var n,r;if(r=!1,e.gc()<2)return!1;for(n=0;nr&&(Rr(e-1,t.length),t.charCodeAt(e-1)<=32);)--e;return r>0||e1&&(t.j.b+=t.e)):(t.j.a+=n.a,t.j.b=b.Math.max(t.j.b,n.b),t.d.c.length>1&&(t.j.a+=t.e))}function nb(){nb=Z,y2e=lt(ct(Xa,1),xc,61,0,[(ve(),Pn),Hn,mr]),m2e=lt(ct(Xa,1),xc,61,0,[Hn,mr,Bn]),x2e=lt(ct(Xa,1),xc,61,0,[mr,Bn,Pn]),k2e=lt(ct(Xa,1),xc,61,0,[Bn,Pn,Hn])}function ggn(t,e,n,r){var s,o,h,d,v,k,C;if(h=t.c.d,d=t.d.d,h.j!=d.j)for(C=t.b,s=h.j,v=null;s!=d.j;)v=e==0?Oz(s):o3t(s),o=B3t(s,C.d[s.g],n),k=B3t(v,C.d[v.g],n),ri(r,Li(o,k)),s=v}function pgn(t,e,n,r){var s,o,h,d,v;return h=Yse(t.a,e,n),d=u(h.a,19).a,o=u(h.b,19).a,r&&(v=u(Q(e,(ae(),Ju)),10),s=u(Q(n,Ju),10),v&&s&&(tJt(t.b,v,s),d+=t.b.i,o+=t.b.e)),d>o}function qae(t){var e,n,r,s,o,h,d,v,k;for(this.a=wse(t),this.b=new he,n=t,r=0,s=n.length;rynt(t.d).c?(t.i+=t.g.c,sst(t.d)):ynt(t.d).c>ynt(t.g).c?(t.e+=t.d.c,sst(t.g)):(t.i+=mKt(t.g),t.e+=mKt(t.d),sst(t.g),sst(t.d))}function vgn(t,e,n){var r,s,o,h;for(o=e.q,h=e.r,new i2((Uf(),mb),e,o,1),new i2(mb,o,h,1),s=new S(n);s.ad&&(v=d/r),s>o&&(k=o/s),h=b.Math.min(v,k),t.a+=h*(e.a-t.a),t.b+=h*(e.b-t.b)}function kgn(t,e,n,r,s){var o,h;for(h=!1,o=u(Ne(n.b,0),33);Byn(t,e,o,r,s)&&(h=!0,e0n(n,o),n.b.c.length!=0);)o=u(Ne(n.b,0),33);return n.b.c.length==0&&sI(n.j,n),h&&nq(e.q),h}function Egn(t,e){k4();var n,r,s,o;if(e.b<2)return!1;for(o=ei(e,0),n=u(ti(o),8),r=n;o.b!=o.d.c;){if(s=u(ti(o),8),cat(t,r,s))return!0;r=s}return!!cat(t,r,n)}function $4t(t,e,n,r){var s,o;return n==0?(!t.o&&(t.o=new _l((Jc(),Sb),Hv,t,0)),Oj(t.o,e,r)):(o=u(yn((s=u(Dn(t,16),26),s||t.zh()),n),66),o.Nj().Rj(t,su(t),n-Jn(t.zh()),e,r))}function Hst(t,e){var n;e!=t.sb?(n=null,t.sb&&(n=u(t.sb,49).ih(t,1,sA,n)),e&&(n=u(e,49).gh(t,1,sA,n)),n=t3t(t,e,n),n&&n.Fi()):t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,4,e,e))}function Tgn(t,e){var n,r,s,o;if(e)s=H0(e,"x"),n=new vzt(t),V8(n.a,(On(s),s)),o=H0(e,"y"),r=new mzt(t),U8(r.a,(On(o),o));else throw it(new ud("All edge sections need an end point."))}function Cgn(t,e){var n,r,s,o;if(e)s=H0(e,"x"),n=new pzt(t),G8(n.a,(On(s),s)),o=H0(e,"y"),r=new bzt(t),W8(r.a,(On(o),o));else throw it(new ud("All edge sections need a start point."))}function _gn(t,e){var n,r,s,o,h,d,v;for(r=Are(t),o=0,d=r.length;o>22-e,s=t.h<>22-e):e<44?(n=0,r=t.l<>44-e):(n=0,r=0,s=t.l<t)throw it(new Fn("k must be smaller than n"));return e==0||e==t?1:t==0?0:g4t(t)/(g4t(e)*g4t(t-e))}function z4t(t,e){var n,r,s,o;for(n=new l2t(t);n.g==null&&!n.c?Hvt(n):n.g==null||n.i!=0&&u(n.g[n.i-1],47).Ob();)if(o=u(wq(n),56),_t(o,160))for(r=u(o,160),s=0;s>4],e[n*2+1]=yU[o&15];return Mh(e,0,e.length)}function Hgn(t){c$();var e,n,r;switch(r=t.c.length,r){case 0:return Age;case 1:return e=u(Ioe(new S(t)),42),den(e.cd(),e.dd());default:return n=u(P1(t,Nt(P2,Hq,42,t.c.length,0,1)),165),new uet(n)}}function Vgn(t){var e,n,r,s,o,h;for(e=new B3,n=new B3,Up(e,t),Up(n,t);n.b!=n.c;)for(s=u(Hx(n),37),h=new S(s.a);h.a0&&kI(t,n,e),s):_bn(t,e,n)}function Xae(t,e,n){var r,s,o,h;if(e.b!=0){for(r=new Zi,h=ei(e,0);h.b!=h.d.c;)o=u(ti(h),86),Ua(r,Eyt(o)),s=o.e,s.a=u(Q(o,(fc(),$ht)),19).a,s.b=u(Q(o,o_t),19).a;Xae(t,r,Rc(n,r.b/t.a|0))}}function Qae(t,e){var n,r,s,o,h;if(t.e<=e||Zin(t,t.g,e))return t.g;for(o=t.r,r=t.g,h=t.r,s=(o-r)/2+r;r+11&&(t.e.b+=t.a)):(t.e.a+=n.a,t.e.b=b.Math.max(t.e.b,n.b),t.d.c.length>1&&(t.e.a+=t.a))}function Kgn(t){var e,n,r,s;switch(s=t.i,e=s.b,r=s.j,n=s.g,s.a.g){case 0:n.a=(t.g.b.o.a-r.a)/2;break;case 1:n.a=e.d.n.a+e.d.a.a;break;case 2:n.a=e.d.n.a+e.d.a.a-r.a;break;case 3:n.b=e.d.n.b+e.d.a.b}}function Zae(t,e,n,r,s){if(rr&&(t.a=r),t.bs&&(t.b=s),t}function Xgn(t){if(_t(t,149))return Cwn(u(t,149));if(_t(t,229))return khn(u(t,229));if(_t(t,23))return Lgn(u(t,23));throw it(new Fn(L8t+eb(new yl(lt(ct(Qn,1),De,1,5,[t])))))}function Qgn(t,e,n,r,s){var o,h,d;for(o=!0,h=0;h>>s|n[h+r+1]<>>s,++h}return o}function G4t(t,e,n,r){var s,o,h;if(e.k==(Vn(),ta)){for(o=new ar(lr(jo(e).a.Kc(),new z));zr(o);)if(s=u(Mr(o),17),h=s.c.i.k,h==ta&&t.c.a[s.c.i.c.p]==r&&t.c.a[e.c.p]==n)return!0}return!1}function Zgn(t,e){var n,r,s,o;return e&=63,n=t.h&Z0,e<22?(o=n>>>e,s=t.m>>e|n<<22-e,r=t.l>>e|t.m<<22-e):e<44?(o=0,s=n>>>e-22,r=t.m>>e-22|t.h<<44-e):(o=0,s=0,r=n>>>e-44),iu(r&hl,s&hl,o&Z0)}function Jae(t,e,n,r){var s;this.b=r,this.e=t==(ev(),FS),s=e[n],this.d=t2(pl,[ee,o0],[177,25],16,[s.length,s.length],2),this.a=t2(Cr,[ee,Xr],[48,25],15,[s.length,s.length],2),this.c=new S4t(e,n)}function Jgn(t){var e,n,r;for(t.k=new Wvt((ve(),lt(ct(Xa,1),xc,61,0,[Zo,Pn,Hn,mr,Bn])).length,t.j.c.length),r=new S(t.j);r.a=n)return EE(t,e,r.p),!0;return!1}function eoe(t){var e;return t.Db&64?Vst(t):(e=new Ol(v8t),!t.a||Gr(Gr((e.a+=' "',e),t.a),'"'),Gr(Aw(Gr(Aw(Gr(Aw(Gr(Aw((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function noe(t,e,n){var r,s,o,h,d;for(d=ou(t.e.Tg(),e),s=u(t.g,119),r=0,h=0;hn?J4t(t,n,"start index"):e<0||e>n?J4t(e,n,"end index"):y_("end index (%s) must not be less than start index (%s)",lt(ct(Qn,1),De,1,5,[pe(e),pe(t)]))}function ioe(t,e){var n,r,s,o;for(r=0,s=t.length;r0&&soe(t,o,n));e.p=0}function Xe(t){var e;this.c=new Zi,this.f=t.e,this.e=t.d,this.i=t.g,this.d=t.c,this.b=t.b,this.k=t.j,this.a=t.a,t.i?this.j=t.i:this.j=(e=u(Vf(ip),9),new sh(e,u(ff(e,e.length),9),0)),this.g=t.f}function spn(t){var e,n,r,s;for(e=qp(Gr(new Ol("Predicates."),"and"),40),n=!0,s=new mx(t);s.b0?d[h-1]:Nt(l0,Yg,10,0,0,1),s=d[h],k=h=0?t.Bh(s):i5t(t,r);else throw it(new Fn(lb+r.ne()+X_));else throw it(new Fn(Bde+e+Rde));else fh(t,n,r)}function U4t(t){var e,n;if(n=null,e=!1,_t(t,204)&&(e=!0,n=u(t,204).a),e||_t(t,258)&&(e=!0,n=""+u(t,258).a),e||_t(t,483)&&(e=!0,n=""+u(t,483).a),!e)throw it(new fet(A8t));return n}function uoe(t,e){var n,r;if(t.f){for(;e.Ob();)if(n=u(e.Pb(),72),r=n.ak(),_t(r,99)&&u(r,18).Bb&dc&&(!t.e||r.Gj()!=j7||r.aj()!=0)&&n.dd()!=null)return e.Ub(),!0;return!1}else return e.Ob()}function loe(t,e){var n,r;if(t.f){for(;e.Sb();)if(n=u(e.Ub(),72),r=n.ak(),_t(r,99)&&u(r,18).Bb&dc&&(!t.e||r.Gj()!=j7||r.aj()!=0)&&n.dd()!=null)return e.Pb(),!0;return!1}else return e.Sb()}function W4t(t,e,n){var r,s,o,h,d,v;for(v=ou(t.e.Tg(),e),r=0,d=t.i,s=u(t.g,119),h=0;h1&&(e.c[e.c.length]=o))}function upn(t){var e,n,r,s;for(n=new Zi,Ua(n,t.o),r=new qpt;n.b!=0;)e=u(n.b==0?null:(Zn(n.b!=0),lh(n,n.a.a)),508),s=Hhe(t,e,!0),s&&le(r.a,e);for(;r.a.c.length!=0;)e=u(Nre(r),508),Hhe(t,e,!1)}function Ug(){Ug=Z,_St=new Ox(N_,0),La=new Ox("BOOLEAN",1),gc=new Ox("INT",2),I7=new Ox("STRING",3),Oo=new Ox("DOUBLE",4),us=new Ox("ENUM",5),U6=new Ox("ENUMSET",6),V1=new Ox("OBJECT",7)}function g_(t,e){var n,r,s,o,h;r=b.Math.min(t.c,e.c),o=b.Math.min(t.d,e.d),s=b.Math.max(t.c+t.b,e.c+e.b),h=b.Math.max(t.d+t.a,e.d+e.a),s=(s/2|0))for(this.e=r?r.c:null,this.d=s;n++0;)Vvt(this);this.b=e,this.a=null}function fpn(t,e){var n,r;e.a?Fwn(t,e):(n=u(Cnt(t.b,e.b),57),n&&n==t.a[e.b.f]&&n.a&&n.a!=e.b.a&&n.c.Fc(e.b),r=u(Tnt(t.b,e.b),57),r&&t.a[r.f]==e.b&&r.a&&r.a!=e.b.a&&e.b.c.Fc(r),fnt(t.b,e.b))}function foe(t,e){var n,r;if(n=u(po(t.b,e),124),u(u(Ai(t.r,e),21),84).dc()){n.n.b=0,n.n.c=0;return}n.n.b=t.C.b,n.n.c=t.C.c,t.A.Hc((Al(),K2))&&Nue(t,e),r=qfn(t,e),lat(t,e)==(l4(),Eb)&&(r+=2*t.w),n.a.a=r}function doe(t,e){var n,r;if(n=u(po(t.b,e),124),u(u(Ai(t.r,e),21),84).dc()){n.n.d=0,n.n.a=0;return}n.n.d=t.C.d,n.n.a=t.C.a,t.A.Hc((Al(),K2))&&Bue(t,e),r=Hfn(t,e),lat(t,e)==(l4(),Eb)&&(r+=2*t.w),n.a.b=r}function dpn(t,e){var n,r,s,o;for(o=new he,r=new S(e);r.an.a&&(r.Hc((hy(),WO))?s=(e.a-n.a)/2:r.Hc(YO)&&(s=e.a-n.a)),e.b>n.b&&(r.Hc((hy(),XO))?o=(e.b-n.b)/2:r.Hc(KO)&&(o=e.b-n.b)),F4t(t,s,o)}function xoe(t,e,n,r,s,o,h,d,v,k,C,M,j){_t(t.Cb,88)&&gy(sl(u(t.Cb,88)),4),Qc(t,n),t.f=h,hE(t,d),dE(t,v),lE(t,k),fE(t,C),qg(t,M),gE(t,j),zg(t,!0),Rg(t,s),t.ok(o),b2(t,e),r!=null&&(t.i=null,fz(t,r))}function koe(t){var e,n;if(t.f){for(;t.n>0;){if(e=u(t.k.Xb(t.n-1),72),n=e.ak(),_t(n,99)&&u(n,18).Bb&dc&&(!t.e||n.Gj()!=j7||n.aj()!=0)&&e.dd()!=null)return!0;--t.n}return!1}else return t.n>0}function J4t(t,e,n){if(t<0)return y_(afe,lt(ct(Qn,1),De,1,5,[n,pe(t)]));if(e<0)throw it(new Fn(ofe+e));return y_("%s (%s) must not be greater than size (%s)",lt(ct(Qn,1),De,1,5,[n,pe(t),pe(e)]))}function t5t(t,e,n,r,s,o){var h,d,v,k;if(h=r-n,h<7){hhn(e,n,r,o);return}if(v=n+s,d=r+s,k=v+(d-v>>1),t5t(e,t,v,k,-s,o),t5t(e,t,k,d,-s,o),o.ue(t[k-1],t[k])<=0){for(;n=0?t.sh(o,n):M5t(t,s,n);else throw it(new Fn(lb+s.ne()+X_));else throw it(new Fn(Bde+e+Rde));else gh(t,r,s,n)}function Eoe(t){var e,n,r,s;if(n=u(t,49).qh(),n)try{if(r=null,e=_E((Pp(),Yh),sle(ghn(n))),e&&(s=e.rh(),s&&(r=s.Wk(kKe(n.e)))),r&&r!=t)return Eoe(r)}catch(o){if(o=Wi(o),!_t(o,60))throw it(o)}return t}function au(t,e,n){var r,s,o,h;if(h=e==null?0:t.b.se(e),s=(r=t.a.get(h),r??new Array),s.length==0)t.a.set(h,s);else if(o=jre(t,e,s),o)return o.ed(n);return ts(s,s.length,new KR(e,n)),++t.c,w$(t.b),null}function Toe(t,e){var n,r;return L$(t.a),Kd(t.a,(pz(),FG),FG),Kd(t.a,D7,D7),r=new Vs,bi(r,D7,(Nz(),Ght)),Vt(qe(e,(uy(),Yht)))!==Vt((HD(),NG))&&bi(r,D7,Hht),bi(r,D7,Vht),TUt(t.a,r),n=Fq(t.a,e),n}function Coe(t){if(!t)return cHt(),Bge;var e=t.valueOf?t.valueOf():t;if(e!==t){var n=Put[typeof e];return n?n(e):Uyt(typeof e)}else return t instanceof Array||t instanceof b.Array?new wx(t):new Qk(t)}function _oe(t,e,n){var r,s,o;switch(o=t.o,r=u(po(t.p,n),244),s=r.i,s.b=gI(r),s.a=dI(r),s.b=b.Math.max(s.b,o.a),s.b>o.a&&!e&&(s.b=o.a),s.c=-(s.b-o.a)/2,n.g){case 1:s.d=-s.a;break;case 3:s.d=o.b}Eat(r),Tat(r)}function Soe(t,e,n){var r,s,o;switch(o=t.o,r=u(po(t.p,n),244),s=r.i,s.b=gI(r),s.a=dI(r),s.a=b.Math.max(s.a,o.b),s.a>o.b&&!e&&(s.a=o.b),s.d=-(s.a-o.b)/2,n.g){case 4:s.c=-s.b;break;case 2:s.c=o.a}Eat(r),Tat(r)}function Apn(t,e){var n,r,s,o,h;if(!e.dc()){if(s=u(e.Xb(0),128),e.gc()==1){tue(t,s,s,1,0,e);return}for(n=1;n0)try{s=ql(e,Sa,wi)}catch(o){throw o=Wi(o),_t(o,127)?(r=o,it(new W$(r))):it(o)}return n=(!t.a&&(t.a=new Ztt(t)),t.a),s=0?u(At(n,s),56):null}function Ipn(t,e){if(t<0)return y_(afe,lt(ct(Qn,1),De,1,5,["index",pe(t)]));if(e<0)throw it(new Fn(ofe+e));return y_("%s (%s) must be less than size (%s)",lt(ct(Qn,1),De,1,5,["index",pe(t),pe(e)]))}function Opn(t){var e,n,r,s,o;if(t==null)return _u;for(o=new f2(Ya,"[","]"),n=t,r=0,s=n.length;r0)for(h=t.c.d,d=t.d.d,s=fd(ia(new $e(d.a,d.b),h),1/(r+1)),o=new $e(h.a,h.b),n=new S(t.a);n.a=0?t._g(n,!0,!0):dv(t,s,!0),153)),u(r,215).ol(e);else throw it(new Fn(lb+e.ne()+X_))}function s5t(t){var e,n;return t>-0x800000000000&&t<0x800000000000?t==0?0:(e=t<0,e&&(t=-t),n=ps(b.Math.floor(b.Math.log(t)/.6931471805599453)),(!e||t!=b.Math.pow(2,n))&&++n,n):Jne(Tu(t))}function Upn(t){var e,n,r,s,o,h,d;for(o=new O0,n=new S(t);n.a2&&d.e.b+d.j.b<=2&&(s=d,r=h),o.a.zc(s,o),s.q=r);return o}function Foe(t,e){var n,r,s;return r=new Y0(t),Mo(r,e),Jt(r,(ae(),eG),e),Jt(r,(Te(),cs),(ua(),Gc)),Jt(r,Id,(t0(),UG)),D0(r,(Vn(),ks)),n=new Mc,Uo(n,r),Bs(n,(ve(),Bn)),s=new Mc,Uo(s,r),Bs(s,Hn),r}function Noe(t){switch(t.g){case 0:return new det((ev(),RO));case 1:return new VB;case 2:return new ltt;default:throw it(new Fn("No implementation is available for the crossing minimizer "+(t.f!=null?t.f:""+t.g)))}}function Boe(t,e){var n,r,s,o,h;for(t.c[e.p]=!0,le(t.a,e),h=new S(e.j);h.a=o)h.$b();else for(s=h.Kc(),r=0;r0?rbt():h<0&&zoe(t,e,-h),!0):!1}function dI(t){var e,n,r,s,o,h,d;if(d=0,t.b==0){for(h=Ese(t,!0),e=0,r=h,s=0,o=r.length;s0&&(d+=n,++e);e>1&&(d+=t.c*(e-1))}else d=bHt(Sne(l$(Ri(Qnt(t.a),new Ml),new ha)));return d>0?d+t.n.d+t.n.a:0}function gI(t){var e,n,r,s,o,h,d;if(d=0,t.b==0)d=bHt(Sne(l$(Ri(Qnt(t.a),new th),new Fa)));else{for(h=Tse(t,!0),e=0,r=h,s=0,o=r.length;s0&&(d+=n,++e);e>1&&(d+=t.c*(e-1))}return d>0?d+t.n.b+t.n.c:0}function tbn(t,e){var n,r,s,o;for(o=u(po(t.b,e),124),n=o.a,s=u(u(Ai(t.r,e),21),84).Kc();s.Ob();)r=u(s.Pb(),111),r.c&&(n.a=b.Math.max(n.a,Vwt(r.c)));if(n.a>0)switch(e.g){case 2:o.n.c=t.s;break;case 4:o.n.b=t.s}}function ebn(t,e){var n,r,s;return n=u(Q(e,(Jf(),c7)),19).a-u(Q(t,c7),19).a,n==0?(r=ia(nc(u(Q(t,(Yp(),vO)),8)),u(Q(t,dS),8)),s=ia(nc(u(Q(e,vO),8)),u(Q(e,dS),8)),Ms(r.a*r.b,s.a*s.b)):n}function nbn(t,e){var n,r,s;return n=u(Q(e,(gv(),PG)),19).a-u(Q(t,PG),19).a,n==0?(r=ia(nc(u(Q(t,(fc(),zO)),8)),u(Q(t,$S),8)),s=ia(nc(u(Q(e,zO),8)),u(Q(e,$S),8)),Ms(r.a*r.b,s.a*s.b)):n}function qoe(t){var e,n;return n=new Mp,n.a+="e_",e=hun(t),e!=null&&(n.a+=""+e),t.c&&t.d&&(Gr((n.a+=" ",n),iq(t.c)),Gr(hc((n.a+="[",n),t.c.i),"]"),Gr((n.a+=Uot,n),iq(t.d)),Gr(hc((n.a+="[",n),t.d.i),"]")),n.a}function Hoe(t){switch(t.g){case 0:return new ZL;case 1:return new ctt;case 2:return new ott;case 3:return new GB;default:throw it(new Fn("No implementation is available for the layout phase "+(t.f!=null?t.f:""+t.g)))}}function o5t(t,e,n,r,s){var o;switch(o=0,s.g){case 1:o=b.Math.max(0,e.b+t.b-(n.b+r));break;case 3:o=b.Math.max(0,-t.b-r);break;case 2:o=b.Math.max(0,-t.a-r);break;case 4:o=b.Math.max(0,e.a+t.a-(n.a+r))}return o}function rbn(t,e,n){var r,s,o,h,d;if(n)for(s=n.a.length,r=new e2(s),d=(r.b-r.a)*r.c<0?(Fp(),Ib):new jp(r);d.Ob();)h=u(d.Pb(),19),o=P8(n,h.a),k8t in o.a||nut in o.a?gmn(t,o,e):yxn(t,o,e),zQe(u(tr(t.b,pE(o)),79))}function c5t(t){var e,n;switch(t.b){case-1:return!0;case 0:return n=t.t,n>1||n==-1?(t.b=-1,!0):(e=Dh(t),e&&(to(),e.Cj()==j0e)?(t.b=-1,!0):(t.b=1,!1));default:case 1:return!1}}function ibn(t,e){var n,r,s,o,h;for(r=(!e.s&&(e.s=new fe(Mu,e,21,17)),e.s),o=null,s=0,h=r.i;s=0&&r=0?t._g(n,!0,!0):dv(t,s,!0),153)),u(r,215).ll(e);throw it(new Fn(lb+e.ne()+Wct))}function ubn(){Tbt();var t;return T5e?u(_E((Pp(),Yh),Bh),1939):(ii(P2,new jf),V4n(),t=u(_t(Nc((Pp(),Yh),Bh),547)?Nc(Yh,Bh):new LXt,547),T5e=!0,$xn(t),Gxn(t),ki((Ebt(),sLt),t,new oJ),ko(Yh,Bh,t),t)}function lbn(t,e){var n,r,s,o;t.j=-1,xl(t.e)?(n=t.i,o=t.i!=0,gD(t,e),r=new z0(t.e,3,t.c,null,e,n,o),s=e.Qk(t.e,t.c,null),s=xae(t,e,s),s?(s.Ei(r),s.Fi()):mi(t.e,r)):(gD(t,e),s=e.Qk(t.e,t.c,null),s&&s.Fi())}function gq(t,e){var n,r,s;if(s=0,r=e[0],r>=t.length)return-1;for(n=(Rr(r,t.length),t.charCodeAt(r));n>=48&&n<=57&&(s=s*10+(n-48),++r,!(r>=t.length));)n=(Rr(r,t.length),t.charCodeAt(r));return r>e[0]?e[0]=r:s=-1,s}function hbn(t){var e,n,r,s,o;return s=u(t.a,19).a,o=u(t.b,19).a,n=s,r=o,e=b.Math.max(b.Math.abs(s),b.Math.abs(o)),s<=0&&s==o?(n=0,r=o-1):s==-e&&o!=e?(n=o,r=s,o>=0&&++n):(n=-o,r=s),new fa(pe(n),pe(r))}function fbn(t,e,n,r){var s,o,h,d,v,k;for(s=0;s=0&&k>=0&&v=t.i)throw it(new yo(iut+e+D2+t.i));if(n>=t.i)throw it(new yo(sut+n+D2+t.i));return r=t.g[n],e!=n&&(e>16),e=r>>16&16,n=16-e,t=t>>e,r=t-256,e=r>>16&8,n+=e,t<<=e,r=t-Ey,e=r>>16&4,n+=e,t<<=e,r=t-md,e=r>>16&2,n+=e,t<<=e,r=t>>14,e=r&~(r>>1),n+2-e)}function gbn(t){Ux();var e,n,r,s;for(dV=new he,Jut=new _r,Zut=new he,e=(!t.a&&(t.a=new fe(rs,t,10,11)),t.a),U5n(e),s=new nr(e);s.e!=s.i.gc();)r=u(dr(s),33),Ro(dV,r,0)==-1&&(n=new he,le(Zut,n),ese(r,n));return Zut}function pbn(t,e,n){var r,s,o,h;t.a=n.b.d,_t(e,352)?(s=x4(u(e,79),!1,!1),o=lI(s),r=new Ea(t),va(o,r),CI(o,s),e.We((ui(),a5))!=null&&va(u(e.We(a5),74),r)):(h=u(e,470),h.Hg(h.Dg()+t.a.a),h.Ig(h.Eg()+t.a.b))}function Goe(t,e){var n,r,s,o,h,d,v,k;for(k=Xt(ye(Q(e,(Te(),LS)))),v=t[0].n.a+t[0].o.a+t[0].d.c+k,d=1;d=0?n:(d=D9(ia(new $e(h.c+h.b/2,h.d+h.a/2),new $e(o.c+o.b/2,o.d+o.a/2))),-(dle(o,h)-1)*d)}function wbn(t,e,n){var r;ls(new Tn(null,(!n.a&&(n.a=new fe(Ji,n,6,6)),new _n(n.a,16))),new LGt(t,e)),ls(new Tn(null,(!n.n&&(n.n=new fe(qo,n,1,7)),new _n(n.n,16))),new MGt(t,e)),r=u(qe(n,(ui(),a5)),74),r&&dyt(r,t,e)}function dv(t,e,n){var r,s,o;if(o=C4(($u(),ya),t.Tg(),e),o)return to(),u(o,66).Oj()||(o=Kx(To(ya,o))),s=(r=t.Yg(o),u(r>=0?t._g(r,!0,!0):dv(t,o,!0),153)),u(s,215).hl(e,n);throw it(new Fn(lb+e.ne()+Wct))}function l5t(t,e,n,r){var s,o,h,d,v;if(s=t.d[e],s){if(o=s.g,v=s.i,r!=null){for(d=0;d=n&&(r=e,k=(v.c+v.a)/2,h=k-n,v.c<=k-n&&(s=new Dnt(v.c,h),Hm(t,r++,s)),d=k+n,d<=v.a&&(o=new Dnt(d,v.a),Km(r,t.c.length),XC(t.c,r,o)))}function h5t(t){var e;if(!t.c&&t.g==null)t.d=t.si(t.f),Dr(t,t.d),e=t.d;else{if(t.g==null)return!0;if(t.i==0)return!1;e=u(t.g[t.i-1],47)}return e==t.b&&null.km>=null.jm()?(wq(t),h5t(t)):e.Ob()}function xbn(t,e,n){var r,s,o,h,d;if(d=n,!d&&(d=qwt(new r8,0)),vr(d,c1e,1),dhe(t.c,e),h=F4n(t.a,e),h.gc()==1)Kle(u(h.Xb(0),37),d);else for(o=1/h.gc(),s=h.Kc();s.Ob();)r=u(s.Pb(),37),Kle(r,Rc(d,o));LKe(t.a,h,e),Fvn(e),or(d)}function Yoe(t){if(this.a=t,t.c.i.k==(Vn(),ks))this.c=t.c,this.d=u(Q(t.c.i,(ae(),oc)),61);else if(t.d.i.k==ks)this.c=t.d,this.d=u(Q(t.d.i,(ae(),oc)),61);else throw it(new Fn("Edge "+t+" is not an external edge."))}function Koe(t,e){var n,r,s;s=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,3,s,t.b)),e?e!=t&&(Qc(t,e.zb),hit(t,e.d),n=(r=e.c,r??e.zb),dit(t,n==null||hn(n,e.zb)?null:n)):(Qc(t,null),hit(t,0),dit(t,null))}function Xoe(t){var e,n;if(t.f){for(;t.n=h)throw it(new qm(e,h));return s=n[e],h==1?r=null:(r=Nt(Fft,lut,415,h-1,0,1),Dc(n,0,r,0,e),o=h-e-1,o>0&&Dc(n,e+1,r,e,o)),bE(t,r),moe(t,e,s),s}function d6(){d6=Z,tk=u(At(Wt((fbt(),pc).qb),6),34),J6=u(At(Wt(pc.qb),3),34),zft=u(At(Wt(pc.qb),4),34),qft=u(At(Wt(pc.qb),5),18),cq(tk),cq(J6),cq(zft),cq(qft),A5e=new yl(lt(ct(Mu,1),B4,170,0,[tk,J6]))}function tce(t,e){var n;this.d=new OC,this.b=e,this.e=new xo(e.qf()),n=t.u.Hc((Zu(),sP)),t.u.Hc(sg)?t.D?this.a=n&&!e.If():this.a=!0:t.u.Hc(Cb)?n?this.a=!(e.zf().Kc().Ob()||e.Bf().Kc().Ob()):this.a=!1:this.a=!1}function ece(t,e){var n,r,s,o;for(n=t.o.a,o=u(u(Ai(t.r,e),21),84).Kc();o.Ob();)s=u(o.Pb(),111),s.e.a=(r=s.b,r.Xe((ui(),dl))?r.Hf()==(ve(),Bn)?-r.rf().a-Xt(ye(r.We(dl))):n+Xt(ye(r.We(dl))):r.Hf()==(ve(),Bn)?-r.rf().a:n)}function nce(t,e){var n,r,s,o;n=u(Q(t,(Te(),Wl)),103),o=u(qe(e,C7),61),s=u(Q(t,cs),98),s!=(ua(),G1)&&s!=Tb?o==(ve(),Zo)&&(o=uxt(e,n),o==Zo&&(o=a6(n))):(r=Yle(e),r>0?o=a6(n):o=YD(a6(n))),wo(e,C7,o)}function Cbn(t,e){var n,r,s,o,h;for(h=t.j,e.a!=e.b&&Zs(h,new ex),s=h.c.length/2|0,r=0;r0&&kI(t,n,e),o):r.a!=null?(kI(t,e,n),-1):s.a!=null?(kI(t,n,e),1):0}function rce(t,e){var n,r,s,o;t.ej()?(n=t.Vi(),o=t.fj(),++t.j,t.Hi(n,t.oi(n,e)),r=t.Zi(3,null,e,n,o),t.bj()?(s=t.cj(e,null),s?(s.Ei(r),s.Fi()):t.$i(r)):t.$i(r)):(mXt(t,e),t.bj()&&(s=t.cj(e,null),s&&s.Fi()))}function pq(t,e){var n,r,s,o,h;for(h=ou(t.e.Tg(),e),s=new ox,n=u(t.g,119),o=t.i;--o>=0;)r=n[o],h.rl(r.ak())&&Dr(s,r);!Uhe(t,s)&&xl(t.e)&&n8(t,e.$j()?Gp(t,6,e,(wn(),io),null,-1,!1):Gp(t,e.Kj()?2:1,e,null,null,-1,!1))}function TE(){TE=Z;var t,e;for(D6=Nt(j4,ee,91,32,0,1),lS=Nt(j4,ee,91,32,0,1),t=1,e=0;e<=18;e++)D6[e]=JD(t),lS[e]=JD(F0(t,e)),t=_a(t,5);for(;eh)||e.q&&(r=e.C,h=r.c.c.a-r.o.a/2,s=r.n.a-n,s>h)))}function Abn(t,e){var n;vr(e,"Partition preprocessing",1),n=u(Bl(Ri(Wo(Ri(new Tn(null,new _n(t.a,16)),new QK),new wN),new Z5),c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[(O1(),Ul)]))),15),ls(n.Oc(),new vN),or(e)}function ice(t){_rt();var e,n,r,s,o,h,d;for(n=new a2,s=new S(t.e.b);s.a1?t.e*=Xt(t.a):t.f/=Xt(t.a),uln(t),gfn(t),Xvn(t),Jt(t.b,(o_(),fV),t.g)}function cce(t,e,n){var r,s,o,h,d,v;for(r=0,v=n,e||(r=n*(t.c.length-1),v*=-1),o=new S(t);o.a=0?(e||(e=new $C,r>0&&go(e,t.substr(0,r))),e.a+="\\",S8(e,n&ys)):e&&S8(e,n&ys);return e?e.a:t}function Bbn(t){var e;if(!t.a)throw it(new No("IDataType class expected for layout option "+t.f));if(e=Gsn(t.a),e==null)throw it(new No("Couldn't create new instance of property '"+t.f+"'. "+ade+(P0(gP),gP.k)+d8t));return u(e,414)}function eat(t){var e,n,r,s,o;return o=t.eh(),o&&o.kh()&&(s=Zp(t,o),s!=o)?(n=t.Vg(),r=(e=t.Vg(),e>=0?t.Qg(null):t.eh().ih(t,-1-e,null,null)),t.Rg(u(s,49),n),r&&r.Fi(),t.Lg()&&t.Mg()&&n>-1&&mi(t,new Js(t,9,n,o,s)),s):o}function dce(t){var e,n,r,s,o,h,d,v;for(h=0,o=t.f.e,r=0;r>5,s>=t.d)return t.e<0;if(n=t.a[s],e=1<<(e&31),t.e<0){if(r=Ine(t),s>16)),15).Xc(o),d0&&(!(Bp(t.a.c)&&e.n.d)&&!(b8(t.a.c)&&e.n.b)&&(e.g.d+=b.Math.max(0,r/2-.5)),!(Bp(t.a.c)&&e.n.a)&&!(b8(t.a.c)&&e.n.c)&&(e.g.a-=r-1))}function bce(t){var e,n,r,s,o;if(s=new he,o=ule(t,s),e=u(Q(t,(ae(),Ju)),10),e)for(r=new S(e.j);r.a>e,o=t.m>>e|n<<22-e,s=t.l>>e|t.m<<22-e):e<44?(h=r?Z0:0,o=n>>e-22,s=t.m>>e-22|n<<44-e):(h=r?Z0:0,o=r?hl:0,s=n>>e-44),iu(s&hl,o&hl,h&Z0)}function nat(t){var e,n,r,s,o,h;for(this.c=new he,this.d=t,r=as,s=as,e=Cs,n=Cs,h=ei(t,0);h.b!=h.d.c;)o=u(ti(h),8),r=b.Math.min(r,o.a),s=b.Math.min(s,o.b),e=b.Math.max(e,o.a),n=b.Math.max(n,o.b);this.a=new ah(r,s,e-r,n-s)}function mce(t,e){var n,r,s,o,h,d;for(o=new S(t.b);o.a0&&_t(e,42)&&(t.a.qj(),k=u(e,42),v=k.cd(),o=v==null?0:Hi(v),h=rwt(t.a,o),n=t.a.d[h],n)){for(r=u(n.g,367),C=n.i,d=0;d=2)for(n=s.Kc(),e=ye(n.Pb());n.Ob();)o=e,e=ye(n.Pb()),r=b.Math.min(r,(On(e),e-(On(o),o)));return r}function Ybn(t,e){var n,r,s,o,h;r=new Zi,fs(r,e,r.c.b,r.c);do for(n=(Zn(r.b!=0),u(lh(r,r.a.a),86)),t.b[n.g]=1,o=ei(n.d,0);o.b!=o.d.c;)s=u(ti(o),188),h=s.c,t.b[h.g]==1?ri(t.a,s):t.b[h.g]==2?t.b[h.g]=1:fs(r,h,r.c.b,r.c);while(r.b!=0)}function Kbn(t,e){var n,r,s;if(Vt(e)===Vt(Lr(t)))return!0;if(!_t(e,15)||(r=u(e,15),s=t.gc(),s!=r.gc()))return!1;if(_t(r,54)){for(n=0;n0&&(s=n),h=new S(t.f.e);h.a0?(e-=1,n-=1):r>=0&&s<0?(e+=1,n+=1):r>0&&s>=0?(e-=1,n+=1):(e+=1,n-=1),new fa(pe(e),pe(n))}function d2n(t,e){return t.ce.c?1:t.be.b?1:t.a!=e.a?Hi(t.a)-Hi(e.a):t.d==($9(),BS)&&e.d==NS?-1:t.d==NS&&e.d==BS?1:0}function _ce(t,e){var n,r,s,o,h;return o=e.a,o.c.i==e.b?h=o.d:h=o.c,o.c.i==e.b?r=o.c:r=o.d,s=zhn(t.a,h,r),s>0&&s0):s<0&&-s0):!1}function g2n(t,e,n,r){var s,o,h,d,v,k,C,M;for(s=(e-t.d)/t.c.c.length,o=0,t.a+=n,t.d=e,M=new S(t.c);M.a>24;return h}function b2n(t){if(t.pe()){var e=t.c;e.qe()?t.o="["+e.n:e.pe()?t.o="["+e.ne():t.o="[L"+e.ne()+";",t.b=e.me()+"[]",t.k=e.oe()+"[]";return}var n=t.j,r=t.d;r=r.split("/"),t.o=ast(".",[n,ast("$",r)]),t.b=ast(".",[n,ast(".",r)]),t.k=r[r.length-1]}function w2n(t,e){var n,r,s,o,h;for(h=null,o=new S(t.e.a);o.a=0;e-=2)for(n=0;n<=e;n+=2)(t.b[n]>t.b[n+2]||t.b[n]===t.b[n+2]&&t.b[n+1]>t.b[n+3])&&(r=t.b[n+2],t.b[n+2]=t.b[n],t.b[n]=r,r=t.b[n+3],t.b[n+3]=t.b[n+1],t.b[n+1]=r);t.c=!0}}function Sce(t,e){var n,r,s,o,h,d,v,k;for(h=e==1?clt:olt,o=h.a.ec().Kc();o.Ob();)for(s=u(o.Pb(),103),v=u(Ai(t.f.c,s),21).Kc();v.Ob();)switch(d=u(v.Pb(),46),r=u(d.b,81),k=u(d.a,189),n=k.c,s.g){case 2:case 1:r.g.d+=n;break;case 4:case 3:r.g.c+=n}}function y2n(t,e){var n,r,s,o,h,d,v,k,C;for(k=-1,C=0,h=t,d=0,v=h.length;d0&&++C;++k}return C}function mf(t){var e,n;return n=new Ol(Ip(t.gm)),n.a+="@",Gr(n,(e=Hi(t)>>>0,e.toString(16))),t.kh()?(n.a+=" (eProxyURI: ",hc(n,t.qh()),t.$g()&&(n.a+=" eClass: ",hc(n,t.$g())),n.a+=")"):t.$g()&&(n.a+=" (eClass: ",hc(n,t.$g()),n.a+=")"),n.a}function v_(t){var e,n,r,s;if(t.e)throw it(new No((P0(zut),Sot+zut.k+Aot)));for(t.d==(ao(),h0)&&Bq(t,zh),n=new S(t.a.a);n.a>24}return n}function E2n(t,e,n){var r,s,o;if(s=u(po(t.i,e),306),!s)if(s=new Aee(t.d,e,n),zx(t.i,e,s),P3t(e))jQe(t.a,e.c,e.b,s);else switch(o=lpn(e),r=u(po(t.p,o),244),o.g){case 1:case 3:s.j=!0,het(r,e.b,s);break;case 4:case 2:s.k=!0,het(r,e.c,s)}return s}function T2n(t,e,n,r){var s,o,h,d,v,k;if(d=new ox,v=ou(t.e.Tg(),e),s=u(t.g,119),to(),u(e,66).Oj())for(h=0;h=0)return s;for(o=1,d=new S(e.j);d.a0&&e.ue((An(s-1,t.c.length),u(t.c[s-1],10)),o)>0;)ch(t,s,(An(s-1,t.c.length),u(t.c[s-1],10))),--s;An(s,t.c.length),t.c[s]=o}n.a=new _r,n.b=new _r}function C2n(t,e,n){var r,s,o,h,d,v,k,C;for(C=(r=u(e.e&&e.e(),9),new sh(r,u(ff(r,r.length),9),0)),v=vy(n,"[\\[\\]\\s,]+"),o=v,h=0,d=o.length;h0&&(!(Bp(t.a.c)&&e.n.d)&&!(b8(t.a.c)&&e.n.b)&&(e.g.d-=b.Math.max(0,r/2-.5)),!(Bp(t.a.c)&&e.n.a)&&!(b8(t.a.c)&&e.n.c)&&(e.g.a+=b.Math.max(0,r-1)))}function Ice(t,e,n){var r,s;if((t.c-t.b&t.a.length-1)==2)e==(ve(),Pn)||e==Hn?(nz(u(Q9(t),15),(zl(),f0)),nz(u(Q9(t),15),kb)):(nz(u(Q9(t),15),(zl(),kb)),nz(u(Q9(t),15),f0));else for(s=new O9(t);s.a!=s.b;)r=u(Mz(s),15),nz(r,n)}function S2n(t,e){var n,r,s,o,h,d,v;for(s=x8(new Tpt(t)),d=new da(s,s.c.length),o=x8(new Tpt(e)),v=new da(o,o.c.length),h=null;d.b>0&&v.b>0&&(n=(Zn(d.b>0),u(d.a.Xb(d.c=--d.b),33)),r=(Zn(v.b>0),u(v.a.Xb(v.c=--v.b),33)),n==r);)h=n;return h}function ul(t,e){var n,r,s,o,h,d;return o=t.a*Eot+t.b*1502,d=t.b*Eot+11,n=b.Math.floor(d*$I),o+=n,d-=n*Gxt,o%=Gxt,t.a=o,t.b=d,e<=24?b.Math.floor(t.a*DEt[e]):(s=t.a*(1<=2147483648&&(r-=mot),r)}function Oce(t,e,n){var r,s,o,h;rZt(t,e)>rZt(t,n)?(r=Ko(n,(ve(),Hn)),t.d=r.dc()?0:Nnt(u(r.Xb(0),11)),h=Ko(e,Bn),t.b=h.dc()?0:Nnt(u(h.Xb(0),11))):(s=Ko(n,(ve(),Bn)),t.d=s.dc()?0:Nnt(u(s.Xb(0),11)),o=Ko(e,Hn),t.b=o.dc()?0:Nnt(u(o.Xb(0),11)))}function Pce(t){var e,n,r,s,o,h,d;if(t&&(e=t.Hh(Bh),e&&(h=Br(Xf((!e.b&&(e.b=new kl((dn(),Qa),cc,e)),e.b),"conversionDelegates")),h!=null))){for(d=new he,r=vy(h,"\\w+"),s=0,o=r.length;st.c));h++)s.a>=t.s&&(o<0&&(o=h),d=h);return v=(t.s+t.c)/2,o>=0&&(r=lmn(t,e,o,d),v=mXe((An(r,e.c.length),u(e.c[r],329))),ybn(e,r,n)),v}function sat(){sat=Z,l3e=new eo((ui(),W6),1.3),G_t=GSt,Z_t=new Ow(15),w3e=new eo(U2,Z_t),m3e=new eo(W2,15),h3e=YG,g3e=G2,p3e=c5,b3e=xb,d3e=o5,K_t=tP,v3e=Qy,Q_t=(y5t(),o3e),Y_t=s3e,X_t=a3e,J_t=c3e,U_t=i3e,W_t=KG,f3e=WSt,HO=r3e,V_t=n3e,tSt=u3e}function Ir(t,e,n){var r,s,o,h,d,v,k;for(h=(o=new lB,o),oyt(h,(On(e),e)),k=(!h.b&&(h.b=new kl((dn(),Qa),cc,h)),h.b),v=1;v0&&r4n(this,s)}function S5t(t,e,n,r,s,o){var h,d,v;if(!s[e.b]){for(s[e.b]=!0,h=r,!h&&(h=new B$),le(h.e,e),v=o[e.b].Kc();v.Ob();)d=u(v.Pb(),282),!(d.d==n||d.c==n)&&(d.c!=e&&S5t(t,d.c,e,h,s,o),d.d!=e&&S5t(t,d.d,e,h,s,o),le(h.c,d),Ls(h.d,d.b));return h}return null}function M2n(t){var e,n,r,s,o,h,d;for(e=0,s=new S(t.e);s.a=2}function D2n(t,e){var n,r,s,o;for(vr(e,"Self-Loop pre-processing",1),r=new S(t.a);r.a1||(e=ji(_f,lt(ct(lo,1),oe,93,0,[ig,Sf])),OD(k$(e,t))>1)||(r=ji(Lf,lt(ct(lo,1),oe,93,0,[d0,Hh])),OD(k$(r,t))>1))}function P2n(t,e){var n,r,s;return n=e.Hh(t.a),n&&(s=Br(Xf((!n.b&&(n.b=new kl((dn(),Qa),cc,n)),n.b),"affiliation")),s!=null)?(r=Tj(s,Cu(35)),r==-1?Uit(t,C9(t,Rl(e.Hj())),s):r==0?Uit(t,null,s.substr(1)):Uit(t,s.substr(0,r),s.substr(r+1))):null}function F2n(t){var e,n,r;try{return t==null?_u:$o(t)}catch(s){if(s=Wi(s),_t(s,102))return e=s,r=Ip(ol(t))+"@"+(n=(Gd(),$3t(t)>>>0),n.toString(16)),Efn(kun(),(d8(),"Exception during lenientFormat for "+r),e),"<"+r+" threw "+Ip(e.gm)+">";throw it(s)}}function Bce(t){switch(t.g){case 0:return new ett;case 1:return new qB;case 2:return new jVt;case 3:return new BL;case 4:return new aYt;case 5:return new ntt;default:throw it(new Fn("No implementation is available for the layerer "+(t.f!=null?t.f:""+t.g)))}}function A5t(t,e,n){var r,s,o;for(o=new S(t.t);o.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&ri(e,r.b));for(s=new S(t.i);s.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&ri(n,r.a))}function wq(t){var e,n,r,s,o;if(t.g==null&&(t.d=t.si(t.f),Dr(t,t.d),t.c))return o=t.f,o;if(e=u(t.g[t.i-1],47),s=e.Pb(),t.e=e,n=t.si(s),n.Ob())t.d=n,Dr(t,n);else for(t.d=null;!e.Ob()&&(ts(t.g,--t.i,null),t.i!=0);)r=u(t.g[t.i-1],47),e=r;return s}function N2n(t,e){var n,r,s,o,h,d;if(r=e,s=r.ak(),X0(t.e,s)){if(s.hi()&&O$(t,s,r.dd()))return!1}else for(d=ou(t.e.Tg(),s),n=u(t.g,119),o=0;o1||n>1)return 2;return e+n==1?2:0}function jce(t,e,n){var r,s,o,h,d;for(vr(n,"ELK Force",1),je(Re(qe(e,(Jf(),y7t))))||y$((r=new rr((Pm(),new Mm(e))),r)),d=pre(e),odn(d),$un(t,u(Q(d,m7t),424)),h=Ale(t.a,d),o=h.Kc();o.Ob();)s=u(o.Pb(),231),kmn(t.b,s,Rc(n,1/h.gc()));d=zhe(h),Rhe(d),or(n)}function H2n(t,e){var n,r,s,o,h;if(vr(e,"Breaking Point Processor",1),u5n(t),je(Re(Q(t,(Te(),S9t))))){for(s=new S(t.b);s.a=0?t._g(r,!0,!0):dv(t,o,!0),153)),u(s,215).ml(e,n)}else throw it(new Fn(lb+e.ne()+X_))}function W2n(t,e){var n,r,s,o,h;for(n=new he,s=Wo(new Tn(null,new _n(t,16)),new ZQ),o=Wo(new Tn(null,new _n(t,16)),new JQ),h=yon(Fan(l$(_wn(lt(ct(n6n,1),De,833,0,[s,o])),new tZ))),r=1;r=2*e&&le(n,new Dnt(h[r-1]+e,h[r]-e));return n}function Y2n(t,e,n){vr(n,"Eades radial",1),n.n&&e&&gf(n,pf(e),(Sl(),Ql)),t.d=u(qe(e,(m9(),HS)),33),t.c=Xt(ye(qe(e,(uy(),RG)))),t.e=pst(u(qe(e,qO),293)),t.a=Shn(u(qe(e,D_t),426)),t.b=Kdn(u(qe(e,M_t),340)),Ldn(t),n.n&&e&&gf(n,pf(e),(Sl(),Ql))}function K2n(t,e,n){var r,s,o,h,d,v,k,C;if(n)for(o=n.a.length,r=new e2(o),d=(r.b-r.a)*r.c<0?(Fp(),Ib):new jp(r);d.Ob();)h=u(d.Pb(),19),s=P8(n,h.a),s&&(v=Wsn(t,(k=(Sw(),C=new Gpt,C),e&&D5t(k,e),k),s),G9(v,R0(s,Ad)),lq(s,v),e5t(s,v),Lit(t,s,v))}function mq(t){var e,n,r,s,o,h;if(!t.j){if(h=new tC,e=uA,o=e.a.zc(t,e),o==null){for(r=new nr(Ao(t));r.e!=r.i.gc();)n=u(dr(r),26),s=mq(n),is(h,s),Dr(h,n);e.a.Bc(t)!=null}iy(h),t.j=new V3((u(At(Wt((Hp(),Ln).o),11),18),h.i),h.g),sl(t).b&=-33}return t.j}function X2n(t){var e,n,r,s;if(t==null)return null;if(r=$c(t,!0),s=oO.length,hn(r.substr(r.length-s,s),oO)){if(n=r.length,n==4){if(e=(Rr(0,r.length),r.charCodeAt(0)),e==43)return CLt;if(e==45)return G5e}else if(n==3)return CLt}return new Ppt(r)}function Q2n(t){var e,n,r;return n=t.l,n&n-1||(r=t.m,r&r-1)||(e=t.h,e&e-1)||e==0&&r==0&&n==0?-1:e==0&&r==0&&n!=0?tyt(n):e==0&&r!=0&&n==0?tyt(r)+22:e!=0&&r==0&&n==0?tyt(e)+44:-1}function Z2n(t,e){var n,r,s,o,h;for(vr(e,"Edge joining",1),n=je(Re(Q(t,(Te(),dht)))),s=new S(t.b);s.a1)for(s=new S(t.a);s.a0),o.a.Xb(o.c=--o.b),zm(o,s),Zn(o.b3&&Jd(t,0,e-3))}function nwn(t){var e,n,r,s;return Vt(Q(t,(Te(),qy)))===Vt((G0(),sp))?!t.e&&Vt(Q(t,DO))!==Vt((eE(),TO)):(r=u(Q(t,eht),292),s=je(Re(Q(t,nht)))||Vt(Q(t,_S))===Vt((n6(),EO)),e=u(Q(t,VCt),19).a,n=t.a.c.length,!s&&r!=(eE(),TO)&&(e==0||e>n))}function rwn(t){var e,n;for(n=0;n0);n++);if(n>0&&n0);e++);return e>0&&n>16!=6&&e){if(vE(t,e))throw it(new Fn(Q_+sce(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?r4t(t,r):t.Cb.ih(t,-1-n,null,r))),e&&(r=c6(e,t,6,r)),r=ewt(t,e,r),r&&r.Fi()}else t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,6,e,e))}function D5t(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=9&&e){if(vE(t,e))throw it(new Fn(Q_+zue(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?s4t(t,r):t.Cb.ih(t,-1-n,null,r))),e&&(r=c6(e,t,9,r)),r=nwt(t,e,r),r&&r.Fi()}else t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,9,e,e))}function oat(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=3&&e){if(vE(t,e))throw it(new Fn(Q_+$le(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?o4t(t,r):t.Cb.ih(t,-1-n,null,r))),e&&(r=c6(e,t,12,r)),r=twt(t,e,r),r&&r.Fi()}else t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,3,e,e))}function SE(t){var e,n,r,s,o;if(r=Dh(t),o=t.j,o==null&&r)return t.$j()?null:r.zj();if(_t(r,148)){if(n=r.Aj(),n&&(s=n.Nh(),s!=t.i)){if(e=u(r,148),e.Ej())try{t.g=s.Kh(e,o)}catch(h){if(h=Wi(h),_t(h,78))t.g=null;else throw it(h)}t.i=s}return t.g}return null}function qce(t){var e;return e=new he,le(e,new Dx(new $e(t.c,t.d),new $e(t.c+t.b,t.d))),le(e,new Dx(new $e(t.c,t.d),new $e(t.c,t.d+t.a))),le(e,new Dx(new $e(t.c+t.b,t.d+t.a),new $e(t.c+t.b,t.d))),le(e,new Dx(new $e(t.c+t.b,t.d+t.a),new $e(t.c,t.d+t.a))),e}function Hce(t,e,n,r){var s,o,h;if(h=p4t(e,n),r.c[r.c.length]=e,t.j[h.p]==-1||t.j[h.p]==2||t.a[e.p])return r;for(t.j[h.p]=-1,o=new ar(lr(U0(h).a.Kc(),new z));zr(o);)if(s=u(Mr(o),17),!(!(!Ga(s)&&!(!Ga(s)&&s.c.i.c==s.d.i.c))||s==e))return Hce(t,s,h,r);return r}function iwn(t,e,n){var r,s,o;for(o=e.a.ec().Kc();o.Ob();)s=u(o.Pb(),79),r=u(tr(t.b,s),266),!r&&(es(e0(s))==es(tb(s))?mvn(t,s,n):e0(s)==es(tb(s))?tr(t.c,s)==null&&tr(t.b,tb(s))!=null&&khe(t,s,n,!1):tr(t.d,s)==null&&tr(t.b,e0(s))!=null&&khe(t,s,n,!0))}function swn(t,e){var n,r,s,o,h,d,v;for(s=t.Kc();s.Ob();)for(r=u(s.Pb(),10),d=new Mc,Uo(d,r),Bs(d,(ve(),Hn)),Jt(d,(ae(),nG),(Nn(),!0)),h=e.Kc();h.Ob();)o=u(h.Pb(),10),v=new Mc,Uo(v,o),Bs(v,Bn),Jt(v,nG,!0),n=new Vw,Jt(n,nG,!0),Oa(n,d),oa(n,v)}function awn(t,e,n,r){var s,o,h,d;s=Rie(t,e,n),o=Rie(t,n,e),h=u(tr(t.c,e),112),d=u(tr(t.c,n),112),sr.b.g&&(o.c[o.c.length]=r);return o}function AE(){AE=Z,i5=new DM("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),G6=new DM("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),GS=new DM("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),VS=new DM("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),US=new DM("WHOLE_DRAWING",4)}function own(t,e){if(_t(e,239))return Bln(t,u(e,33));if(_t(e,186))return Xln(t,u(e,118));if(_t(e,354))return urn(t,u(e,137));if(_t(e,352))return Oyn(t,u(e,79));if(e)return null;throw it(new Fn(L8t+eb(new yl(lt(ct(Qn,1),De,1,5,[e])))))}function cwn(t){var e,n,r,s,o,h,d;for(o=new Zi,s=new S(t.d.a);s.a1)for(e=Fw((n=new Xb,++t.b,n),t.d),d=ei(o,0);d.b!=d.d.c;)h=u(ti(d),121),yf(lf(uf(hf(cf(new Ch,1),0),e),h))}function I5t(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=11&&e){if(vE(t,e))throw it(new Fn(Q_+X5t(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?c4t(t,r):t.Cb.ih(t,-1-n,null,r))),e&&(r=c6(e,t,10,r)),r=lwt(t,e,r),r&&r.Fi()}else t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,11,e,e))}function uwn(t){var e,n,r,s;for(r=new p2(new Cg(t.b).a);r.b;)n=Zw(r),s=u(n.cd(),11),e=u(n.dd(),10),Jt(e,(ae(),_i),s),Jt(s,Ju,e),Jt(s,SO,(Nn(),!0)),Bs(s,u(Q(e,oc),61)),Q(e,oc),Jt(s.i,(Te(),cs),(ua(),B7)),u(Q(Na(s.i),Vc),21).Fc((oo(),y7))}function lwn(t,e,n){var r,s,o,h,d,v;if(o=0,h=0,t.c)for(v=new S(t.d.i.j);v.ao.a?-1:s.av){for(C=t.d,t.d=Nt(XAt,R8t,63,2*v+4,0,1),o=0;o=9223372036854776e3?(q8(),sEt):(s=!1,t<0&&(s=!0,t=-t),r=0,t>=C2&&(r=ps(t/C2),t-=r*C2),n=0,t>=m6&&(n=ps(t/m6),t-=n*m6),e=ps(t),o=iu(e,n,r),s&&Ait(o),o)}function ywn(t,e){var n,r,s,o;for(n=!e||!t.u.Hc((Zu(),sg)),o=0,s=new S(t.e.Cf());s.a=-e&&r==e?new fa(pe(n-1),pe(r)):new fa(pe(n),pe(r-1))}function Yce(){return ro(),lt(ct(l6n,1),oe,77,0,[J7t,X7t,gS,glt,vTt,CV,FV,h7,bTt,oTt,gTt,l7,wTt,iTt,mTt,V7t,LV,plt,EV,IV,xTt,DV,G7t,pTt,kTt,OV,yTt,TV,eTt,fTt,hTt,NV,Y7t,kV,SV,W7t,u7,uTt,sTt,dTt,pS,Q7t,K7t,lTt,aTt,AV,PV,U7t,MV,cTt,_V,nTt,tTt,xO,xV,rTt,Z7t])}function Twn(t,e,n){t.d=0,t.b=0,e.k==(Vn(),Hc)&&n.k==Hc&&u(Q(e,(ae(),_i)),10)==u(Q(n,_i),10)&&(eit(e).j==(ve(),Pn)?Oce(t,e,n):Oce(t,n,e)),e.k==Hc&&n.k==ta?eit(e).j==(ve(),Pn)?t.d=1:t.b=1:n.k==Hc&&e.k==ta&&(eit(n).j==(ve(),Pn)?t.b=1:t.d=1),h1n(t,e,n)}function Cwn(t){var e,n,r,s,o,h,d,v,k,C,M;return M=D4t(t),e=t.a,v=e!=null,v&&E8(M,"category",t.a),s=wM(new Sm(t.d)),h=!s,h&&(k=new Eg,Yf(M,"knownOptions",k),n=new Nzt(k),va(new Sm(t.d),n)),o=wM(t.g),d=!o,d&&(C=new Eg,Yf(M,"supportedFeatures",C),r=new Bzt(C),va(t.g,r)),M}function _wn(t){var e,n,r,s,o,h,d,v,k;for(r=!1,e=336,n=0,o=new XWt(t.length),d=t,v=0,k=d.length;v>16!=7&&e){if(vE(t,e))throw it(new Fn(Q_+eoe(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?i4t(t,r):t.Cb.ih(t,-1-n,null,r))),e&&(r=u(e,49).gh(t,1,lP,r)),r=nvt(t,e,r),r&&r.Fi()}else t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,7,e,e))}function Kce(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=3&&e){if(vE(t,e))throw it(new Fn(Q_+lie(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?a4t(t,r):t.Cb.ih(t,-1-n,null,r))),e&&(r=u(e,49).gh(t,0,fP,r)),r=rvt(t,e,r),r&&r.Fi()}else t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,3,e,e))}function uat(t,e){TE();var n,r,s,o,h,d,v,k,C;return e.d>t.d&&(d=t,t=e,e=d),e.d<63?bvn(t,e):(h=(t.d&-2)<<4,k=bmt(t,h),C=bmt(e,h),r=Cat(t,Qx(k,h)),s=Cat(e,Qx(C,h)),v=uat(k,C),n=uat(r,s),o=uat(Cat(k,r),Cat(s,C)),o=Oat(Oat(o,v),n),o=Qx(o,h),v=Qx(v,h<<1),Oat(Oat(v,o),n))}function Awn(t,e,n){var r,s,o,h,d;for(h=t_(t,n),d=Nt(l0,Yg,10,e.length,0,1),r=0,o=h.Kc();o.Ob();)s=u(o.Pb(),11),je(Re(Q(s,(ae(),SO))))&&(d[r++]=u(Q(s,Ju),10));if(r=0;o+=n?1:-1)h=h|e.c.Sf(v,o,n,r&&!je(Re(Q(e.j,(ae(),Ov))))&&!je(Re(Q(e.j,(ae(),X4))))),h=h|e.q._f(v,o,n),h=h|Pue(t,v[o],n,r);return Fs(t.c,e),h}function xq(t,e,n){var r,s,o,h,d,v,k,C,M,j;for(C=OZt(t.j),M=0,j=C.length;M1&&(t.a=!0),Ven(u(n.b,65),Li(nc(u(e.b,65).c),fd(ia(nc(u(n.b,65).a),u(e.b,65).a),s))),WQt(t,e),Xce(t,n)}function Qce(t){var e,n,r,s,o,h,d;for(o=new S(t.a.a);o.a0&&o>0?h.p=e++:r>0?h.p=n++:o>0?h.p=s++:h.p=n++}wn(),Zs(t.j,new DL)}function Own(t){var e,n;n=null,e=u(Ne(t.g,0),17);do{if(n=e.d.i,Us(n,(ae(),$h)))return u(Q(n,$h),11).i;if(n.k!=(Vn(),Os)&&zr(new ar(lr(Ds(n).a.Kc(),new z))))e=u(Mr(new ar(lr(Ds(n).a.Kc(),new z))),17);else if(n.k!=Os)return null}while(n&&n.k!=(Vn(),Os));return n}function Pwn(t,e){var n,r,s,o,h,d,v,k,C;for(d=e.j,h=e.g,v=u(Ne(d,d.c.length-1),113),C=(An(0,d.c.length),u(d.c[0],113)),k=Ast(t,h,v,C),o=1;ok&&(v=n,C=s,k=r);e.a=C,e.c=v}function Fwn(t,e){var n,r;if(r=tD(t.b,e.b),!r)throw it(new No("Invalid hitboxes for scanline constraint calculation."));(ire(e.b,u(FZe(t.b,e.b),57))||ire(e.b,u(PZe(t.b,e.b),57)))&&(Gd(),e.b+""),t.a[e.b.f]=u(Cnt(t.b,e.b),57),n=u(Tnt(t.b,e.b),57),n&&(t.a[n.f]=e.b)}function yf(t){if(!t.a.d||!t.a.e)throw it(new No((P0(fpe),fpe.k+" must have a source and target "+(P0(a7t),a7t.k)+" specified.")));if(t.a.d==t.a.e)throw it(new No("Network simplex does not support self-loops: "+t.a+" "+t.a.d+" "+t.a.e));return _j(t.a.d.g,t.a),_j(t.a.e.b,t.a),t.a}function Nwn(t,e,n){var r,s,o,h,d,v,k;for(k=new Op(new F$t(t)),h=lt(ct(Jbe,1),h1e,11,0,[e,n]),d=0,v=h.length;dv-t.b&&dv-t.a&&d0&&++H;++j}return H}function Uwn(t,e){var n,r,s,o,h;for(h=u(Q(e,(gv(),d_t)),425),o=ei(e.b,0);o.b!=o.d.c;)if(s=u(ti(o),86),t.b[s.g]==0){switch(h.g){case 0:Cse(t,s);break;case 1:Ybn(t,s)}t.b[s.g]=2}for(r=ei(t.a,0);r.b!=r.d.c;)n=u(ti(r),188),ay(n.b.d,n,!0),ay(n.c.b,n,!0);Jt(e,(fc(),a_t),t.a)}function ou(t,e){to();var n,r,s,o;return e?e==(Ii(),H5e)||(e==D5e||e==X2||e==M5e)&&t!=ELt?new Axt(t,e):(r=u(e,677),n=r.pk(),n||(M8(To(($u(),ya),e)),n=r.pk()),o=(!n.i&&(n.i=new _r),n.i),s=u(ec(Lo(o.f,t)),1942),!s&&ki(o,t,s=new Axt(t,e)),s):S5e}function Wwn(t,e){var n,r,s,o,h,d,v,k,C;for(v=u(Q(t,(ae(),_i)),11),k=Yo(lt(ct(Ws,1),ee,8,0,[v.i.n,v.n,v.a])).a,C=t.i.n.b,n=wd(t.e),s=n,o=0,h=s.length;o0?o.a?(d=o.b.rf().a,n>d&&(s=(n-d)/2,o.d.b=s,o.d.c=s)):o.d.c=t.s+n:S9(t.u)&&(r=I4t(o.b),r.c<0&&(o.d.b=-r.c),r.c+r.b>o.b.rf().a&&(o.d.c=r.c+r.b-o.b.rf().a))}function Qwn(t,e){var n,r,s,o;for(vr(e,"Semi-Interactive Crossing Minimization Processor",1),n=!1,s=new S(t.b);s.a=0){if(e==n)return new fa(pe(-e-1),pe(-e-1));if(e==-n)return new fa(pe(-e),pe(n+1))}return b.Math.abs(e)>b.Math.abs(n)?e<0?new fa(pe(-e),pe(n)):new fa(pe(-e),pe(n+1)):new fa(pe(e+1),pe(n))}function tvn(t){var e,n;n=u(Q(t,(Te(),uu)),163),e=u(Q(t,(ae(),B2)),303),n==(dh(),bb)?(Jt(t,uu,MO),Jt(t,B2,(q0(),Y4))):n==jy?(Jt(t,uu,MO),Jt(t,B2,(q0(),F6))):e==(q0(),Y4)?(Jt(t,uu,bb),Jt(t,B2,CO)):e==F6&&(Jt(t,uu,jy),Jt(t,B2,CO))}function kq(){kq=Z,jO=new jQ,Zme=bi(new Vs,(Wa(),cu),(ro(),EV)),eye=Ku(bi(new Vs,cu,DV),Io,MV),nye=uv(uv(VR(Ku(bi(new Vs,Dd,FV),Io,PV),qc),OV),NV),Jme=Ku(bi(bi(bi(new Vs,gb,CV),qc,SV),qc,u7),Io,_V),tye=Ku(bi(bi(new Vs,qc,u7),qc,kV),Io,xV)}function m_(){m_=Z,sye=bi(Ku(new Vs,(Wa(),Io),(ro(),nTt)),cu,EV),uye=uv(uv(VR(Ku(bi(new Vs,Dd,FV),Io,PV),qc),OV),NV),aye=Ku(bi(bi(bi(new Vs,gb,CV),qc,SV),qc,u7),Io,_V),cye=bi(bi(new Vs,cu,DV),Io,MV),oye=Ku(bi(bi(new Vs,qc,u7),qc,kV),Io,xV)}function evn(t,e,n,r,s){var o,h;(!Ga(e)&&e.c.i.c==e.d.i.c||!fne(Yo(lt(ct(Ws,1),ee,8,0,[s.i.n,s.n,s.a])),n))&&!Ga(e)&&(e.c==s?m8(e.a,0,new xo(n)):ri(e.a,new xo(n)),r&&!I0(t.a,n)&&(h=u(Q(e,(Te(),So)),74),h||(h=new Pu,Jt(e,So,h)),o=new xo(n),fs(h,o,h.c.b,h.c),Fs(t.a,o)))}function nvn(t){var e,n;for(n=new ar(lr(jo(t).a.Kc(),new z));zr(n);)if(e=u(Mr(n),17),e.c.i.k!=(Vn(),Ll))throw it(new R3(Kot+rI(t)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function rvn(t,e,n){var r,s,o,h,d,v,k;if(s=bie(t.Db&254),s==0)t.Eb=n;else{if(s==1)d=Nt(Qn,De,1,2,5,1),o=Sst(t,e),o==0?(d[0]=n,d[1]=t.Eb):(d[0]=t.Eb,d[1]=n);else for(d=Nt(Qn,De,1,s+1,5,1),h=u2(t.Eb),r=2,v=0,k=0;r<=128;r<<=1)r==e?d[k++]=n:t.Db&r&&(d[k++]=h[v++]);t.Eb=d}t.Db|=e}function Jce(t,e,n){var r,s,o,h;for(this.b=new he,s=0,r=0,h=new S(t);h.a0&&(o=u(Ne(this.b,0),167),s+=o.o,r+=o.p),s*=2,r*=2,e>1?s=ps(b.Math.ceil(s*e)):r=ps(b.Math.ceil(r/e)),this.a=new C3t(s,r)}function tue(t,e,n,r,s,o){var h,d,v,k,C,M,j,H,G,K,tt,gt;for(C=r,e.j&&e.o?(H=u(tr(t.f,e.A),57),K=H.d.c+H.d.b,--C):K=e.a.c+e.a.b,M=s,n.q&&n.o?(H=u(tr(t.f,n.C),57),k=H.d.c,++M):k=n.a.c,tt=k-K,v=b.Math.max(2,M-C),d=tt/v,G=K+d,j=C;j=0;h+=s?1:-1){for(d=e[h],v=r==(ve(),Hn)?s?Ko(d,r):l2(Ko(d,r)):s?l2(Ko(d,r)):Ko(d,r),o&&(t.c[d.p]=v.gc()),M=v.Kc();M.Ob();)C=u(M.Pb(),11),t.d[C.p]=k++;Ls(n,v)}}function eue(t,e,n){var r,s,o,h,d,v,k,C;for(o=Xt(ye(t.b.Kc().Pb())),k=Xt(ye(fun(e.b))),r=fd(nc(t.a),k-n),s=fd(nc(e.a),n-o),C=Li(r,s),fd(C,1/(k-o)),this.a=C,this.b=new he,d=!0,h=t.b.Kc(),h.Pb();h.Ob();)v=Xt(ye(h.Pb())),d&&v-n>Lct&&(this.b.Fc(n),d=!1),this.b.Fc(v);d&&this.b.Fc(n)}function ivn(t){var e,n,r,s;if(pmn(t,t.n),t.d.c.length>0){for(RC(t.c);w5t(t,u(J(new S(t.e.a)),121))>5,e&=31,r>=t.d)return t.e<0?(rb(),But):(rb(),s7);if(o=t.d-r,s=Nt(Cr,Xr,25,o+1,15,1),Qgn(s,o,t.a,r,e),t.e<0){for(n=0;n0&&t.a[n]<<32-e){for(n=0;n=0?!1:(n=C4(($u(),ya),s,e),n?(r=n.Zj(),(r>1||r==-1)&&Hw(To(ya,n))!=3):!0)):!1}function cvn(t,e,n,r){var s,o,h,d,v;return d=Do(u(At((!e.b&&(e.b=new Cn(br,e,4,7)),e.b),0),82)),v=Do(u(At((!e.c&&(e.c=new Cn(br,e,5,8)),e.c),0),82)),es(d)==es(v)||ey(v,d)?null:(h=cD(e),h==n?r:(o=u(tr(t.a,h),10),o&&(s=o.e,s)?s:null))}function uvn(t,e){var n;switch(n=u(Q(t,(Te(),uG)),276),vr(e,"Label side selection ("+n+")",1),n.g){case 0:mce(t,(zl(),f0));break;case 1:mce(t,(zl(),kb));break;case 2:Ple(t,(zl(),f0));break;case 3:Ple(t,(zl(),kb));break;case 4:pue(t,(zl(),f0));break;case 5:pue(t,(zl(),kb))}or(e)}function j5t(t,e,n){var r,s,o,h,d,v;if(r=YKe(n,t.length),h=t[r],h[0].k==(Vn(),ks))for(o=mHt(n,h.length),v=e.j,s=0;s0&&(n[0]+=t.d,h-=n[0]),n[2]>0&&(n[2]+=t.d,h-=n[2]),o=b.Math.max(0,h),n[1]=b.Math.max(n[1],h),vmt(t,eu,s.c+r.b+n[0]-(n[1]-h)/2,n),e==eu&&(t.c.b=o,t.c.c=s.c+r.b+(o-h)/2)}function fue(){this.c=Nt(aa,vo,25,(ve(),lt(ct(Xa,1),xc,61,0,[Zo,Pn,Hn,mr,Bn])).length,15,1),this.b=Nt(aa,vo,25,lt(ct(Xa,1),xc,61,0,[Zo,Pn,Hn,mr,Bn]).length,15,1),this.a=Nt(aa,vo,25,lt(ct(Xa,1),xc,61,0,[Zo,Pn,Hn,mr,Bn]).length,15,1),Abt(this.c,as),Abt(this.b,Cs),Abt(this.a,Cs)}function jc(t,e,n){var r,s,o,h;if(e<=n?(s=e,o=n):(s=n,o=e),r=0,t.b==null)t.b=Nt(Cr,Xr,25,2,15,1),t.b[0]=s,t.b[1]=o,t.c=!0;else{if(r=t.b.length,t.b[r-1]+1==s){t.b[r-1]=o;return}h=Nt(Cr,Xr,25,r+2,15,1),Dc(t.b,0,h,0,r),t.b=h,t.b[r-1]>=s&&(t.c=!1,t.a=!1),t.b[r++]=s,t.b[r]=o,t.c||v4(t)}}function wvn(t,e,n){var r,s,o,h,d,v,k;for(k=e.d,t.a=new Xc(k.c.length),t.c=new _r,d=new S(k);d.a=0?t._g(k,!1,!0):dv(t,n,!1),58));t:for(o=M.Kc();o.Ob();){for(s=u(o.Pb(),56),C=0;C1;)by(s,s.i-1);return r}function kvn(t,e){var n,r,s,o,h,d,v;for(vr(e,"Comment post-processing",1),o=new S(t.b);o.at.d[h.p]&&(n+=fmt(t.b,o),Up(t.a,pe(o)));for(;!BC(t.a);)Hmt(t.b,u(Hx(t.a),19).a)}return n}function bue(t,e,n){var r,s,o,h;for(o=(!e.a&&(e.a=new fe(rs,e,10,11)),e.a).i,s=new nr((!e.a&&(e.a=new fe(rs,e,10,11)),e.a));s.e!=s.i.gc();)r=u(dr(s),33),(!r.a&&(r.a=new fe(rs,r,10,11)),r.a).i==0||(o+=bue(t,r,!1));if(n)for(h=es(e);h;)o+=(!h.a&&(h.a=new fe(rs,h,10,11)),h.a).i,h=es(h);return o}function by(t,e){var n,r,s,o;return t.ej()?(r=null,s=t.fj(),t.ij()&&(r=t.kj(t.pi(e),null)),n=t.Zi(4,o=l6(t,e),null,e,s),t.bj()&&o!=null&&(r=t.dj(o,r)),r?(r.Ei(n),r.Fi()):t.$i(n),o):(o=l6(t,e),t.bj()&&o!=null&&(r=t.dj(o,null),r&&r.Fi()),o)}function Tvn(t){var e,n,r,s,o,h,d,v,k,C;for(k=t.a,e=new Hs,v=0,r=new S(t.d);r.ad.d&&(C=d.d+d.a+k));n.c.d=C,e.a.zc(n,e),v=b.Math.max(v,n.c.d+n.c.a)}return v}function oo(){oo=Z,KV=new Fm("COMMENTS",0),vh=new Fm("EXTERNAL_PORTS",1),yS=new Fm("HYPEREDGES",2),XV=new Fm("HYPERNODES",3),y7=new Fm("NON_FREE_PORTS",4),W4=new Fm("NORTH_SOUTH_PORTS",5),xS=new Fm(M1e,6),v7=new Fm("CENTER_LABELS",7),m7=new Fm("END_LABELS",8),QV=new Fm("PARTITIONS",9)}function wy(t){var e,n,r,s,o;for(s=new he,e=new E9((!t.a&&(t.a=new fe(rs,t,10,11)),t.a)),r=new ar(lr(K0(t).a.Kc(),new z));zr(r);)n=u(Mr(r),79),_t(At((!n.b&&(n.b=new Cn(br,n,4,7)),n.b),0),186)||(o=Do(u(At((!n.c&&(n.c=new Cn(br,n,5,8)),n.c),0),82)),e.a._b(o)||(s.c[s.c.length]=o));return s}function Cvn(t){var e,n,r,s,o,h;for(o=new Hs,e=new E9((!t.a&&(t.a=new fe(rs,t,10,11)),t.a)),s=new ar(lr(K0(t).a.Kc(),new z));zr(s);)r=u(Mr(s),79),_t(At((!r.b&&(r.b=new Cn(br,r,4,7)),r.b),0),186)||(h=Do(u(At((!r.c&&(r.c=new Cn(br,r,5,8)),r.c),0),82)),e.a._b(h)||(n=o.a.zc(h,o),n==null));return o}function _vn(t,e,n,r,s){return r<0?(r=w4(t,s,lt(ct(Ae,1),ee,2,6,[Qat,Zat,Jat,tot,w6,eot,not,rot,iot,sot,aot,oot]),e),r<0&&(r=w4(t,s,lt(ct(Ae,1),ee,2,6,["Jan","Feb","Mar","Apr",w6,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function Svn(t,e,n,r,s){return r<0?(r=w4(t,s,lt(ct(Ae,1),ee,2,6,[Qat,Zat,Jat,tot,w6,eot,not,rot,iot,sot,aot,oot]),e),r<0&&(r=w4(t,s,lt(ct(Ae,1),ee,2,6,["Jan","Feb","Mar","Apr",w6,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function Avn(t,e,n,r,s,o){var h,d,v,k;if(d=32,r<0){if(e[0]>=t.length||(d=wa(t,e[0]),d!=43&&d!=45)||(++e[0],r=gq(t,e),r<0))return!1;d==45&&(r=-r)}return d==32&&e[0]-n==2&&s.b==2&&(v=new BR,k=v.q.getFullYear()-ab+ab-80,h=k%100,o.a=r==h,r+=(k/100|0)*100+(r=k&&(v=r);v&&(C=b.Math.max(C,v.a.o.a)),C>j&&(M=k,j=C)}return M}function Dvn(t,e,n){var r,s,o;if(t.e=n,t.d=0,t.b=0,t.f=1,t.i=e,(t.e&16)==16&&(t.i=wmn(t.i)),t.j=t.i.length,fi(t),o=cv(t),t.d!=t.j)throw it(new Nr(qr((Pr(),Zde))));if(t.g){for(r=0;rJ1e?Zs(v,t.b):r<=J1e&&r>tde?Zs(v,t.d):r<=tde&&r>ede?Zs(v,t.c):r<=ede&&Zs(v,t.a),o=yue(t,v,o);return s}function rb(){rb=Z;var t;for(eV=new Ng(1,1),Rut=new Ng(1,10),s7=new Ng(0,0),But=new Ng(-1,1),CEt=lt(ct(j4,1),ee,91,0,[s7,eV,new Ng(1,2),new Ng(1,3),new Ng(1,4),new Ng(1,5),new Ng(1,6),new Ng(1,7),new Ng(1,8),new Ng(1,9),Rut]),nV=Nt(j4,ee,91,32,0,1),t=0;t1,d&&(r=new $e(s,n.b),ri(e.a,r)),V9(e.a,lt(ct(Ws,1),ee,8,0,[j,M]))}function Cue(t){Mw(t,new k2(_w(Ew(Cw(Tw(new kg,AH),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new ZZ))),xe(t,AH,xv,FAt),xe(t,AH,Cy,15),xe(t,AH,tH,pe(0)),xe(t,AH,E6,GE)}function q5t(){q5t=Z;var t,e,n,r,s,o;for(dA=Nt(Gu,N4,25,255,15,1),yU=Nt(xh,yd,25,16,15,1),e=0;e<255;e++)dA[e]=-1;for(n=57;n>=48;n--)dA[n]=n-48<<24>>24;for(r=70;r>=65;r--)dA[r]=r-65+10<<24>>24;for(s=102;s>=97;s--)dA[s]=s-97+10<<24>>24;for(o=0;o<10;o++)yU[o]=48+o&ys;for(t=10;t<=15;t++)yU[t]=65+t-10&ys}function Tq(t,e,n){var r,s,o,h,d,v,k,C;return d=e.i-t.g/2,v=n.i-t.g/2,k=e.j-t.g/2,C=n.j-t.g/2,o=e.g+t.g/2,h=n.g+t.g/2,r=e.f+t.g/2,s=n.f+t.g/2,d>19)return"-"+_ue(rE(t));for(n=t,r="";!(n.l==0&&n.m==0&&n.h==0);){if(s=Vrt(Gq),n=yxt(n,s,!0),e=""+RHt(hb),!(n.l==0&&n.m==0&&n.h==0))for(o=9-e.length;o>0;o--)e="0"+e;r=e+r}return r}function Bvn(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var t="__proto__",e=Object.create(null);if(e[t]!==void 0)return!1;var n=Object.getOwnPropertyNames(e);return!(n.length!=0||(e[t]=42,e[t]!==42)||Object.getOwnPropertyNames(e).length==0)}function Rvn(t){var e,n,r,s,o,h,d;for(e=!1,n=0,s=new S(t.d.b);s.a=t.a||!L4t(e,n))return-1;if(F8(u(r.Kb(e),20)))return 1;for(s=0,h=u(r.Kb(e),20).Kc();h.Ob();)if(o=u(h.Pb(),17),v=o.c.i==e?o.d.i:o.c.i,d=V5t(t,v,n,r),d==-1||(s=b.Math.max(s,d),s>t.c-1))return-1;return s+1}function Sue(t,e){var n,r,s,o,h,d;if(Vt(e)===Vt(t))return!0;if(!_t(e,15)||(r=u(e,15),d=t.gc(),r.gc()!=d))return!1;if(h=r.Kc(),t.ni()){for(n=0;n0){if(t.qj(),e!=null){for(o=0;o>24;case 97:case 98:case 99:case 100:case 101:case 102:return t-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return t-65+10<<24>>24;default:throw it(new ld("Invalid hexadecimal"))}}function qvn(t,e,n){var r,s,o,h;for(vr(n,"Processor order nodes",2),t.a=Xt(ye(Q(e,(gv(),g_t)))),s=new Zi,h=ei(e.b,0);h.b!=h.d.c;)o=u(ti(h),86),je(Re(Q(o,(fc(),Xy))))&&fs(s,o,s.c.b,s.c);r=(Zn(s.b!=0),u(s.a.a.c,86)),Wle(t,r),!n.b&&pit(n,1),K5t(t,r,0-Xt(ye(Q(r,(fc(),IG))))/2,0),!n.b&&pit(n,1),or(n)}function Cq(){Cq=Z,i7t=new z3("SPIRAL",0),t7t=new z3("LINE_BY_LINE",1),e7t=new z3("MANHATTAN",2),JEt=new z3("JITTER",3),Vut=new z3("QUADRANTS_LINE_BY_LINE",4),r7t=new z3("QUADRANTS_MANHATTAN",5),n7t=new z3("QUADRANTS_JITTER",6),ZEt=new z3("COMBINE_LINE_BY_LINE_MANHATTAN",7),QEt=new z3("COMBINE_JITTER_MANHATTAN",8)}function Lue(t,e,n,r){var s,o,h,d,v,k;for(v=Ost(t,n),k=Ost(e,n),s=!1;v&&k&&(r||R1n(v,k,n));)h=Ost(v,n),d=Ost(k,n),kD(e),kD(t),o=v.c,Bat(v,!1),Bat(k,!1),n?(ly(e,k.p,o),e.p=k.p,ly(t,v.p+1,o),t.p=v.p):(ly(t,v.p,o),t.p=v.p,ly(e,k.p+1,o),e.p=k.p),Eo(v,null),Eo(k,null),v=h,k=d,s=!0;return s}function Hvn(t,e,n,r){var s,o,h,d,v;for(s=!1,o=!1,d=new S(r.j);d.a=e.length)throw it(new yo("Greedy SwitchDecider: Free layer not in graph."));this.c=e[t],this.e=new YM(r),mit(this.e,this.c,(ve(),Bn)),this.i=new YM(r),mit(this.i,this.c,Hn),this.f=new SKt(this.c),this.a=!o&&s.i&&!s.s&&this.c[0].k==(Vn(),ks),this.a&&apn(this,t,e.length)}function Due(t,e){var n,r,s,o,h,d;o=!t.B.Hc((ll(),cP)),h=t.B.Hc(Aft),t.a=new _ie(h,o,t.c),t.n&&Pvt(t.a.n,t.n),het(t.g,(Kf(),eu),t.a),e||(r=new a_(1,o,t.c),r.n.a=t.k,zx(t.p,(ve(),Pn),r),s=new a_(1,o,t.c),s.n.d=t.k,zx(t.p,mr,s),d=new a_(0,o,t.c),d.n.c=t.k,zx(t.p,Bn,d),n=new a_(0,o,t.c),n.n.b=t.k,zx(t.p,Hn,n))}function Gvn(t){var e,n,r;switch(e=u(Q(t.d,(Te(),eg)),218),e.g){case 2:n=xxn(t);break;case 3:n=(r=new he,ls(Ri(wu(Wo(Wo(new Tn(null,new _n(t.d.b,16)),new NX),new BX),new HT),new _X),new Utt(r)),r);break;default:throw it(new No("Compaction not supported for "+e+" edges."))}H3n(t,n),va(new Sm(t.g),new Vtt(t))}function Uvn(t,e){var n;return n=new ka,e&&Mo(n,u(tr(t.a,lP),94)),_t(e,470)&&Mo(n,u(tr(t.a,hP),94)),_t(e,354)?(Mo(n,u(tr(t.a,qo),94)),n):(_t(e,82)&&Mo(n,u(tr(t.a,br),94)),_t(e,239)?(Mo(n,u(tr(t.a,rs),94)),n):_t(e,186)?(Mo(n,u(tr(t.a,gl),94)),n):(_t(e,352)&&Mo(n,u(tr(t.a,Ys),94)),n))}function Jf(){Jf=Z,c7=new eo((ui(),ZG),pe(1)),bV=new eo(W2,80),kbe=new eo(fAt,5),dbe=new eo(W6,GE),ybe=new eo(Eft,pe(1)),xbe=new eo(Tft,(Nn(),!0)),x7t=new Ow(50),vbe=new eo(U2,x7t),v7t=KG,k7t=KS,gbe=new eo(gft,!1),y7t=tP,wbe=xb,bbe=G2,pbe=o5,mbe=Qy,m7t=(q4t(),abe),nlt=lbe,pV=sbe,elt=obe,E7t=ube}function Wvn(t){var e,n,r,s,o,h,d,v;for(v=new OJt,d=new S(t.a);d.a0&&e=0)return!1;if(e.p=n.b,le(n.e,e),s==(Vn(),ta)||s==Hc){for(h=new S(e.j);h.a1||h==-1)&&(o|=16),s.Bb&dc&&(o|=64)),n.Bb&Ka&&(o|=Dy),o|=xf):_t(e,457)?o|=512:(r=e.Bj(),r&&r.i&1&&(o|=256)),t.Bb&512&&(o|=128),o}function y_(t,e){var n,r,s,o,h;for(t=t==null?_u:(On(t),t),s=0;st.d[d.p]&&(n+=fmt(t.b,o),Up(t.a,pe(o)))):++h;for(n+=t.b.d*h;!BC(t.a);)Hmt(t.b,u(Hx(t.a),19).a)}return n}function nmn(t,e){var n;return t.f==$ft?(n=Hw(To(($u(),ya),e)),t.e?n==4&&e!=(d6(),tk)&&e!=(d6(),J6)&&e!=(d6(),zft)&&e!=(d6(),qft):n==2):t.d&&(t.d.Hc(e)||t.d.Hc(Kx(To(($u(),ya),e)))||t.d.Hc(C4(($u(),ya),t.b,e)))?!0:t.f&&O5t(($u(),t.f),rD(To(ya,e)))?(n=Hw(To(ya,e)),t.e?n==4:n==2):!1}function rmn(t,e,n,r){var s,o,h,d,v,k,C,M;return h=u(qe(n,(ui(),Y6)),8),v=h.a,C=h.b+t,s=b.Math.atan2(C,v),s<0&&(s+=O4),s+=e,s>O4&&(s-=O4),d=u(qe(r,Y6),8),k=d.a,M=d.b+t,o=b.Math.atan2(M,k),o<0&&(o+=O4),o+=e,o>O4&&(o-=O4),k1(),wf(1e-10),b.Math.abs(s-o)<=1e-10||s==o||isNaN(s)&&isNaN(o)?0:so?1:Iw(isNaN(s),isNaN(o))}function gat(t){var e,n,r,s,o,h,d;for(d=new _r,r=new S(t.a.b);r.a=t.o)throw it(new Opt);d=e>>5,h=e&31,o=F0(1,Ar(F0(h,1))),s?t.n[n][d]=S1(t.n[n][d],o):t.n[n][d]=Ns(t.n[n][d],Rwt(o)),o=F0(o,1),r?t.n[n][d]=S1(t.n[n][d],o):t.n[n][d]=Ns(t.n[n][d],Rwt(o))}catch(v){throw v=Wi(v),_t(v,320)?it(new yo(Fot+t.o+"*"+t.p+Not+e+Ya+n+Bot)):it(v)}}function K5t(t,e,n,r){var s,o,h;e&&(o=Xt(ye(Q(e,(fc(),np))))+r,h=n+Xt(ye(Q(e,IG)))/2,Jt(e,$ht,pe(Ar(Tu(b.Math.round(o))))),Jt(e,o_t,pe(Ar(Tu(b.Math.round(h))))),e.d.b==0||K5t(t,u(xj((s=ei(new Lp(e).a.d,0),new Ex(s))),86),n+Xt(ye(Q(e,IG)))+t.a,r+Xt(ye(Q(e,M7)))),Q(e,jht)!=null&&K5t(t,u(Q(e,jht),86),n,r))}function smn(t,e){var n,r,s,o,h,d,v,k,C,M,j;for(v=Na(e.a),s=Xt(ye(Q(v,(Te(),q2))))*2,C=Xt(ye(Q(v,t5))),k=b.Math.max(s,C),o=Nt(aa,vo,25,e.f-e.c+1,15,1),r=-k,n=0,d=e.b.Kc();d.Ob();)h=u(d.Pb(),10),r+=t.a[h.c.p]+k,o[n++]=r;for(r+=t.a[e.a.c.p]+k,o[n++]=r,j=new S(e.e);j.a0&&(r=(!t.n&&(t.n=new fe(qo,t,1,7)),u(At(t.n,0),137)).a,!r||Gr(Gr((e.a+=' "',e),r),'"'))),Gr(Aw(Gr(Aw(Gr(Aw(Gr(Aw((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function zue(t){var e,n,r;return t.Db&64?Vst(t):(e=new Ol(y8t),n=t.k,n?Gr(Gr((e.a+=' "',e),n),'"'):(!t.n&&(t.n=new fe(qo,t,1,7)),t.n.i>0&&(r=(!t.n&&(t.n=new fe(qo,t,1,7)),u(At(t.n,0),137)).a,!r||Gr(Gr((e.a+=' "',e),r),'"'))),Gr(Aw(Gr(Aw(Gr(Aw(Gr(Aw((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function bat(t,e){var n,r,s,o,h,d,v;if(e==null||e.length==0)return null;if(s=u(Nc(t.a,e),149),!s){for(r=(d=new v1(t.b).a.vc().Kc(),new m1(d));r.a.Ob();)if(n=(o=u(r.a.Pb(),42),u(o.dd(),149)),h=n.c,v=e.length,hn(h.substr(h.length-v,v),e)&&(e.length==h.length||wa(h,h.length-e.length-1)==46)){if(s)return null;s=n}s&&ko(t.a,e,s)}return s}function cmn(t,e){var n,r,s,o;return n=new eh,r=u(Bl(wu(new Tn(null,new _n(t.f,16)),n),Zm(new on,new ni,new di,new Ee,lt(ct(fl,1),oe,132,0,[(O1(),Iy),Ul]))),21),s=r.gc(),r=u(Bl(wu(new Tn(null,new _n(e.f,16)),n),Zm(new on,new ni,new di,new Ee,lt(ct(fl,1),oe,132,0,[Iy,Ul]))),21),o=r.gc(),ss.p?(Bs(o,mr),o.d&&(d=o.o.b,e=o.a.b,o.a.b=d-e)):o.j==mr&&s.p>t.p&&(Bs(o,Pn),o.d&&(d=o.o.b,e=o.a.b,o.a.b=-(d-e)));break}return s}function lmn(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G;if(o=n,n1,d&&(r=new $e(s,n.b),ri(e.a,r)),V9(e.a,lt(ct(Ws,1),ee,8,0,[j,M]))}function wat(t,e,n){var r,s,o,h,d,v;if(e)if(n<=-1){if(r=yn(e.Tg(),-1-n),_t(r,99))return u(r,18);for(h=u(e.ah(r),153),d=0,v=h.gc();d0){for(s=v.length;s>0&&v[s-1]=="";)--s;s=40,h&&xyn(t),C3n(t),ivn(t),n=fie(t),r=0;n&&r0&&ri(t.f,o)):(t.c[h]-=k+1,t.c[h]<=0&&t.a[h]>0&&ri(t.e,o))))}function Nmn(t){var e,n,r,s,o,h,d,v,k;for(d=new Op(u(Lr(new jd),62)),k=Cs,n=new S(t.d);n.a=0&&vn?e:n;k<=M;++k)k==n?d=r++:(o=s[k],C=G.rl(o.ak()),k==e&&(v=k==M&&!C?r-1:r),C&&++r);return j=u(r_(t,e,n),72),d!=v&&n8(t,new mD(t.e,7,h,pe(d),H.dd(),v)),j}}else return u(Jst(t,e,n),72);return u(r_(t,e,n),72)}function $mn(t,e){var n,r,s,o,h,d,v;for(vr(e,"Port order processing",1),v=u(Q(t,(Te(),v9t)),421),r=new S(t.b);r.a=0&&(d=H1n(t,h),!(d&&(k<22?v.l|=1<>>1,h.m=C>>>1|(M&1)<<21,h.l=j>>>1|(C&1)<<21,--k;return n&&Ait(v),o&&(r?(hb=rE(t),s&&(hb=tre(hb,(q8(),aEt)))):hb=iu(t.l,t.m,t.h)),v}function Hmn(t,e){var n,r,s,o,h,d,v,k,C,M;for(k=t.e[e.c.p][e.p]+1,v=e.c.a.c.length+1,d=new S(t.a);d.a0&&(Rr(0,t.length),t.charCodeAt(0)==45||(Rr(0,t.length),t.charCodeAt(0)==43))?1:0,r=h;rn)throw it(new ld(yv+t+'"'));return d}function Vmn(t){var e,n,r,s,o,h,d;for(h=new Zi,o=new S(t.a);o.a1)&&e==1&&u(t.a[t.b],10).k==(Vn(),Ll)?p6(u(t.a[t.b],10),(zl(),f0)):r&&(!n||(t.c-t.b&t.a.length-1)>1)&&e==1&&u(t.a[t.c-1&t.a.length-1],10).k==(Vn(),Ll)?p6(u(t.a[t.c-1&t.a.length-1],10),(zl(),kb)):(t.c-t.b&t.a.length-1)==2?(p6(u(Q9(t),10),(zl(),f0)),p6(u(Q9(t),10),kb)):R2n(t,s),lmt(t)}function Wmn(t,e,n){var r,s,o,h,d;for(o=0,s=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));s.e!=s.i.gc();)r=u(dr(s),33),h="",(!r.n&&(r.n=new fe(qo,r,1,7)),r.n).i==0||(h=u(At((!r.n&&(r.n=new fe(qo,r,1,7)),r.n),0),137).a),d=new Dit(o++,e,h),Mo(d,r),Jt(d,(fc(),qS),r),d.e.b=r.j+r.f/2,d.f.a=b.Math.max(r.g,1),d.e.a=r.i+r.g/2,d.f.b=b.Math.max(r.f,1),ri(e.b,d),au(n.f,r,d)}function Ymn(t){var e,n,r,s,o;r=u(Q(t,(ae(),_i)),33),o=u(qe(r,(Te(),$2)),174).Hc((Al(),K2)),t.e||(s=u(Q(t,Vc),21),e=new $e(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),s.Hc((oo(),vh))?(wo(r,cs,(ua(),Gc)),wv(r,e.a,e.b,!1,!0)):je(Re(qe(r,uht)))||wv(r,e.a,e.b,!0,!0)),o?wo(r,$2,un(K2)):wo(r,$2,(n=u(Vf(rA),9),new sh(n,u(ff(n,n.length),9),0)))}function rxt(t,e,n){var r,s,o,h;if(e[0]>=t.length)return n.o=0,!0;switch(wa(t,e[0])){case 43:s=1;break;case 45:s=-1;break;default:return n.o=0,!0}if(++e[0],o=e[0],h=gq(t,e),h==0&&e[0]==o)return!1;if(e[0]=0&&d!=n&&(o=new Js(t,1,d,h,null),r?r.Ei(o):r=o),n>=0&&(o=new Js(t,1,n,d==n?h:null,e),r?r.Ei(o):r=o)),r}function sle(t){var e,n,r;if(t.b==null){if(r=new Ag,t.i!=null&&(go(r,t.i),r.a+=":"),t.f&256){for(t.f&256&&t.a!=null&&(lrn(t.i)||(r.a+="//"),go(r,t.a)),t.d!=null&&(r.a+="/",go(r,t.d)),t.f&16&&(r.a+="/"),e=0,n=t.j.length;ej?!1:(M=(v=__(r,j,!1),v.a),C+d+M<=e.b&&(vD(n,o-n.s),n.c=!0,vD(r,o-n.s),tI(r,n.s,n.t+n.d+d),r.k=!0,pyt(n.q,r),H=!0,s&&(az(e,r),r.j=e,t.c.length>h&&(sI((An(h,t.c.length),u(t.c[h],200)),r),(An(h,t.c.length),u(t.c[h],200)).a.c.length==0&&Fg(t,h)))),H)}function nyn(t,e){var n,r,s,o,h,d;if(vr(e,"Partition midprocessing",1),s=new Uw,ls(Ri(new Tn(null,new _n(t.a,16)),new KK),new mw(s)),s.d!=0){for(d=u(Bl(ZQt((o=s.i,new Tn(null,(o||(s.i=new K3(s,s.c))).Nc()))),c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[(O1(),Ul)]))),15),r=d.Kc(),n=u(r.Pb(),19);r.Ob();)h=u(r.Pb(),19),swn(u(Ai(s,n),21),u(Ai(s,h),21)),n=h;or(e)}}function cle(t,e,n){var r,s,o,h,d,v,k,C;if(e.p==0){for(e.p=1,h=n,h||(s=new he,o=(r=u(Vf(Xa),9),new sh(r,u(ff(r,r.length),9),0)),h=new fa(s,o)),u(h.a,15).Fc(e),e.k==(Vn(),ks)&&u(h.b,21).Fc(u(Q(e,(ae(),oc)),61)),v=new S(e.j);v.a0){if(s=u(t.Ab.g,1934),e==null){for(o=0;o1)for(r=new S(s);r.an.s&&dd&&(d=s,C.c=Nt(Qn,De,1,0,5,1)),s==d&&le(C,new fa(n.c.i,n)));wn(),Zs(C,t.c),Hm(t.b,v.p,C)}}function cyn(t,e){var n,r,s,o,h,d,v,k,C;for(h=new S(e.b);h.ad&&(d=s,C.c=Nt(Qn,De,1,0,5,1)),s==d&&le(C,new fa(n.d.i,n)));wn(),Zs(C,t.c),Hm(t.f,v.p,C)}}function lle(t){Mw(t,new k2(_w(Ew(Cw(Tw(new kg,Tv),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new qZ))),xe(t,Tv,xv,PSt),xe(t,Tv,Cy,15),xe(t,Tv,VI,pe(0)),xe(t,Tv,CH,Ie(DSt)),xe(t,Tv,D4,Ie(e4e)),xe(t,Tv,T6,Ie(n4e)),xe(t,Tv,E6,cde),xe(t,Tv,GI,Ie(ISt)),xe(t,Tv,C6,Ie(OSt)),xe(t,Tv,g8t,Ie(lft)),xe(t,Tv,mH,Ie(t4e))}function hle(t,e){var n,r,s,o,h,d,v,k,C;if(s=t.i,h=s.o.a,o=s.o.b,h<=0&&o<=0)return ve(),Zo;switch(k=t.n.a,C=t.n.b,d=t.o.a,n=t.o.b,e.g){case 2:case 1:if(k<0)return ve(),Bn;if(k+d>h)return ve(),Hn;break;case 4:case 3:if(C<0)return ve(),Pn;if(C+n>o)return ve(),mr}return v=(k+d/2)/h,r=(C+n/2)/o,v+r<=1&&v-r<=0?(ve(),Bn):v+r>=1&&v-r>=0?(ve(),Hn):r<.5?(ve(),Pn):(ve(),mr)}function uyn(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K;for(n=!1,C=Xt(ye(Q(e,(Te(),$v)))),G=sb*C,s=new S(e.b);s.av+G&&(K=M.g+j.g,j.a=(j.g*j.a+M.g*M.a)/K,j.g=K,M.f=j,n=!0)),o=d,M=j;return n}function fle(t,e,n,r,s,o,h){var d,v,k,C,M,j;for(j=new Fx,k=e.Kc();k.Ob();)for(d=u(k.Pb(),839),M=new S(d.wf());M.a0?d.a?(k=d.b.rf().b,s>k&&(t.v||d.c.d.c.length==1?(h=(s-k)/2,d.d.d=h,d.d.a=h):(n=u(Ne(d.c.d,0),181).rf().b,r=(n-k)/2,d.d.d=b.Math.max(0,r),d.d.a=s-r-k))):d.d.a=t.t+s:S9(t.u)&&(o=I4t(d.b),o.d<0&&(d.d.d=-o.d),o.d+o.a>d.b.rf().b&&(d.d.a=o.d+o.a-d.b.rf().b))}function fyn(t,e){var n;switch(_D(t)){case 6:return ra(e);case 7:return Bm(e);case 8:return Nm(e);case 3:return Array.isArray(e)&&(n=_D(e),!(n>=14&&n<=16));case 11:return e!=null&&typeof e===Gat;case 12:return e!=null&&(typeof e===MI||typeof e==Gat);case 0:return gst(e,t.__elementTypeId$);case 2:return Znt(e)&&e.im!==Et;case 1:return Znt(e)&&e.im!==Et||gst(e,t.__elementTypeId$);default:return!0}}function dle(t,e){var n,r,s,o;return r=b.Math.min(b.Math.abs(t.c-(e.c+e.b)),b.Math.abs(t.c+t.b-e.c)),o=b.Math.min(b.Math.abs(t.d-(e.d+e.a)),b.Math.abs(t.d+t.a-e.d)),n=b.Math.abs(t.c+t.b/2-(e.c+e.b/2)),n>t.b/2+e.b/2||(s=b.Math.abs(t.d+t.a/2-(e.d+e.a/2)),s>t.a/2+e.a/2)?1:n==0&&s==0?0:n==0?o/s+1:s==0?r/n+1:b.Math.min(r/n,o/s)+1}function gle(t,e){var n,r,s,o,h,d;return s=Jmt(t),d=Jmt(e),s==d?t.e==e.e&&t.a<54&&e.a<54?t.fe.f?1:0:(r=t.e-e.e,n=(t.d>0?t.d:b.Math.floor((t.a-1)*Cfe)+1)-(e.d>0?e.d:b.Math.floor((e.a-1)*Cfe)+1),n>r+1?s:n0&&(h=e4(h,Nle(r))),Uie(o,h))):s0&&t.d!=(q9(),slt)&&(d+=h*(r.d.a+t.a[e.b][r.b]*(e.d.a-r.d.a)/n)),n>0&&t.d!=(q9(),rlt)&&(v+=h*(r.d.b+t.a[e.b][r.b]*(e.d.b-r.d.b)/n)));switch(t.d.g){case 1:return new $e(d/o,e.d.b);case 2:return new $e(e.d.a,v/o);default:return new $e(d/o,v/o)}}function ple(t,e){oE();var n,r,s,o,h;if(h=u(Q(t.i,(Te(),cs)),98),o=t.j.g-e.j.g,o!=0||!(h==(ua(),Y2)||h==g0||h==Gc))return 0;if(h==(ua(),Y2)&&(n=u(Q(t,tp),19),r=u(Q(e,tp),19),n&&r&&(s=n.a-r.a,s!=0)))return s;switch(t.j.g){case 1:return Ms(t.n.a,e.n.a);case 2:return Ms(t.n.b,e.n.b);case 3:return Ms(e.n.a,t.n.a);case 4:return Ms(e.n.b,t.n.b);default:throw it(new No(E6t))}}function ble(t){var e,n,r,s,o,h;for(n=(!t.a&&(t.a=new As(Gh,t,5)),t.a).i+2,h=new Xc(n),le(h,new $e(t.j,t.k)),ls(new Tn(null,(!t.a&&(t.a=new As(Gh,t,5)),new _n(t.a,16))),new lzt(h)),le(h,new $e(t.b,t.c)),e=1;e0&&($D(v,!1,(ao(),zh)),$D(v,!0,Cf)),xu(e.g,new oGt(t,n)),ki(t.g,e,n)}function vle(){vle=Z;var t;for(gEt=lt(ct(Cr,1),Xr,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),Fut=Nt(Cr,Xr,25,37,15,1),$ge=lt(ct(Cr,1),Xr,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),pEt=Nt(Ob,wot,25,37,14,1),t=2;t<=36;t++)Fut[t]=ps(b.Math.pow(t,gEt[t])),pEt[t]=aI(qq,Fut[t])}function gyn(t){var e;if((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a).i!=1)throw it(new Fn(Sde+(!t.a&&(t.a=new fe(Ji,t,6,6)),t.a).i));return e=new Pu,RD(u(At((!t.b&&(t.b=new Cn(br,t,4,7)),t.b),0),82))&&Ua(e,tfe(t,RD(u(At((!t.b&&(t.b=new Cn(br,t,4,7)),t.b),0),82)),!1)),RD(u(At((!t.c&&(t.c=new Cn(br,t,5,8)),t.c),0),82))&&Ua(e,tfe(t,RD(u(At((!t.c&&(t.c=new Cn(br,t,5,8)),t.c),0),82)),!0)),e}function mle(t,e){var n,r,s,o,h;for(e.d?s=t.a.c==(bd(),zv)?jo(e.b):Ds(e.b):s=t.a.c==(bd(),ep)?jo(e.b):Ds(e.b),o=!1,r=new ar(lr(s.a.Kc(),new z));zr(r);)if(n=u(Mr(r),17),h=je(t.a.f[t.a.g[e.b.p].p]),!(!h&&!Ga(n)&&n.c.i.c==n.d.i.c)&&!(je(t.a.n[t.a.g[e.b.p].p])||je(t.a.n[t.a.g[e.b.p].p]))&&(o=!0,I0(t.b,t.a.g[T1n(n,e.b).p])))return e.c=!0,e.a=n,e;return e.c=o,e.a=null,e}function pyn(t,e,n,r,s){var o,h,d,v,k,C,M;for(wn(),Zs(t,new XZ),d=new da(t,0),M=new he,o=0;d.bo*2?(C=new rz(M),k=Ru(h)/El(h),v=zat(C,e,new Cx,n,r,s,k),Li(Gf(C.e),v),M.c=Nt(Qn,De,1,0,5,1),o=0,M.c[M.c.length]=C,M.c[M.c.length]=h,o=Ru(C)*El(C)+Ru(h)*El(h)):(M.c[M.c.length]=h,o+=Ru(h)*El(h));return M}function sxt(t,e,n){var r,s,o,h,d,v,k;if(r=n.gc(),r==0)return!1;if(t.ej())if(v=t.fj(),y3t(t,e,n),h=r==1?t.Zi(3,null,n.Kc().Pb(),e,v):t.Zi(5,null,n,e,v),t.bj()){for(d=r<100?null:new Dp(r),o=e+r,s=e;s0){for(h=0;h>16==-15&&t.Cb.nh()&&rit(new Jrt(t.Cb,9,13,n,t.c,Hg(al(u(t.Cb,59)),t))):_t(t.Cb,88)&&t.Db>>16==-23&&t.Cb.nh()&&(e=t.c,_t(e,88)||(e=(dn(),Kh)),_t(n,88)||(n=(dn(),Kh)),rit(new Jrt(t.Cb,9,10,n,e,Hg(Lc(u(t.Cb,26)),t)))))),t.c}function byn(t,e){var n,r,s,o,h,d,v,k,C,M;for(vr(e,"Hypernodes processing",1),s=new S(t.b);s.an);return s}function xle(t,e){var n,r,s;r=ul(t.d,1)!=0,!je(Re(Q(e.j,(ae(),Ov))))&&!je(Re(Q(e.j,X4)))||Vt(Q(e.j,(Te(),wb)))===Vt((V0(),vb))?e.c.Tf(e.e,r):r=je(Re(Q(e.j,Ov))),yI(t,e,r,!0),je(Re(Q(e.j,X4)))&&Jt(e.j,X4,(Nn(),!1)),je(Re(Q(e.j,Ov)))&&(Jt(e.j,Ov,(Nn(),!1)),Jt(e.j,X4,!0)),n=Kst(t,e);do{if(hyt(t),n==0)return 0;r=!r,s=n,yI(t,e,r,!1),n=Kst(t,e)}while(s>n);return s}function kle(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G;if(e==n)return!0;if(e=p5t(t,e),n=p5t(t,n),r=xst(e),r){if(C=xst(n),C!=r)return C?(v=r.Dj(),G=C.Dj(),v==G&&v!=null):!1;if(h=(!e.d&&(e.d=new As(ho,e,1)),e.d),o=h.i,j=(!n.d&&(n.d=new As(ho,n,1)),n.d),o==j.i){for(k=0;k0,d=Bz(e,o),N2t(n?d.b:d.g,e),u4(d).c.length==1&&fs(r,d,r.c.b,r.c),s=new fa(o,e),Up(t.o,s),mu(t.e.a,o))}function _le(t,e){var n,r,s,o,h,d,v;return r=b.Math.abs(e$(t.b).a-e$(e.b).a),d=b.Math.abs(e$(t.b).b-e$(e.b).b),s=0,v=0,n=1,h=1,r>t.b.b/2+e.b.b/2&&(s=b.Math.min(b.Math.abs(t.b.c-(e.b.c+e.b.b)),b.Math.abs(t.b.c+t.b.b-e.b.c)),n=1-s/r),d>t.b.a/2+e.b.a/2&&(v=b.Math.min(b.Math.abs(t.b.d-(e.b.d+e.b.a)),b.Math.abs(t.b.d+t.b.a-e.b.d)),h=1-v/d),o=b.Math.min(n,h),(1-o)*b.Math.sqrt(r*r+d*d)}function kyn(t){var e,n,r,s;for($at(t,t.e,t.f,(Gw(),yb),!0,t.c,t.i),$at(t,t.e,t.f,yb,!1,t.c,t.i),$at(t,t.e,t.f,r5,!0,t.c,t.i),$at(t,t.e,t.f,r5,!1,t.c,t.i),Tyn(t,t.c,t.e,t.f,t.i),r=new da(t.i,0);r.b=65;n--)Y1[n]=n-65<<24>>24;for(r=122;r>=97;r--)Y1[r]=r-97+26<<24>>24;for(s=57;s>=48;s--)Y1[s]=s-48+52<<24>>24;for(Y1[43]=62,Y1[47]=63,o=0;o<=25;o++)lp[o]=65+o&ys;for(h=26,v=0;h<=51;++h,v++)lp[h]=97+v&ys;for(t=52,d=0;t<=61;++t,d++)lp[t]=48+d&ys;lp[62]=43,lp[63]=47}function Eyn(t,e){var n,r,s,o,h,d,v,k,C,M,j,H;if(t.dc())return new Ca;for(k=0,M=0,s=t.Kc();s.Ob();)r=u(s.Pb(),37),o=r.f,k=b.Math.max(k,o.a),M+=o.a*o.b;for(k=b.Math.max(k,b.Math.sqrt(M)*Xt(ye(Q(u(t.Kc().Pb(),37),(Te(),rG))))),j=0,H=0,v=0,n=e,d=t.Kc();d.Ob();)h=u(d.Pb(),37),C=h.f,j+C.a>k&&(j=0,H+=v+e,v=0),x_(h,j,H),n=b.Math.max(n,j+C.a),v=b.Math.max(v,C.b),j+=C.a+e;return new $e(n+e,H+v+e)}function Tyn(t,e,n,r,s){var o,h,d,v,k,C,M;for(h=new S(e);h.ao)return ve(),Hn;break;case 4:case 3:if(v<0)return ve(),Pn;if(v+t.f>s)return ve(),mr}return h=(d+t.g/2)/o,n=(v+t.f/2)/s,h+n<=1&&h-n<=0?(ve(),Bn):h+n>=1&&h-n>=0?(ve(),Hn):n<.5?(ve(),Pn):(ve(),mr)}function Cyn(t,e,n,r,s){var o,h;if(o=Pa(Ns(e[0],co),Ns(r[0],co)),t[0]=Ar(o),o=$p(o,32),n>=s){for(h=1;h0&&(s.b[h++]=0,s.b[h++]=o.b[0]-1),e=1;e0&&(oM(v,v.d-s.d),s.c==(Uf(),mb)&&bpt(v,v.a-s.d),v.d<=0&&v.i>0&&fs(e,v,e.c.b,e.c)));for(o=new S(t.f);o.a0&&(TC(d,d.i-s.d),s.c==(Uf(),mb)&&ww(d,d.b-s.d),d.i<=0&&d.d>0&&fs(n,d,n.c.b,n.c)))}function _yn(t,e,n){var r,s,o,h,d,v,k,C;for(vr(n,"Processor compute fanout",1),Xu(t.b),Xu(t.a),d=null,o=ei(e.b,0);!d&&o.b!=o.d.c;)k=u(ti(o),86),je(Re(Q(k,(fc(),Xy))))&&(d=k);for(v=new Zi,fs(v,d,v.c.b,v.c),Bhe(t,v),C=ei(e.b,0);C.b!=C.d.c;)k=u(ti(C),86),h=Br(Q(k,(fc(),zS))),s=Nc(t.b,h)!=null?u(Nc(t.b,h),19).a:0,Jt(k,MG,pe(s)),r=1+(Nc(t.a,h)!=null?u(Nc(t.a,h),19).a:0),Jt(k,pye,pe(r));or(n)}function Syn(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G;for(j=l0n(t,n),v=0;v0),r.a.Xb(r.c=--r.b),M>j+v&&Cl(r);for(h=new S(H);h.a0),r.a.Xb(r.c=--r.b)}}function Ayn(){gi();var t,e,n,r,s,o;if(Vft)return Vft;for(t=new Nl(4),yy(t,ib(kut,!0)),L_(t,ib("M",!0)),L_(t,ib("C",!0)),o=new Nl(4),r=0;r<11;r++)jc(o,r,r);return e=new Nl(4),yy(e,ib("M",!0)),jc(e,4448,4607),jc(e,65438,65439),s=new d9(2),E2(s,t),E2(s,pA),n=new d9(2),n.$l(Yj(o,ib("L",!0))),n.$l(e),n=new Xm(3,n),n=new mvt(s,n),Vft=n,Vft}function Lyn(t){var e,n;if(e=Br(qe(t,(ui(),YS))),!qne(e,t)&&!o2(t,O7)&&((!t.a&&(t.a=new fe(rs,t,10,11)),t.a).i!=0||je(Re(qe(t,ZO)))))if(e==null||fy(e).length==0){if(!qne(Gn,t))throw n=Gr(Gr(new Ol("Unable to load default layout algorithm "),Gn)," for unconfigured node "),Nq(t,n),it(new R3(n.a))}else throw n=Gr(Gr(new Ol("Layout algorithm '"),e),"' not found for "),Nq(t,n),it(new R3(n.a))}function Eat(t){var e,n,r,s,o,h,d,v,k,C,M,j,H;if(n=t.i,e=t.n,t.b==0)for(H=n.c+e.b,j=n.b-e.b-e.c,h=t.a,v=0,C=h.length;v0&&(M-=r[0]+t.c,r[0]+=t.c),r[2]>0&&(M-=r[2]+t.c),r[1]=b.Math.max(r[1],M),Xj(t.a[1],n.c+e.b+r[0]-(r[1]-M)/2,r[1]);for(o=t.a,d=0,k=o.length;d0?(t.n.c.length-1)*t.i:0,r=new S(t.n);r.a1)for(r=ei(s,0);r.b!=r.d.c;)for(n=u(ti(r),231),o=0,v=new S(n.e);v.a0&&(e[0]+=t.c,M-=e[0]),e[2]>0&&(M-=e[2]+t.c),e[1]=b.Math.max(e[1],M),Qj(t.a[1],r.d+n.d+e[0]-(e[1]-M)/2,e[1]);else for(G=r.d+n.d,H=r.a-n.d-n.a,h=t.a,v=0,C=h.length;v=0&&o!=n))throw it(new Fn(eO));for(s=0,v=0;v0||av(s.b.d,t.b.d+t.b.a)==0&&r.b<0||av(s.b.d+s.b.a,t.b.d)==0&&r.b>0){d=0;break}}else d=b.Math.min(d,Moe(t,s,r));d=b.Math.min(d,Mle(t,o,d,r))}return d}function CI(t,e){var n,r,s,o,h,d,v;if(t.b<2)throw it(new Fn("The vector chain must contain at least a source and a target point."));for(s=(Zn(t.b!=0),u(t.a.a.c,8)),vj(e,s.a,s.b),v=new Nx((!e.a&&(e.a=new As(Gh,e,5)),e.a)),h=ei(t,1);h.aXt(E1(h.g,h.d[0]).a)?(Zn(v.b>0),v.a.Xb(v.c=--v.b),zm(v,h),s=!0):d.e&&d.e.gc()>0&&(o=(!d.e&&(d.e=new he),d.e).Mc(e),k=(!d.e&&(d.e=new he),d.e).Mc(n),(o||k)&&((!d.e&&(d.e=new he),d.e).Fc(h),++h.c));s||(r.c[r.c.length]=h)}function Ole(t){var e,n,r;if(G3(u(Q(t,(Te(),cs)),98)))for(n=new S(t.j);n.a>>0,"0"+e.toString(16)),r="\\x"+Pl(n,n.length-2,n.length)):t>=Ka?(n=(e=t>>>0,"0"+e.toString(16)),r="\\v"+Pl(n,n.length-6,n.length)):r=""+String.fromCharCode(t&ys)}return r}function Cat(t,e){var n,r,s,o,h,d,v,k,C,M;if(h=t.e,v=e.e,v==0)return t;if(h==0)return e.e==0?e:new X3(-e.e,e.d,e.a);if(o=t.d,d=e.d,o+d==2)return n=Ns(t.a[0],co),r=Ns(e.a[0],co),h<0&&(n=z8(n)),v<0&&(r=z8(r)),JD(Jp(n,r));if(s=o!=d?o>d?1:-1:qyt(t.a,e.a,o),s==-1)M=-v,C=h==v?Wrt(e.a,d,t.a,o):Krt(e.a,d,t.a,o);else if(M=h,h==v){if(s==0)return rb(),s7;C=Wrt(t.a,o,e.a,d)}else C=Krt(t.a,o,e.a,d);return k=new X3(M,C.length,C),N9(k),k}function fxt(t){var e,n,r,s,o,h;for(this.e=new he,this.a=new he,n=t.b-1;n<3;n++)m8(t,0,u(Zf(t,0),8));if(t.b<4)throw it(new Fn("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,x2n(this,t.b+this.b-1),h=new he,o=new S(this.e),e=0;e=e.o&&n.f<=e.f||e.a*.5<=n.f&&e.a*1.5>=n.f){if(h=u(Ne(e.n,e.n.c.length-1),211),h.e+h.d+n.g+s<=r&&(o=u(Ne(e.n,e.n.c.length-1),211),o.f-t.f+n.f<=t.b||t.a.c.length==1))return h3t(e,n),!0;if(e.s+n.g<=r&&(e.t+e.d+n.f+s<=t.b||t.a.c.length==1))return le(e.b,n),d=u(Ne(e.n,e.n.c.length-1),211),le(e.n,new E$(e.s,d.f+d.a+e.i,e.i)),W3t(u(Ne(e.n,e.n.c.length-1),211),n),Sle(e,n),!0}return!1}function Fle(t,e,n){var r,s,o,h;return t.ej()?(s=null,o=t.fj(),r=t.Zi(1,h=sit(t,e,n),n,e,o),t.bj()&&!(t.ni()&&h!=null?yi(h,n):Vt(h)===Vt(n))?(h!=null&&(s=t.dj(h,s)),s=t.cj(n,s),t.ij()&&(s=t.lj(h,n,s)),s?(s.Ei(r),s.Fi()):t.$i(r)):(t.ij()&&(s=t.lj(h,n,s)),s?(s.Ei(r),s.Fi()):t.$i(r)),h):(h=sit(t,e,n),t.bj()&&!(t.ni()&&h!=null?yi(h,n):Vt(h)===Vt(n))&&(s=null,h!=null&&(s=t.dj(h,null)),s=t.cj(n,s),s&&s.Fi()),h)}function E_(t,e){var n,r,s,o,h,d,v,k;e%=24,t.q.getHours()!=e&&(r=new b.Date(t.q.getTime()),r.setDate(r.getDate()+1),d=t.q.getTimezoneOffset()-r.getTimezoneOffset(),d>0&&(v=d/60|0,k=d%60,s=t.q.getDate(),n=t.q.getHours(),n+v>=24&&++s,o=new b.Date(t.q.getFullYear(),t.q.getMonth(),s,e+v,t.q.getMinutes()+k,t.q.getSeconds(),t.q.getMilliseconds()),t.q.setTime(o.getTime()))),h=t.q.getTime(),t.q.setTime(h+36e5),t.q.getHours()!=e&&t.q.setTime(h)}function Ryn(t,e){var n,r,s,o,h;if(vr(e,"Path-Like Graph Wrapping",1),t.b.c.length==0){or(e);return}if(s=new m5t(t),h=(s.i==null&&(s.i=fyt(s,new VN)),Xt(s.i)*s.f),n=h/(s.i==null&&(s.i=fyt(s,new VN)),Xt(s.i)),s.b>n){or(e);return}switch(u(Q(t,(Te(),ght)),337).g){case 2:o=new UN;break;case 0:o=new HN;break;default:o=new WN}if(r=o.Vf(t,s),!o.Wf())switch(u(Q(t,wG),338).g){case 2:r=Doe(s,r);break;case 1:r=Mae(s,r)}F3n(t,s,r),or(e)}function jyn(t,e){var n,r,s,o;if(Ein(t.d,t.e),t.c.a.$b(),Xt(ye(Q(e.j,(Te(),aG))))!=0||Xt(ye(Q(e.j,aG)))!=0)for(n=VE,Vt(Q(e.j,wb))!==Vt((V0(),vb))&&Jt(e.j,(ae(),Ov),(Nn(),!0)),o=u(Q(e.j,MS),19).a,s=0;ss&&++k,le(h,(An(d+k,e.c.length),u(e.c[d+k],19))),v+=(An(d+k,e.c.length),u(e.c[d+k],19)).a-r,++n;n1&&(v>Ru(d)*El(d)/2||h.b==0)&&(M=new rz(j),C=Ru(d)/El(d),k=zat(M,e,new Cx,n,r,s,C),Li(Gf(M.e),k),d=M,H.c[H.c.length]=M,v=0,j.c=Nt(Qn,De,1,0,5,1)));return Ls(H,j),H}function qyn(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K;if(n.mh(e)&&(C=(H=e,H?u(r,49).xh(H):null),C))if(K=n.bh(e,t.a),G=e.t,G>1||G==-1)if(M=u(K,69),j=u(C,69),M.dc())j.$b();else for(h=!!no(e),o=0,d=t.a?M.Kc():M.Zh();d.Ob();)k=u(d.Pb(),56),s=u(Xw(t,k),56),s?(h?(v=j.Xc(s),v==-1?j.Xh(o,s):o!=v&&j.ji(o,s)):j.Xh(o,s),++o):t.b&&!h&&(j.Xh(o,k),++o);else K==null?C.Wb(null):(s=Xw(t,K),s==null?t.b&&!no(e)&&C.Wb(K):C.Wb(s))}function Hyn(t,e){var n,r,s,o,h,d,v,k;for(n=new NK,s=new ar(lr(jo(e).a.Kc(),new z));zr(s);)if(r=u(Mr(s),17),!Ga(r)&&(d=r.c.i,L4t(d,yV))){if(k=V5t(t,d,yV,mV),k==-1)continue;n.b=b.Math.max(n.b,k),!n.a&&(n.a=new he),le(n.a,d)}for(h=new ar(lr(Ds(e).a.Kc(),new z));zr(h);)if(o=u(Mr(h),17),!Ga(o)&&(v=o.d.i,L4t(v,mV))){if(k=V5t(t,v,mV,yV),k==-1)continue;n.d=b.Math.max(n.d,k),!n.c&&(n.c=new he),le(n.c,v)}return n}function Nle(t){TE();var e,n,r,s;if(e=ps(t),t1e6)throw it(new _R("power of ten too big"));if(t<=wi)return Qx(bI(D6[1],e),e);for(r=bI(D6[1],wi),s=r,n=Tu(t-wi),e=ps(t%wi);yc(n,wi)>0;)s=e4(s,r),n=Jp(n,wi);for(s=e4(s,bI(D6[1],e)),s=Qx(s,wi),n=Tu(t-wi);yc(n,wi)>0;)s=Qx(s,wi),n=Jp(n,wi);return s=Qx(s,e),s}function Vyn(t,e){var n,r,s,o,h,d,v,k,C;for(vr(e,"Hierarchical port dummy size processing",1),v=new he,C=new he,r=Xt(ye(Q(t,(Te(),J4)))),n=r*2,o=new S(t.b);o.ak&&r>k)C=d,k=Xt(e.p[d.p])+Xt(e.d[d.p])+d.o.b+d.d.a;else{s=!1,n.n&&Jb(n,"bk node placement breaks on "+d+" which should have been after "+C);break}if(!s)break}return n.n&&Jb(n,e+" is feasible: "+s),s}function Kyn(t,e,n,r){var s,o,h,d,v,k,C;for(d=-1,C=new S(t);C.a=tt&&t.e[v.p]>G*t.b||St>=n*tt)&&(j.c[j.c.length]=d,d=new he,Ua(h,o),o.a.$b(),k-=C,H=b.Math.max(H,k*t.b+K),k+=St,Mt=St,St=0,C=0,K=0);return new fa(H,j)}function Jyn(t){var e,n,r,s,o,h,d,v,k,C,M,j,H;for(n=(k=new v1(t.c.b).a.vc().Kc(),new m1(k));n.a.Ob();)e=(d=u(n.a.Pb(),42),u(d.dd(),149)),s=e.a,s==null&&(s=""),r=CZe(t.c,s),!r&&s.length==0&&(r=_ln(t)),r&&!ay(r.c,e,!1)&&ri(r.c,e);for(h=ei(t.a,0);h.b!=h.d.c;)o=u(ti(h),478),C=Hrt(t.c,o.a),H=Hrt(t.c,o.b),C&&H&&ri(C.c,new fa(H,o.c));for(Ah(t.a),j=ei(t.b,0);j.b!=j.d.c;)M=u(ti(j),478),e=TZe(t.c,M.a),v=Hrt(t.c,M.b),e&&v&&gXe(e,v,M.c);Ah(t.b)}function t3n(t,e,n){var r,s,o,h,d,v,k,C,M,j,H;o=new Qk(t),h=new nae,s=(dD(h.g),dD(h.j),Xu(h.b),dD(h.d),dD(h.i),Xu(h.k),Xu(h.c),Xu(h.e),H=joe(h,o,null),Ace(h,o),H),e&&(k=new Qk(e),d=l3n(k),z4t(s,lt(ct(CSt,1),De,527,0,[d]))),j=!1,M=!1,n&&(k=new Qk(n),IH in k.a&&(j=B0(k,IH).ge().a),Qde in k.a&&(M=B0(k,Qde).ge().a)),C=yHt(Kee(new r8,j),M),Wgn(new CZ,s,C),IH in o.a&&Yf(o,IH,null),(j||M)&&(v=new _x,Ile(C,v,j,M),Yf(o,IH,v)),r=new Szt(h),zun(new l2t(s),r)}function e3n(t,e,n){var r,s,o,h,d,v,k,C,M;for(h=new oae,k=lt(ct(Cr,1),Xr,25,15,[0]),s=-1,o=0,r=0,v=0;v0){if(s<0&&C.a&&(s=v,o=k[0],r=0),s>=0){if(d=C.b,v==s&&(d-=r++,d==0))return 0;if(!jhe(e,k,C,d,h)){v=s-1,k[0]=o;continue}}else if(s=-1,!jhe(e,k,C,0,h))return 0}else{if(s=-1,wa(C.c,0)==32){if(M=k[0],aee(e,k),k[0]>M)continue}else if(Frn(e,C.c,k[0])){k[0]+=C.c.length;continue}return 0}return F5n(h,n)?k[0]:0}function C_(t){var e,n,r,s,o,h,d,v;if(!t.f){if(v=new M0,d=new M0,e=uA,h=e.a.zc(t,e),h==null){for(o=new nr(Ao(t));o.e!=o.i.gc();)s=u(dr(o),26),is(v,C_(s));e.a.Bc(t)!=null,e.a.gc()==0}for(r=(!t.s&&(t.s=new fe(Mu,t,21,17)),new nr(t.s));r.e!=r.i.gc();)n=u(dr(r),170),_t(n,99)&&Dr(d,u(n,18));iy(d),t.r=new ZYt(t,(u(At(Wt((Hp(),Ln).o),6),18),d.i),d.g),is(v,t.r),iy(v),t.f=new V3((u(At(Wt(Ln.o),5),18),v.i),v.g),sl(t).b&=-3}return t.f}function n3n(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G;for(h=t.o,r=Nt(Cr,Xr,25,h,15,1),s=Nt(Cr,Xr,25,h,15,1),n=t.p,e=Nt(Cr,Xr,25,n,15,1),o=Nt(Cr,Xr,25,n,15,1),k=0;k=0&&!f4(t,C,M);)--M;s[C]=M}for(H=0;H=0&&!f4(t,d,G);)--d;o[G]=d}for(v=0;ve[j]&&jr[v]&&Sq(t,v,j,!1,!0)}function dxt(t){var e,n,r,s,o,h,d,v;n=je(Re(Q(t,(Jf(),gbe)))),o=t.a.c.d,d=t.a.d.d,n?(h=fd(ia(new $e(d.a,d.b),o),.5),v=fd(nc(t.e),.5),e=ia(Li(new $e(o.a,o.b),h),v),H2t(t.d,e)):(s=Xt(ye(Q(t.a,kbe))),r=t.d,o.a>=d.a?o.b>=d.b?(r.a=d.a+(o.a-d.a)/2+s,r.b=d.b+(o.b-d.b)/2-s-t.e.b):(r.a=d.a+(o.a-d.a)/2+s,r.b=o.b+(d.b-o.b)/2+s):o.b>=d.b?(r.a=o.a+(d.a-o.a)/2+s,r.b=d.b+(o.b-d.b)/2+s):(r.a=o.a+(d.a-o.a)/2+s,r.b=o.b+(d.b-o.b)/2-s-t.e.b))}function $c(t,e){var n,r,s,o,h,d,v;if(t==null)return null;if(o=t.length,o==0)return"";for(v=Nt(xh,yd,25,o,15,1),Lmt(0,o,t.length),Lmt(0,o,v.length),iXt(t,0,o,v,0),n=null,d=e,s=0,h=0;s0?Pl(n.a,0,o-1):""):t.substr(0,o-1):n?n.a:t}function jle(t){Mw(t,new k2(_w(Ew(Cw(Tw(new kg,A2),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new yg))),xe(t,A2,jot,Ie(p7t)),xe(t,A2,$ot,Ie(Qut)),xe(t,A2,E6,Ie(Jpe)),xe(t,A2,xv,Ie(g7t)),xe(t,A2,Zxt,Ie(rbe)),xe(t,A2,Jxt,Ie(nbe)),xe(t,A2,Qxt,Ie(ibe)),xe(t,A2,t6t,Ie(ebe)),xe(t,A2,o6t,Ie(tbe)),xe(t,A2,c6t,Ie(Xut)),xe(t,A2,u6t,Ie(d7t)),xe(t,A2,l6t,Ie(fV))}function gxt(t,e,n,r){var s,o,h,d,v,k,C,M,j;if(o=new Y0(t),D0(o,(Vn(),Hc)),Jt(o,(Te(),cs),(ua(),Gc)),s=0,e){for(h=new Mc,Jt(h,(ae(),_i),e),Jt(o,_i,e.i),Bs(h,(ve(),Bn)),Uo(h,o),j=wd(e.e),k=j,C=0,M=k.length;C0)if(n-=r.length-e,n>=0){for(s.a+="0.";n>N2.length;n-=N2.length)wKt(s,N2);JWt(s,N2,ps(n)),Gr(s,r.substr(e))}else n=e-n,Gr(s,Pl(r,e,ps(n))),s.a+=".",Gr(s,RM(r,ps(n)));else{for(Gr(s,r.substr(e));n<-N2.length;n+=N2.length)wKt(s,N2);JWt(s,N2,ps(-n))}return s.a}function pxt(t,e,n,r){var s,o,h,d,v,k,C,M,j;return v=ia(new $e(n.a,n.b),t),k=v.a*e.b-v.b*e.a,C=e.a*r.b-e.b*r.a,M=(v.a*r.b-v.b*r.a)/C,j=k/C,C==0?k==0?(s=Li(new $e(n.a,n.b),fd(new $e(r.a,r.b),.5)),o=Wp(t,s),h=Wp(Li(new $e(t.a,t.b),e),s),d=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o=0&&M<=1&&j>=0&&j<=1?Li(new $e(t.a,t.b),fd(new $e(e.a,e.b),M)):null}function i3n(t,e,n){var r,s,o,h,d;if(r=u(Q(t,(Te(),tht)),21),n.a>e.a&&(r.Hc((hy(),WO))?t.c.a+=(n.a-e.a)/2:r.Hc(YO)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((hy(),XO))?t.c.b+=(n.b-e.b)/2:r.Hc(KO)&&(t.c.b+=n.b-e.b)),u(Q(t,(ae(),Vc)),21).Hc((oo(),vh))&&(n.a>e.a||n.b>e.b))for(d=new S(t.a);d.ae.a&&(r.Hc((hy(),WO))?t.c.a+=(n.a-e.a)/2:r.Hc(YO)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((hy(),XO))?t.c.b+=(n.b-e.b)/2:r.Hc(KO)&&(t.c.b+=n.b-e.b)),u(Q(t,(ae(),Vc)),21).Hc((oo(),vh))&&(n.a>e.a||n.b>e.b))for(h=new S(t.a);h.ae&&(s=0,o+=C.b+n,M.c[M.c.length]=C,C=new Zvt(o,n),r=new Iit(0,C.f,C,n),az(C,r),s=0),r.b.c.length==0||v.f>=r.o&&v.f<=r.f||r.a*.5<=v.f&&r.a*1.5>=v.f?h3t(r,v):(h=new Iit(r.s+r.r+n,C.f,C,n),az(C,h),h3t(h,v)),s=v.i+v.g;return M.c[M.c.length]=C,M}function T4(t){var e,n,r,s,o,h,d,v;if(!t.a){if(t.o=null,v=new Wzt(t),e=new Ep,n=uA,d=n.a.zc(t,n),d==null){for(h=new nr(Ao(t));h.e!=h.i.gc();)o=u(dr(h),26),is(v,T4(o));n.a.Bc(t)!=null,n.a.gc()==0}for(s=(!t.s&&(t.s=new fe(Mu,t,21,17)),new nr(t.s));s.e!=s.i.gc();)r=u(dr(s),170),_t(r,322)&&Dr(e,u(r,34));iy(e),t.k=new QYt(t,(u(At(Wt((Hp(),Ln).o),7),18),e.i),e.g),is(v,t.k),iy(v),t.a=new V3((u(At(Wt(Ln.o),4),18),v.i),v.g),sl(t).b&=-2}return t.a}function c3n(t,e,n,r,s,o,h){var d,v,k,C,M,j;return M=!1,v=Wce(n.q,e.f+e.b-n.q.f),j=s-(n.q.e+v-h),j=(An(o,t.c.length),u(t.c[o],200)).e,C=(d=__(r,j,!1),d.a),C>e.b&&!k)?!1:((k||C<=e.b)&&(k&&C>e.b?(n.d=C,vD(n,Qae(n,C))):(bae(n.q,v),n.c=!0),vD(r,s-(n.s+n.r)),tI(r,n.q.e+n.q.d,e.f),az(e,r),t.c.length>o&&(sI((An(o,t.c.length),u(t.c[o],200)),r),(An(o,t.c.length),u(t.c[o],200)).a.c.length==0&&Fg(t,o)),M=!0),M)}function bxt(t,e,n,r){var s,o,h,d,v,k,C;if(C=ou(t.e.Tg(),e),s=0,o=u(t.g,119),v=null,to(),u(e,66).Oj()){for(d=0;dt.o.a&&(C=(v-t.o.a)/2,d.b=b.Math.max(d.b,C),d.c=b.Math.max(d.c,C))}}function l3n(t){var e,n,r,s,o,h,d,v;for(o=new vZt,YXe(o,(i6(),G3e)),r=(s=yit(t,Nt(Ae,ee,2,0,6,1)),new mx(new yl(new Eet(t,s).b)));r.b0?t.i:0)>e&&v>0&&(o=0,h+=v+t.i,s=b.Math.max(s,j),r+=v+t.i,v=0,j=0,n&&(++M,le(t.n,new E$(t.s,h,t.i))),d=0),j+=k.g+(d>0?t.i:0),v=b.Math.max(v,k.f),n&&W3t(u(Ne(t.n,M),211),k),o+=k.g+(d>0?t.i:0),++d;return s=b.Math.max(s,j),r+=v,n&&(t.r=s,t.d=r,Q3t(t.j)),new ah(t.s,t.t,s,r)}function Dc(t,e,n,r,s){Gd();var o,h,d,v,k,C,M,j,H;if(bvt(t,"src"),bvt(n,"dest"),j=ol(t),v=ol(n),jwt((j.i&4)!=0,"srcType is not an array"),jwt((v.i&4)!=0,"destType is not an array"),M=j.c,h=v.c,jwt(M.i&1?M==h:(h.i&1)==0,"Array types don't match"),H=t.length,k=n.length,e<0||r<0||s<0||e+s>H||r+s>k)throw it(new Dpt);if(!(M.i&1)&&j!=v)if(C=u2(t),o=u2(n),Vt(t)===Vt(n)&&er;)ts(o,d,C[--e]);else for(d=r+s;r0&&n5t(t,e,n,r,s,!0)}function Lat(){Lat=Z,qge=lt(ct(Cr,1),Xr,25,15,[Sa,1162261467,D_,1220703125,362797056,1977326743,D_,387420489,Gq,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,D_,1291467969,1544804416,1838265625,60466176]),Hge=lt(ct(Cr,1),Xr,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function h3n(t){var e,n,r,s,o,h,d,v;for(s=new S(t.b);s.a=t.b.length?(o[s++]=h.b[r++],o[s++]=h.b[r++]):r>=h.b.length?(o[s++]=t.b[n++],o[s++]=t.b[n++]):h.b[r]0?t.i:0)),++e;for(Ehn(t.n,v),t.d=n,t.r=r,t.g=0,t.f=0,t.e=0,t.o=as,t.p=as,o=new S(t.b);o.a0&&(s=(!t.n&&(t.n=new fe(qo,t,1,7)),u(At(t.n,0),137)).a,!s||Gr(Gr((e.a+=' "',e),s),'"'))),n=(!t.b&&(t.b=new Cn(br,t,4,7)),!(t.b.i<=1&&(!t.c&&(t.c=new Cn(br,t,5,8)),t.c.i<=1))),n?e.a+=" [":e.a+=" ",Gr(e,_2t(new vet,new nr(t.b))),n&&(e.a+="]"),e.a+=Uot,n&&(e.a+="["),Gr(e,_2t(new vet,new nr(t.c))),n&&(e.a+="]"),e.a)}function Mat(t,e){var n,r,s,o,h,d,v;if(t.a){if(d=t.a.ne(),v=null,d!=null?e.a+=""+d:(h=t.a.Dj(),h!=null&&(o=hd(h,Cu(91)),o!=-1?(v=h.substr(o),e.a+=""+Pl(h==null?_u:(On(h),h),0,o)):e.a+=""+h)),t.d&&t.d.i!=0){for(s=!0,e.a+="<",r=new nr(t.d);r.e!=r.i.gc();)n=u(dr(r),87),s?s=!1:e.a+=Ya,Mat(n,e);e.a+=">"}v!=null&&(e.a+=""+v)}else t.e?(d=t.e.zb,d!=null&&(e.a+=""+d)):(e.a+="?",t.b?(e.a+=" super ",Mat(t.b,e)):t.f&&(e.a+=" extends ",Mat(t.f,e)))}function g3n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn;for(Kt=t.c,ue=e.c,n=Ro(Kt.a,t,0),r=Ro(ue.a,e,0),St=u(ov(t,(so(),tl)).Kc().Pb(),11),Qe=u(ov(t,nu).Kc().Pb(),11),Rt=u(ov(e,tl).Kc().Pb(),11),Rn=u(ov(e,nu).Kc().Pb(),11),gt=wd(St.e),_e=wd(Qe.g),Mt=wd(Rt.e),We=wd(Rn.g),ly(t,r,ue),h=Mt,C=0,G=h.length;CC?new i2((Uf(),Ky),n,e,k-C):k>0&&C>0&&(new i2((Uf(),Ky),e,n,0),new i2(Ky,n,e,0))),h)}function qle(t,e){var n,r,s,o,h,d;for(h=new p2(new Cg(t.f.b).a);h.b;){if(o=Zw(h),s=u(o.cd(),594),e==1){if(s.gf()!=(ao(),rg)&&s.gf()!=ng)continue}else if(s.gf()!=(ao(),zh)&&s.gf()!=Cf)continue;switch(r=u(u(o.dd(),46).b,81),d=u(u(o.dd(),46).a,189),n=d.c,s.gf().g){case 2:r.g.c=t.e.a,r.g.b=b.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=b.Math.max(1,r.g.b-n);break;case 4:r.g.d=t.e.b,r.g.a=b.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=b.Math.max(1,r.g.a-n)}}}function p3n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K;for(d=Nt(Cr,Xr,25,e.b.c.length,15,1),k=Nt(flt,oe,267,e.b.c.length,0,1),v=Nt(l0,Yg,10,e.b.c.length,0,1),M=t.a,j=0,H=M.length;j0&&v[r]&&(G=W3(t.b,v[r],s)),K=b.Math.max(K,s.c.c.b+G);for(o=new S(C.e);o.a1)throw it(new Fn(aO));v||(o=Zd(e,r.Kc().Pb()),h.Fc(o))}return Syt(t,W4t(t,e,n),h)}function v3n(t,e){var n,r,s,o;for(ecn(e.b.j),ls(wu(new Tn(null,new _n(e.d,16)),new XX),new QX),o=new S(e.d);o.at.o.b||(n=Ko(t,Hn),d=e.d+e.a+(n.gc()-1)*h,d>t.o.b)))}function Oat(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G;if(h=t.e,v=e.e,h==0)return e;if(v==0)return t;if(o=t.d,d=e.d,o+d==2)return n=Ns(t.a[0],co),r=Ns(e.a[0],co),h==v?(C=Pa(n,r),G=Ar(C),H=Ar(Vm(C,32)),H==0?new Ng(h,G):new X3(h,2,lt(ct(Cr,1),Xr,25,15,[G,H]))):JD(h<0?Jp(r,n):Jp(n,r));if(h==v)j=h,M=o>=d?Krt(t.a,o,e.a,d):Krt(e.a,d,t.a,o);else{if(s=o!=d?o>d?1:-1:qyt(t.a,e.a,o),s==0)return rb(),s7;s==1?(j=h,M=Wrt(t.a,o,e.a,d)):(j=v,M=Wrt(e.a,d,t.a,o))}return k=new X3(j,M.length,M),N9(k),k}function Pat(t,e,n,r,s,o,h){var d,v,k,C,M,j,H;return M=je(Re(Q(e,(Te(),l9t)))),j=null,o==(so(),tl)&&r.c.i==n?j=r.c:o==nu&&r.d.i==n&&(j=r.d),k=h,!k||!M||j?(C=(ve(),Zo),j?C=j.j:G3(u(Q(n,cs),98))&&(C=o==tl?Bn:Hn),v=k3n(t,e,n,o,C,r),d=Grt((Na(n),r)),o==tl?(Oa(d,u(Ne(v.j,0),11)),oa(d,s)):(Oa(d,s),oa(d,u(Ne(v.j,0),11))),k=new oie(r,d,v,u(Q(v,(ae(),_i)),11),o,!j)):(le(k.e,r),H=b.Math.max(Xt(ye(Q(k.d,Jg))),Xt(ye(Q(r,Jg)))),Jt(k.d,Jg,H)),ln(t.a,r,new Fj(k.d,e,o)),k}function Pq(t,e){var n,r,s,o,h,d,v,k,C,M;if(C=null,t.d&&(C=u(Nc(t.d,e),138)),!C){if(o=t.a.Mh(),M=o.i,!t.d||HC(t.d)!=M){for(v=new _r,t.d&&Y9(v,t.d),k=v.f.c+v.g.c,d=k;d0?(H=(G-1)*n,d&&(H+=r),C&&(H+=r),H=t.b[s+1])s+=2;else if(n0)for(r=new Bu(u(Ai(t.a,o),21)),wn(),Zs(r,new Si(e)),s=new da(o.b,0);s.bKt)?(v=2,h=wi):v==0?(v=1,h=_e):(v=0,h=_e)):(H=_e>=h||h-_e0?1:Iw(isNaN(r),isNaN(0)))>=0^(wf(_d),(b.Math.abs(d)<=_d||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Iw(isNaN(d),isNaN(0)))>=0)?b.Math.max(d,r):(wf(_d),(b.Math.abs(r)<=_d||r==0||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:Iw(isNaN(r),isNaN(0)))>0?b.Math.sqrt(d*d+r*r):-b.Math.sqrt(d*d+r*r))}function E2(t,e){var n,r,s,o,h,d;if(e){if(!t.a&&(t.a=new ER),t.e==2){kR(t.a,e);return}if(e.e==1){for(s=0;s=Ka?go(n,l3t(r)):S8(n,r&ys),h=new krt(10,null,0),unn(t.a,h,d-1)):(n=(h.bm().length+o,new $C),go(n,h.bm())),e.e==0?(r=e._l(),r>=Ka?go(n,l3t(r)):S8(n,r&ys)):go(n,e.bm()),u(h,521).b=n.a}}function Xle(t){var e,n,r,s,o;return t.g!=null?t.g:t.a<32?(t.g=W5n(Tu(t.f),ps(t.e)),t.g):(s=Hat((!t.c&&(t.c=VD(t.f)),t.c),0),t.e==0?s:(e=(!t.c&&(t.c=VD(t.f)),t.c).e<0?2:1,n=s.length,r=-t.e+n-e,o=new Mp,o.a+=""+s,t.e>0&&r>=-6?r>=0?uD(o,n-ps(t.e),String.fromCharCode(46)):(o.a=Pl(o.a,0,e-1)+"0."+RM(o.a,e-1),uD(o,e+1,Mh(N2,0,-ps(r)-1))):(n-e>=1&&(uD(o,e,String.fromCharCode(46)),++n),uD(o,n,String.fromCharCode(69)),r>0&&uD(o,++n,String.fromCharCode(43)),uD(o,++n,""+_9(Tu(r)))),t.g=o.a,t.g))}function F3n(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt;if(!n.dc()){for(d=0,j=0,r=n.Kc(),G=u(r.Pb(),19).a;d1&&(v=k.mg(v,t.a,d));return v.c.length==1?u(Ne(v,v.c.length-1),220):v.c.length==2?T3n((An(0,v.c.length),u(v.c[0],220)),(An(1,v.c.length),u(v.c[1],220)),h,o):null}function Qle(t){var e,n,r,s,o,h;for(xu(t.a,new xi),n=new S(t.a);n.a=b.Math.abs(r.b)?(r.b=0,o.d+o.a>h.d&&o.dh.c&&o.c0){if(e=new n2t(t.i,t.g),n=t.i,o=n<100?null:new Dp(n),t.ij())for(r=0;r0){for(d=t.g,k=t.i,z9(t),o=k<100?null:new Dp(k),r=0;r>13|(t.m&15)<<9,s=t.m>>4&8191,o=t.m>>17|(t.h&255)<<5,h=(t.h&1048320)>>8,d=e.l&8191,v=e.l>>13|(e.m&15)<<9,k=e.m>>4&8191,C=e.m>>17|(e.h&255)<<5,M=(e.h&1048320)>>8,We=n*d,Qe=r*d,Rn=s*d,zn=o*d,hr=h*d,v!=0&&(Qe+=n*v,Rn+=r*v,zn+=s*v,hr+=o*v),k!=0&&(Rn+=n*k,zn+=r*k,hr+=s*k),C!=0&&(zn+=n*C,hr+=r*C),M!=0&&(hr+=n*M),H=We&hl,G=(Qe&511)<<13,j=H+G,tt=We>>22,gt=Qe>>9,Mt=(Rn&262143)<<4,St=(zn&31)<<17,K=tt+gt+Mt+St,Kt=Rn>>18,ue=zn>>5,_e=(hr&4095)<<8,Rt=Kt+ue+_e,K+=j>>22,j&=hl,Rt+=K>>22,K&=hl,Rt&=Z0,iu(j,K,Rt)}function Zle(t){var e,n,r,s,o,h,d;if(d=u(Ne(t.j,0),11),d.g.c.length!=0&&d.e.c.length!=0)throw it(new No("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(d.g.c.length!=0){for(o=as,n=new S(d.g);n.a4)if(t.wj(e)){if(t.rk()){if(s=u(e,49),r=s.Ug(),v=r==t.e&&(t.Dk()?s.Og(s.Vg(),t.zk())==t.Ak():-1-s.Vg()==t.aj()),t.Ek()&&!v&&!r&&s.Zg()){for(o=0;o0&&(k=t.n.a/o);break;case 2:case 4:s=t.i.o.b,s>0&&(k=t.n.b/s)}Jt(t,(ae(),Fv),k)}if(v=t.o,h=t.a,r)h.a=r.a,h.b=r.b,t.d=!0;else if(e!=G1&&e!=Tb&&d!=Zo)switch(d.g){case 1:h.a=v.a/2;break;case 2:h.a=v.a,h.b=v.b/2;break;case 3:h.a=v.a/2,h.b=v.b;break;case 4:h.b=v.b/2}else h.a=v.a/2,h.b=v.b/2}function A_(t){var e,n,r,s,o,h,d,v,k,C;if(t.ej())if(C=t.Vi(),v=t.fj(),C>0)if(e=new gyt(t.Gi()),n=C,o=n<100?null:new Dp(n),VM(t,n,e.g),s=n==1?t.Zi(4,At(e,0),null,0,v):t.Zi(6,e,null,-1,v),t.bj()){for(r=new nr(e);r.e!=r.i.gc();)o=t.dj(dr(r),o);o?(o.Ei(s),o.Fi()):t.$i(s)}else o?(o.Ei(s),o.Fi()):t.$i(s);else VM(t,t.Vi(),t.Wi()),t.$i(t.Zi(6,(wn(),io),null,-1,v));else if(t.bj())if(C=t.Vi(),C>0){for(d=t.Wi(),k=C,VM(t,C,d),o=k<100?null:new Dp(k),r=0;rt.d[h.p]&&(n+=fmt(t.b,o)*u(v.b,19).a,Up(t.a,pe(o)));for(;!BC(t.a);)Hmt(t.b,u(Hx(t.a),19).a)}return n}function W3n(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt;for(M=new xo(u(qe(t,(fq(),OSt)),8)),M.a=b.Math.max(M.a-n.b-n.c,0),M.b=b.Math.max(M.b-n.d-n.a,0),s=ye(qe(t,MSt)),(s==null||(On(s),s<=0))&&(s=1.3),d=new he,G=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));G.e!=G.i.gc();)H=u(dr(G),33),h=new LWt(H),d.c[d.c.length]=h;switch(j=u(qe(t,lft),311),j.g){case 3:tt=pyn(d,e,M.a,M.b,(k=r,On(s),k));break;case 1:tt=zyn(d,e,M.a,M.b,(C=r,On(s),C));break;default:tt=X3n(d,e,M.a,M.b,(v=r,On(s),v))}o=new rz(tt),K=zat(o,e,n,M.a,M.b,r,(On(s),s)),wv(t,K.a,K.b,!1,!0)}function Y3n(t,e){var n,r,s,o;n=e.b,o=new Bu(n.j),s=0,r=n.j,r.c=Nt(Qn,De,1,0,5,1),$w(u(h2(t.b,(ve(),Pn),(nv(),Dv)),15),n),s=nI(o,s,new jX,r),$w(u(h2(t.b,Pn,pb),15),n),s=nI(o,s,new VT,r),$w(u(h2(t.b,Pn,Mv),15),n),$w(u(h2(t.b,Hn,Dv),15),n),$w(u(h2(t.b,Hn,pb),15),n),s=nI(o,s,new PN,r),$w(u(h2(t.b,Hn,Mv),15),n),$w(u(h2(t.b,mr,Dv),15),n),s=nI(o,s,new FN,r),$w(u(h2(t.b,mr,pb),15),n),s=nI(o,s,new NN,r),$w(u(h2(t.b,mr,Mv),15),n),$w(u(h2(t.b,Bn,Dv),15),n),s=nI(o,s,new qX,r),$w(u(h2(t.b,Bn,pb),15),n),$w(u(h2(t.b,Bn,Mv),15),n)}function K3n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K;for(vr(e,"Layer size calculation",1),C=as,k=Cs,s=!1,d=new S(t.b);d.a.5?gt-=h*2*(G-.5):G<.5&&(gt+=o*2*(.5-G)),s=d.d.b,gttt.a-K-C&&(gt=tt.a-K-C),d.n.a=e+gt}}function X3n(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G,K,tt;for(d=Nt(aa,vo,25,t.c.length,15,1),j=new n$(new sB),e4t(j,t),k=0,K=new he;j.b.c.length!=0;)if(h=u(j.b.c.length==0?null:Ne(j.b,0),157),k>1&&Ru(h)*El(h)/2>d[0]){for(o=0;od[o];)++o;G=new Qd(K,0,o+1),M=new rz(G),C=Ru(h)/El(h),v=zat(M,e,new Cx,n,r,s,C),Li(Gf(M.e),v),R8(xE(j,M)),H=new Qd(K,o+1,K.c.length),e4t(j,H),K.c=Nt(Qn,De,1,0,5,1),k=0,AKt(d,d.length,0)}else tt=j.b.c.length==0?null:Ne(j.b,0),tt!=null&&vit(j,0),k>0&&(d[k]=d[k-1]),d[k]+=Ru(h)*El(h),++k,K.c[K.c.length]=h;return K}function Q3n(t){var e,n,r,s,o;if(r=u(Q(t,(Te(),uu)),163),r==(dh(),bb)){for(n=new ar(lr(jo(t).a.Kc(),new z));zr(n);)if(e=u(Mr(n),17),!jJt(e))throw it(new R3(Kot+rI(t)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==jy){for(o=new ar(lr(Ds(t).a.Kc(),new z));zr(o);)if(s=u(Mr(o),17),!jJt(s))throw it(new R3(Kot+rI(t)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function Z3n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G;for(vr(e,"Label dummy removal",1),r=Xt(ye(Q(t,(Te(),V6)))),s=Xt(ye(Q(t,Wy))),k=u(Q(t,Wl),103),v=new S(t.b);v.a0&&soe(t,d,M);for(s=new S(M);s.a>19&&(e=rE(e),v=!v),h=Q2n(e),o=!1,s=!1,r=!1,t.h==NI&&t.m==0&&t.l==0)if(s=!0,o=!0,h==-1)t=yUt((q8(),sEt)),r=!0,v=!v;else return d=v5t(t,h),v&&Ait(d),n&&(hb=iu(0,0,0)),d;else t.h>>19&&(o=!0,t=rE(t),r=!0,v=!v);return h!=-1?Run(t,h,v,o,n):u4t(t,e)<0?(n&&(o?hb=rE(t):hb=iu(t.l,t.m,t.h)),iu(0,0,0)):qmn(r?t:iu(t.l,t.m,t.h),e,v,o,s,n)}function Fq(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G;if(t.e&&t.c.ce.f||e.g>t.f)){for(n=0,r=0,h=t.w.a.ec().Kc();h.Ob();)s=u(h.Pb(),11),$it(Yo(lt(ct(Ws,1),ee,8,0,[s.i.n,s.n,s.a])).b,e.g,e.f)&&++n;for(d=t.r.a.ec().Kc();d.Ob();)s=u(d.Pb(),11),$it(Yo(lt(ct(Ws,1),ee,8,0,[s.i.n,s.n,s.a])).b,e.g,e.f)&&--n;for(v=e.w.a.ec().Kc();v.Ob();)s=u(v.Pb(),11),$it(Yo(lt(ct(Ws,1),ee,8,0,[s.i.n,s.n,s.a])).b,t.g,t.f)&&++r;for(o=e.r.a.ec().Kc();o.Ob();)s=u(o.Pb(),11),$it(Yo(lt(ct(Ws,1),ee,8,0,[s.i.n,s.n,s.a])).b,t.g,t.f)&&--r;n=0)return s=ohn(t,e.substr(1,h-1)),C=e.substr(h+1,v-(h+1)),nxn(t,C,s)}else{if(n=-1,lEt==null&&(lEt=new RegExp("\\d")),lEt.test(String.fromCharCode(d))&&(n=bwt(e,Cu(46),v-1),n>=0)){r=u(Urt(t,Dee(t,e.substr(1,n-1)),!1),58),k=0;try{k=ql(e.substr(n+1),Sa,wi)}catch(j){throw j=Wi(j),_t(j,127)?(o=j,it(new W$(o))):it(j)}if(k=0)return n;switch(Hw(To(t,n))){case 2:{if(hn("",$g(t,n.Hj()).ne())){if(v=rD(To(t,n)),d=M8(To(t,n)),C=C5t(t,e,v,d),C)return C;for(s=Z5t(t,e),h=0,M=s.gc();h1)throw it(new Fn(aO));for(C=ou(t.e.Tg(),e),r=u(t.g,119),h=0;h1,k=new L1(j.b);Go(k.a)||Go(k.b);)v=u(Go(k.a)?J(k.a):J(k.b),17),M=v.c==j?v.d:v.c,b.Math.abs(Yo(lt(ct(Ws,1),ee,8,0,[M.i.n,M.n,M.a])).b-h.b)>1&&evn(t,v,h,o,j)}}function l4n(t){var e,n,r,s,o,h;if(s=new da(t.e,0),r=new da(t.a,0),t.d)for(n=0;nLct;){for(o=e,h=0;b.Math.abs(e-o)0),s.a.Xb(s.c=--s.b),Syn(t,t.b-h,o,r,s),Zn(s.b0),r.a.Xb(r.c=--r.b)}if(!t.d)for(n=0;n0?(t.f[C.p]=H/(C.e.c.length+C.g.c.length),t.c=b.Math.min(t.c,t.f[C.p]),t.b=b.Math.max(t.b,t.f[C.p])):d&&(t.f[C.p]=H)}}function f4n(t){t.b=null,t.bb=null,t.fb=null,t.qb=null,t.a=null,t.c=null,t.d=null,t.e=null,t.f=null,t.n=null,t.M=null,t.L=null,t.Q=null,t.R=null,t.K=null,t.db=null,t.eb=null,t.g=null,t.i=null,t.j=null,t.k=null,t.gb=null,t.o=null,t.p=null,t.q=null,t.r=null,t.$=null,t.ib=null,t.S=null,t.T=null,t.t=null,t.s=null,t.u=null,t.v=null,t.w=null,t.B=null,t.A=null,t.C=null,t.D=null,t.F=null,t.G=null,t.H=null,t.I=null,t.J=null,t.P=null,t.Z=null,t.U=null,t.V=null,t.W=null,t.X=null,t.Y=null,t._=null,t.ab=null,t.cb=null,t.hb=null,t.nb=null,t.lb=null,t.mb=null,t.ob=null,t.pb=null,t.jb=null,t.kb=null,t.N=!1,t.O=!1}function d4n(t,e,n){var r,s,o,h;for(vr(n,"Graph transformation ("+t.a+")",1),h=Ww(e.a),o=new S(e.b);o.a0&&(t.a=v+(H-1)*o,e.c.b+=t.a,e.f.b+=t.a)),G.a.gc()!=0&&(j=new ert(1,o),H=Txt(j,e,G,K,e.f.b+v-e.c.b),H>0&&(e.f.b+=v+(H-1)*o))}function OE(t,e){var n,r,s,o;o=t.F,e==null?(t.F=null,aE(t,null)):(t.F=(On(e),e),r=hd(e,Cu(60)),r!=-1?(s=e.substr(0,r),hd(e,Cu(46))==-1&&!hn(s,b6)&&!hn(s,tS)&&!hn(s,FH)&&!hn(s,eS)&&!hn(s,nS)&&!hn(s,rS)&&!hn(s,iS)&&!hn(s,sS)&&(s=$0e),n=Tj(e,Cu(62)),n!=-1&&(s+=""+e.substr(n+1)),aE(t,s)):(s=e,hd(e,Cu(46))==-1&&(r=hd(e,Cu(91)),r!=-1&&(s=e.substr(0,r)),!hn(s,b6)&&!hn(s,tS)&&!hn(s,FH)&&!hn(s,eS)&&!hn(s,nS)&&!hn(s,rS)&&!hn(s,iS)&&!hn(s,sS)?(s=$0e,r!=-1&&(s+=""+e.substr(r))):s=e),aE(t,s),s==e&&(t.F=t.D))),t.Db&4&&!(t.Db&1)&&mi(t,new Js(t,1,5,o,e))}function p4n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St;if(K=e.b.c.length,!(K<3)){for(H=Nt(Cr,Xr,25,K,15,1),M=0,C=new S(e.b);C.ah)&&Fs(t.b,u(tt.b,17));++d}o=h}}}function xxt(t,e){var n;if(e==null||hn(e,_u)||e.length==0&&t.k!=(Ug(),U6))return null;switch(t.k.g){case 1:return Vz(e,XE)?(Nn(),r7):Vz(e,Vct)?(Nn(),F2):null;case 2:try{return pe(ql(e,Sa,wi))}catch(r){if(r=Wi(r),_t(r,127))return null;throw it(r)}case 4:try{return dy(e)}catch(r){if(r=Wi(r),_t(r,127))return null;throw it(r)}case 3:return e;case 5:return Rre(t),Voe(t,e);case 6:return Rre(t),C2n(t,t.a,e);case 7:try{return n=Bbn(t),n.Jf(e),n}catch(r){if(r=Wi(r),_t(r,32))return null;throw it(r)}default:throw it(new No("Invalid type set for this layout option."))}}function b4n(t){H9();var e,n,r,s,o,h,d;for(d=new pqt,n=new S(t);n.a=d.b.c)&&(d.b=e),(!d.c||e.c<=d.c.c)&&(d.d=d.c,d.c=e),(!d.e||e.d>=d.e.d)&&(d.e=e),(!d.f||e.d<=d.f.d)&&(d.f=e);return r=new Yz((nE(),Lv)),hD(t,Ube,new yl(lt(ct(mO,1),De,369,0,[r]))),h=new Yz(Fy),hD(t,Gbe,new yl(lt(ct(mO,1),De,369,0,[h]))),s=new Yz(Py),hD(t,Vbe,new yl(lt(ct(mO,1),De,369,0,[s]))),o=new Yz(z4),hD(t,Hbe,new yl(lt(ct(mO,1),De,369,0,[o]))),aat(r.c,Lv),aat(s.c,Py),aat(o.c,z4),aat(h.c,Fy),d.a.c=Nt(Qn,De,1,0,5,1),Ls(d.a,r.c),Ls(d.a,l2(s.c)),Ls(d.a,o.c),Ls(d.a,l2(h.c)),d}function kxt(t){var e;switch(t.d){case 1:{if(t.hj())return t.o!=-2;break}case 2:{if(t.hj())return t.o==-2;break}case 3:case 5:case 4:case 6:case 7:return t.o>-2;default:return!1}switch(e=t.gj(),t.p){case 0:return e!=null&&je(Re(e))!=u9(t.k,0);case 1:return e!=null&&u(e,217).a!=Ar(t.k)<<24>>24;case 2:return e!=null&&u(e,172).a!=(Ar(t.k)&ys);case 6:return e!=null&&u9(u(e,162).a,t.k);case 5:return e!=null&&u(e,19).a!=Ar(t.k);case 7:return e!=null&&u(e,184).a!=Ar(t.k)<<16>>16;case 3:return e!=null&&Xt(ye(e))!=t.j;case 4:return e!=null&&u(e,155).a!=t.j;default:return e==null?t.n!=null:!yi(e,t.n)}}function AI(t,e,n){var r,s,o,h;return t.Fk()&&t.Ek()&&(h=Wnt(t,u(n,56)),Vt(h)!==Vt(n))?(t.Oi(e),t.Ui(e,Ite(t,e,h)),t.rk()&&(o=(s=u(n,49),t.Dk()?t.Bk()?s.ih(t.b,no(u(yn(vu(t.b),t.aj()),18)).n,u(yn(vu(t.b),t.aj()).Yj(),26).Bj(),null):s.ih(t.b,Gi(s.Tg(),no(u(yn(vu(t.b),t.aj()),18))),null,null):s.ih(t.b,-1-t.aj(),null,null)),!u(h,49).eh()&&(o=(r=u(h,49),t.Dk()?t.Bk()?r.gh(t.b,no(u(yn(vu(t.b),t.aj()),18)).n,u(yn(vu(t.b),t.aj()).Yj(),26).Bj(),o):r.gh(t.b,Gi(r.Tg(),no(u(yn(vu(t.b),t.aj()),18))),null,o):r.gh(t.b,-1-t.aj(),null,o))),o&&o.Fi()),xl(t.b)&&t.$i(t.Zi(9,n,h,e,!1)),h):n}function nhe(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt;for(C=Xt(ye(Q(t,(Te(),jv)))),r=Xt(ye(Q(t,x9t))),j=new Yu,Jt(j,jv,C+r),k=e,gt=k.d,K=k.c.i,Mt=k.d.i,tt=o2t(K.c),St=o2t(Mt.c),s=new he,M=tt;M<=St;M++)d=new Y0(t),D0(d,(Vn(),ta)),Jt(d,(ae(),_i),k),Jt(d,cs,(ua(),Gc)),Jt(d,bG,j),H=u(Ne(t.b,M),29),M==tt?ly(d,H.a.c.length-n,H):Eo(d,H),Rt=Xt(ye(Q(k,Jg))),Rt<0&&(Rt=0,Jt(k,Jg,Rt)),d.o.b=Rt,G=b.Math.floor(Rt/2),h=new Mc,Bs(h,(ve(),Bn)),Uo(h,d),h.n.b=G,v=new Mc,Bs(v,Hn),Uo(v,d),v.n.b=G,oa(k,h),o=new Vw,Mo(o,k),Jt(o,So,null),Oa(o,v),oa(o,gt),mdn(d,k,o),s.c[s.c.length]=o,k=o;return s}function Bat(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St;for(v=u(Gg(t,(ve(),Bn)).Kc().Pb(),11).e,H=u(Gg(t,Hn).Kc().Pb(),11).g,d=v.c.length,St=_1(u(Ne(t.j,0),11));d-- >0;){for(K=(An(0,v.c.length),u(v.c[0],17)),s=(An(0,H.c.length),u(H.c[0],17)),Mt=s.d.e,o=Ro(Mt,s,0),Esn(K,s.d,o),Oa(s,null),oa(s,null),G=K.a,e&&ri(G,new xo(St)),r=ei(s.a,0);r.b!=r.d.c;)n=u(ti(r),8),ri(G,new xo(n));for(gt=K.b,j=new S(s.b);j.a0&&(h=b.Math.max(h,Mne(t.C.b+r.d.b,s))),C=r,M=s,j=o;t.C&&t.C.c>0&&(H=j+t.C.c,k&&(H+=C.d.c),h=b.Math.max(h,(k1(),wf(B1),b.Math.abs(M-1)<=B1||M==1||isNaN(M)&&isNaN(1)?0:H/(1-M)))),n.n.b=0,n.a.a=h}function ihe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H;if(n=u(po(t.b,e),124),v=u(u(Ai(t.r,e),21),84),v.dc()){n.n.d=0,n.n.a=0;return}for(k=t.u.Hc((Zu(),sg)),h=0,t.A.Hc((Al(),K2))&&Bue(t,e),d=v.Kc(),C=null,j=0,M=0;d.Ob();)r=u(d.Pb(),111),o=Xt(ye(r.b.We((Cj(),uV)))),s=r.b.rf().b,C?(H=M+C.d.a+t.w+r.d.d,h=b.Math.max(h,(k1(),wf(B1),b.Math.abs(j-o)<=B1||j==o||isNaN(j)&&isNaN(o)?0:H/(o-j)))):t.C&&t.C.d>0&&(h=b.Math.max(h,Mne(t.C.d+r.d.d,o))),C=r,j=o,M=s;t.C&&t.C.a>0&&(H=M+t.C.a,k&&(H+=C.d.a),h=b.Math.max(h,(k1(),wf(B1),b.Math.abs(j-1)<=B1||j==1||isNaN(j)&&isNaN(1)?0:H/(1-j)))),n.n.d=0,n.a.b=h}function she(t,e,n){var r,s,o,h,d,v;for(this.g=t,d=e.d.length,v=n.d.length,this.d=Nt(l0,Yg,10,d+v,0,1),h=0;h0?lit(this,this.f/this.a):E1(e.g,e.d[0]).a!=null&&E1(n.g,n.d[0]).a!=null?lit(this,(Xt(E1(e.g,e.d[0]).a)+Xt(E1(n.g,n.d[0]).a))/2):E1(e.g,e.d[0]).a!=null?lit(this,E1(e.g,e.d[0]).a):E1(n.g,n.d[0]).a!=null&&lit(this,E1(n.g,n.d[0]).a)}function w4n(t,e){var n,r,s,o,h,d,v,k,C,M;for(t.a=new dXt(Ucn(XS)),r=new S(e.a);r.a=1&&(tt-h>0&&M>=0?(v.n.a+=K,v.n.b+=o*h):tt-h<0&&C>=0&&(v.n.a+=K*tt,v.n.b+=o));t.o.a=e.a,t.o.b=e.b,Jt(t,(Te(),$2),(Al(),r=u(Vf(rA),9),new sh(r,u(ff(r,r.length),9),0)))}function x4n(t,e,n,r,s,o){var h;if(!(e==null||!tst(e,nLt,rLt)))throw it(new Fn("invalid scheme: "+e));if(!t&&!(n!=null&&hd(n,Cu(35))==-1&&n.length>0&&(Rr(0,n.length),n.charCodeAt(0)!=47)))throw it(new Fn("invalid opaquePart: "+n));if(t&&!(e!=null&&yM(gU,e.toLowerCase()))&&!(n==null||!tst(n,oA,cA)))throw it(new Fn(S0e+n));if(t&&e!=null&&yM(gU,e.toLowerCase())&&!g0n(n))throw it(new Fn(S0e+n));if(!vhn(r))throw it(new Fn("invalid device: "+r));if(!hln(s))throw h=s==null?"invalid segments: null":"invalid segment: "+oln(s),it(new Fn(h));if(!(o==null||hd(o,Cu(35))==-1))throw it(new Fn("invalid query: "+o))}function k4n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt;for(vr(e,"Calculate Graph Size",1),e.n&&t&&gf(e,pf(t),(Sl(),Ql)),d=VE,v=VE,o=Ukt,h=Ukt,M=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));M.e!=M.i.gc();)k=u(dr(M),33),G=k.i,K=k.j,gt=k.g,r=k.f,s=u(qe(k,(ui(),JO)),142),d=b.Math.min(d,G-s.b),v=b.Math.min(v,K-s.d),o=b.Math.max(o,G+gt+s.c),h=b.Math.max(h,K+r+s.a);for(H=u(qe(t,(ui(),U2)),116),j=new $e(d-H.b,v-H.d),C=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));C.e!=C.i.gc();)k=u(dr(C),33),ku(k,k.i-j.a),Eu(k,k.j-j.b);tt=o-d+(H.b+H.c),n=h-v+(H.d+H.a),tv(t,tt),Jw(t,n),e.n&&t&&gf(e,pf(t),(Sl(),Ql))}function che(t){var e,n,r,s,o,h,d,v,k,C;for(r=new he,h=new S(t.e.a);h.a0){Kz(t,n,0),n.a+=String.fromCharCode(r),s=ofn(e,o),Kz(t,n,s),o+=s-1;continue}r==39?o+11)for(K=Nt(Cr,Xr,25,t.b.b.c.length,15,1),M=0,k=new S(t.b.b);k.a=d&&s<=v)d<=s&&o<=v?(n[C++]=s,n[C++]=o,r+=2):d<=s?(n[C++]=s,n[C++]=v,t.b[r]=v+1,h+=2):o<=v?(n[C++]=d,n[C++]=o,r+=2):(n[C++]=d,n[C++]=v,t.b[r]=v+1);else if(vsb)&&d<10);ubt(t.c,new W5),uhe(t),hnn(t.c),m4n(t.f)}function _4n(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt;if(je(Re(Q(n,(Te(),Hy)))))for(d=new S(n.j);d.a=2){for(v=ei(n,0),h=u(ti(v),8),d=u(ti(v),8);d.a0&&$D(k,!0,(ao(),Cf)),d.k==(Vn(),ks)&&NXt(k),ki(t.f,d,e)}}function M4n(t,e,n){var r,s,o,h,d,v,k,C,M,j;switch(vr(n,"Node promotion heuristic",1),t.g=e,N5n(t),t.q=u(Q(e,(Te(),oht)),260),C=u(Q(t.g,o9t),19).a,o=new pN,t.q.g){case 2:case 1:IE(t,o);break;case 3:for(t.q=(y4(),EG),IE(t,o),v=0,d=new S(t.a);d.at.j&&(t.q=FO,IE(t,o));break;case 4:for(t.q=(y4(),EG),IE(t,o),k=0,s=new S(t.b);s.at.k&&(t.q=NO,IE(t,o));break;case 6:j=ps(b.Math.ceil(t.f.length*C/100)),IE(t,new _p(j));break;case 5:M=ps(b.Math.ceil(t.d*C/100)),IE(t,new Hf(M));break;default:IE(t,o)}Evn(t,e),or(n)}function hhe(t,e,n){var r,s,o,h;this.j=t,this.e=_4t(t),this.o=this.j.e,this.i=!!this.o,this.p=this.i?u(Ne(n,Na(this.o).p),214):null,s=u(Q(t,(ae(),Vc)),21),this.g=s.Hc((oo(),vh)),this.b=new he,this.d=new Oie(this.e),h=u(Q(this.j,$6),230),this.q=cun(e,h,this.e),this.k=new PQt(this),o=A1(lt(ct(g2e,1),De,225,0,[this,this.d,this.k,this.q])),e==(ev(),RO)&&!je(Re(Q(t,(Te(),$y))))?(r=new A4t(this.e),o.c[o.c.length]=r,this.c=new rmt(r,h,u(this.q,402))):e==RO&&je(Re(Q(t,(Te(),$y))))?(r=new A4t(this.e),o.c[o.c.length]=r,this.c=new bne(r,h,u(this.q,402))):this.c=new gGt(e,this),le(o,this.c),Ule(o,this.e),this.s=fxn(this.k)}function D4n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt;for(M=u(xj((h=ei(new Lp(e).a.d,0),new Ex(h))),86),G=M?u(Q(M,(fc(),Rht)),86):null,s=1;M&&G;){for(v=0,Rt=0,n=M,r=G,d=0;d=t.i?(++t.i,le(t.a,pe(1)),le(t.b,C)):(r=t.c[e.p][1],ch(t.a,k,pe(u(Ne(t.a,k),19).a+1-r)),ch(t.b,k,Xt(ye(Ne(t.b,k)))+C-r*t.e)),(t.q==(y4(),FO)&&(u(Ne(t.a,k),19).a>t.j||u(Ne(t.a,k-1),19).a>t.j)||t.q==NO&&(Xt(ye(Ne(t.b,k)))>t.k||Xt(ye(Ne(t.b,k-1)))>t.k))&&(v=!1),h=new ar(lr(jo(e).a.Kc(),new z));zr(h);)o=u(Mr(h),17),d=o.c.i,t.f[d.p]==k&&(M=fhe(t,d),s=s+u(M.a,19).a,v=v&&je(Re(M.b)));return t.f[e.p]=k,s=s+t.c[e.p][0],new fa(pe(s),(Nn(),!!v))}function Txt(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G,K,tt,gt;for(M=new _r,h=new he,Poe(t,n,t.d.fg(),h,M),Poe(t,r,t.d.gg(),h,M),t.b=.2*(K=Ece(Wo(new Tn(null,new _n(h,16)),new eZ)),tt=Ece(Wo(new Tn(null,new _n(h,16)),new nZ)),b.Math.min(K,tt)),o=0,d=0;d=2&&(gt=Gce(h,!0,j),!t.e&&(t.e=new K$t(t)),ufn(t.e,gt,h,t.b)),Cae(h,j),W4n(h),H=-1,C=new S(h);C.ad)}function O4n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K;for(n=u(Q(t,(Te(),cs)),98),h=t.f,o=t.d,d=h.a+o.b+o.c,v=0-o.d-t.c.b,C=h.b+o.d+o.a-t.c.b,k=new he,M=new he,s=new S(e);s.a0),u(C.a.Xb(C.c=--C.b),17));o!=r&&C.b>0;)t.a[o.p]=!0,t.a[r.p]=!0,o=(Zn(C.b>0),u(C.a.Xb(C.c=--C.b),17));C.b>0&&Cl(C)}}function bhe(t,e,n){var r,s,o,h,d,v,k,C,M;if(t.a!=e.Aj())throw it(new Fn(QE+e.ne()+Cv));if(r=$g(($u(),ya),e).$k(),r)return r.Aj().Nh().Ih(r,n);if(h=$g(ya,e).al(),h){if(n==null)return null;if(d=u(n,15),d.dc())return"";for(M=new Ag,o=d.Kc();o.Ob();)s=o.Pb(),go(M,h.Aj().Nh().Ih(h,s)),M.a+=" ";return int(M,M.a.length-1)}if(C=$g(ya,e).bl(),!C.dc()){for(k=C.Kc();k.Ob();)if(v=u(k.Pb(),148),v.wj(n))try{if(M=v.Aj().Nh().Ih(v,n),M!=null)return M}catch(j){if(j=Wi(j),!_t(j,102))throw it(j)}throw it(new Fn("Invalid value: '"+n+"' for datatype :"+e.ne()))}return u(e,834).Fj(),n==null?null:_t(n,172)?""+u(n,172).a:ol(n)==tV?VUt(aA[0],u(n,199)):$o(n)}function j4n(t){var e,n,r,s,o,h,d,v,k,C;for(k=new Zi,d=new Zi,o=new S(t);o.a-1){for(s=ei(d,0);s.b!=s.d.c;)r=u(ti(s),128),r.v=h;for(;d.b!=0;)for(r=u(Dst(d,0),128),n=new S(r.i);n.a0&&(n+=v.n.a+v.o.a/2,++M),G=new S(v.j);G.a0&&(n/=M),gt=Nt(aa,vo,25,r.a.c.length,15,1),d=0,k=new S(r.a);k.a=d&&s<=v)d<=s&&o<=v?r+=2:d<=s?(t.b[r]=v+1,h+=2):o<=v?(n[C++]=s,n[C++]=d-1,r+=2):(n[C++]=s,n[C++]=d-1,t.b[r]=v+1,h+=2);else if(v0?s-=864e5:s+=864e5,v=new X2t(Pa(Tu(e.q.getTime()),s))),C=new Im,k=t.a.length,o=0;o=97&&r<=122||r>=65&&r<=90){for(h=o+1;h=k)throw it(new Fn("Missing trailing '"));h+10&&n.c==0&&(!e&&(e=new he),e.c[e.c.length]=n);if(e)for(;e.c.length!=0;){if(n=u(Fg(e,0),233),n.b&&n.b.c.length>0){for(o=(!n.b&&(n.b=new he),new S(n.b));o.aRo(t,n,0))return new fa(s,n)}else if(Xt(E1(s.g,s.d[0]).a)>Xt(E1(n.g,n.d[0]).a))return new fa(s,n)}for(d=(!n.e&&(n.e=new he),n.e).Kc();d.Ob();)h=u(d.Pb(),233),v=(!h.b&&(h.b=new he),h.b),Km(0,v.c.length),XC(v.c,0,n),h.c==v.c.length&&(e.c[e.c.length]=h)}return null}function xhe(t,e){var n,r,s,o,h,d,v,k,C;if(t==null)return _u;if(v=e.a.zc(t,e),v!=null)return"[...]";for(n=new f2(Ya,"[","]"),s=t,o=0,h=s.length;o=14&&C<=16))?e.a._b(r)?(n.a?Gr(n.a,n.b):n.a=new Ol(n.d),h9(n.a,"[...]")):(d=u2(r),k=new E9(e),$0(n,xhe(d,k))):_t(r,177)?$0(n,Npn(u(r,177))):_t(r,190)?$0(n,C0n(u(r,190))):_t(r,195)?$0(n,Fgn(u(r,195))):_t(r,2012)?$0(n,_0n(u(r,2012))):_t(r,48)?$0(n,Fpn(u(r,48))):_t(r,364)?$0(n,Kpn(u(r,364))):_t(r,832)?$0(n,Ppn(u(r,832))):_t(r,104)&&$0(n,Opn(u(r,104))):$0(n,r==null?_u:$o(r));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function khe(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St;for(d=x4(e,!1,!1),gt=lI(d),r&&(gt=qD(gt)),St=Xt(ye(qe(e,(o_(),Qut)))),tt=(Zn(gt.b!=0),u(gt.a.a.c,8)),M=u(Zf(gt,1),8),gt.b>2?(C=new he,Ls(C,new Qd(gt,1,gt.b)),o=efe(C,St+t.a),Mt=new nat(o),Mo(Mt,e),n.c[n.c.length]=Mt):r?Mt=u(tr(t.b,e0(e)),266):Mt=u(tr(t.b,tb(e)),266),v=e0(e),r&&(v=tb(e)),h=epn(tt,v),k=St+t.a,h.a?(k+=b.Math.abs(tt.b-M.b),K=new $e(M.a,(M.b+tt.b)/2)):(k+=b.Math.abs(tt.a-M.a),K=new $e((M.a+tt.a)/2,M.b)),r?ki(t.d,e,new K3t(Mt,h,K,k)):ki(t.c,e,new K3t(Mt,h,K,k)),ki(t.b,e,Mt),G=(!e.n&&(e.n=new fe(qo,e,1,7)),e.n),H=new nr(G);H.e!=H.i.gc();)j=u(dr(H),137),s=xI(t,j,!0,0,0),n.c[n.c.length]=s}function W4n(t){var e,n,r,s,o,h,d,v,k,C;for(k=new he,d=new he,h=new S(t);h.a-1){for(o=new S(d);o.a0)&&(aR(v,b.Math.min(v.o,s.o-1)),TC(v,v.i-1),v.i==0&&(d.c[d.c.length]=v))}}function PE(t,e,n){var r,s,o,h,d,v,k;if(k=t.c,!e&&(e=oLt),t.c=e,t.Db&4&&!(t.Db&1)&&(v=new Js(t,1,2,k,t.c),n?n.Ei(v):n=v),k!=e){if(_t(t.Cb,284))t.Db>>16==-10?n=u(t.Cb,284).nk(e,n):t.Db>>16==-15&&(!e&&(e=(dn(),W1)),!k&&(k=(dn(),W1)),t.Cb.nh()&&(v=new z0(t.Cb,1,13,k,e,Hg(al(u(t.Cb,59)),t),!1),n?n.Ei(v):n=v));else if(_t(t.Cb,88))t.Db>>16==-23&&(_t(e,88)||(e=(dn(),Kh)),_t(k,88)||(k=(dn(),Kh)),t.Cb.nh()&&(v=new z0(t.Cb,1,10,k,e,Hg(Lc(u(t.Cb,26)),t),!1),n?n.Ei(v):n=v));else if(_t(t.Cb,444))for(d=u(t.Cb,836),h=(!d.b&&(d.b=new mR(new aet)),d.b),o=(r=new p2(new Cg(h.a).a),new yR(r));o.a.b;)s=u(Zw(o.a).cd(),87),n=PE(s,vq(s,d),n)}return n}function Y4n(t,e){var n,r,s,o,h,d,v,k,C,M,j;for(h=je(Re(qe(t,(Te(),Hy)))),j=u(qe(t,Gy),21),v=!1,k=!1,M=new nr((!t.c&&(t.c=new fe(gl,t,9,9)),t.c));M.e!=M.i.gc()&&(!v||!k);){for(o=u(dr(M),118),d=0,s=zp(D1(lt(ct(j1,1),De,20,0,[(!o.d&&(o.d=new Cn(Ys,o,8,5)),o.d),(!o.e&&(o.e=new Cn(Ys,o,7,4)),o.e)])));zr(s)&&(r=u(Mr(s),79),C=h&&fv(r)&&je(Re(qe(r,j2))),n=Jle((!r.b&&(r.b=new Cn(br,r,4,7)),r.b),o)?t==es(Do(u(At((!r.c&&(r.c=new Cn(br,r,5,8)),r.c),0),82))):t==es(Do(u(At((!r.b&&(r.b=new Cn(br,r,4,7)),r.b),0),82))),!((C||n)&&(++d,d>1))););(d>0||j.Hc((Zu(),sg))&&(!o.n&&(o.n=new fe(qo,o,1,7)),o.n).i>0)&&(v=!0),d>1&&(k=!0)}v&&e.Fc((oo(),vh)),k&&e.Fc((oo(),yS))}function Ehe(t){var e,n,r,s,o,h,d,v,k,C,M,j;if(j=u(qe(t,(ui(),G2)),21),j.dc())return null;if(d=0,h=0,j.Hc((Al(),oP))){for(C=u(qe(t,KS),98),r=2,n=2,s=2,o=2,e=es(t)?u(qe(es(t),qv),103):u(qe(t,qv),103),k=new nr((!t.c&&(t.c=new fe(gl,t,9,9)),t.c));k.e!=k.i.gc();)if(v=u(dr(k),118),M=u(qe(v,u5),61),M==(ve(),Zo)&&(M=uxt(v,e),wo(v,u5,M)),C==(ua(),Gc))switch(M.g){case 1:r=b.Math.max(r,v.i+v.g);break;case 2:n=b.Math.max(n,v.j+v.f);break;case 3:s=b.Math.max(s,v.i+v.g);break;case 4:o=b.Math.max(o,v.j+v.f)}else switch(M.g){case 1:r+=v.g+2;break;case 2:n+=v.f+2;break;case 3:s+=v.g+2;break;case 4:o+=v.f+2}d=b.Math.max(r,s),h=b.Math.max(n,o)}return wv(t,d,h,!0,!0)}function Rat(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt;for(Mt=u(Bl(ez(Ri(new Tn(null,new _n(e.d,16)),new t8(n)),new lM(n)),c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[(O1(),Ul)]))),15),M=wi,C=Sa,v=new S(e.b.j);v.a0,k?k&&(j=gt.p,h?++j:--j,M=u(Ne(gt.c.a,j),10),r=gre(M),H=!(cat(r,ue,n[0])||UKt(r,ue,n[0]))):H=!0),G=!1,Kt=e.D.i,Kt&&Kt.c&&d.e&&(C=h&&Kt.p>0||!h&&Kt.p0&&(e.a+=Ya),Nq(u(dr(d),160),e);for(e.a+=Uot,v=new Nx((!r.c&&(r.c=new Cn(br,r,5,8)),r.c));v.e!=v.i.gc();)v.e>0&&(e.a+=Ya),Nq(u(dr(v),160),e);e.a+=")"}}function t5n(t,e,n){var r,s,o,h,d,v,k,C,M,j,H;if(o=u(Q(t,(ae(),_i)),79),!!o){for(r=t.a,s=new xo(n),Li(s,Vdn(t)),J8(t.d.i,t.c.i)?(j=t.c,M=Yo(lt(ct(Ws,1),ee,8,0,[j.n,j.a])),ia(M,n)):M=_1(t.c),fs(r,M,r.a,r.a.a),H=_1(t.d),Q(t,Qlt)!=null&&Li(H,u(Q(t,Qlt),8)),fs(r,H,r.c.b,r.c),ny(r,s),h=x4(o,!0,!0),uz(h,u(At((!o.b&&(o.b=new Cn(br,o,4,7)),o.b),0),82)),lz(h,u(At((!o.c&&(o.c=new Cn(br,o,5,8)),o.c),0),82)),CI(r,h),C=new S(t.b);C.a=0){for(v=null,d=new da(C.a,k+1);d.bh?1:Iw(isNaN(0),isNaN(h)))<0&&(wf(_d),(b.Math.abs(h-1)<=_d||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Iw(isNaN(h),isNaN(1)))<0)&&(wf(_d),(b.Math.abs(0-d)<=_d||d==0||isNaN(0)&&isNaN(d)?0:0d?1:Iw(isNaN(0),isNaN(d)))<0)&&(wf(_d),(b.Math.abs(d-1)<=_d||d==1||isNaN(d)&&isNaN(1)?0:d<1?-1:d>1?1:Iw(isNaN(d),isNaN(1)))<0)),o)}function n5n(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue;for(M=new Svt(new Dt(t));M.b!=M.c.a.d;)for(C=Ate(M),d=u(C.d,56),e=u(C.e,56),h=d.Tg(),K=0,Rt=(h.i==null&&vd(h),h.i).length;K=0&&K=k.c.c.length?C=omt((Vn(),Os),ta):C=omt((Vn(),ta),ta),C*=2,o=n.a.g,n.a.g=b.Math.max(o,o+(C-o)),h=n.b.g,n.b.g=b.Math.max(h,h+(C-h)),s=e}}function s5n(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt;for(Kt=VYt(t),C=new he,d=t.c.length,M=d-1,j=d+1;Kt.a.c!=0;){for(;n.b!=0;)St=(Zn(n.b!=0),u(lh(n,n.a.a),112)),P9(Kt.a,St)!=null,St.g=M--,lxt(St,e,n,r);for(;e.b!=0;)Rt=(Zn(e.b!=0),u(lh(e,e.a.a),112)),P9(Kt.a,Rt)!=null,Rt.g=j++,lxt(Rt,e,n,r);for(k=Sa,gt=(h=new y9(new w9(new y(Kt.a).a).b),new g(h));TM(gt.a.a);){if(tt=(o=Lj(gt.a),u(o.cd(),112)),!r&&tt.b>0&&tt.a<=0){C.c=Nt(Qn,De,1,0,5,1),C.c[C.c.length]=tt;break}K=tt.i-tt.d,K>=k&&(K>k&&(C.c=Nt(Qn,De,1,0,5,1),k=K),C.c[C.c.length]=tt)}C.c.length!=0&&(v=u(Ne(C,Zz(s,C.c.length)),112),P9(Kt.a,v)!=null,v.g=j++,lxt(v,e,n,r),C.c=Nt(Qn,De,1,0,5,1))}for(Mt=t.c.length+1,G=new S(t);G.a0&&(j.d+=C.n.d,j.d+=C.d),j.a>0&&(j.a+=C.n.a,j.a+=C.d),j.b>0&&(j.b+=C.n.b,j.b+=C.d),j.c>0&&(j.c+=C.n.c,j.c+=C.d),j}function Che(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G;for(j=n.d,M=n.c,o=new $e(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),h=o.b,k=new S(t.a);k.a0&&(t.c[e.c.p][e.p].d+=ul(t.i,24)*$I*.07000000029802322-.03500000014901161,t.c[e.c.p][e.p].a=t.c[e.c.p][e.p].d/t.c[e.c.p][e.p].b)}}function d5n(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt;for(G=new S(t);G.ar.d,r.d=b.Math.max(r.d,e),d&&n&&(r.d=b.Math.max(r.d,r.a),r.a=r.d+s);break;case 3:n=e>r.a,r.a=b.Math.max(r.a,e),d&&n&&(r.a=b.Math.max(r.a,r.d),r.d=r.a+s);break;case 2:n=e>r.c,r.c=b.Math.max(r.c,e),d&&n&&(r.c=b.Math.max(r.b,r.c),r.b=r.c+s);break;case 4:n=e>r.b,r.b=b.Math.max(r.b,e),d&&n&&(r.b=b.Math.max(r.b,r.c),r.c=r.b+s)}}}function w5n(t){var e,n,r,s,o,h,d,v,k,C,M;for(k=new S(t);k.a0||C.j==Bn&&C.e.c.length-C.g.c.length<0)){e=!1;break}for(s=new S(C.g);s.a=k&&Kt>=tt&&(j+=G.n.b+K.n.b+K.a.b-Rt,++d));if(n)for(h=new S(Mt.e);h.a=k&&Kt>=tt&&(j+=G.n.b+K.n.b+K.a.b-Rt,++d))}d>0&&(ue+=j/d,++H)}H>0?(e.a=s*ue/H,e.g=H):(e.a=0,e.g=0)}function m5n(t,e){var n,r,s,o,h,d,v,k,C,M,j;for(s=new S(t.a.b);s.aCs||e.o==H2&&C0&&ku(gt,Rt*ue),Kt>0&&Eu(gt,Kt*_e);for(K9(t.b,new hw),e=new he,d=new p2(new Cg(t.c).a);d.b;)h=Zw(d),r=u(h.cd(),79),n=u(h.dd(),395).a,s=x4(r,!1,!1),M=_ae(e0(r),lI(s),n),CI(M,s),St=Rae(r),St&&Ro(e,St,0)==-1&&(e.c[e.c.length]=St,VXt(St,(Zn(M.b!=0),u(M.a.a.c,8)),n));for(tt=new p2(new Cg(t.d).a);tt.b;)K=Zw(tt),r=u(K.cd(),79),n=u(K.dd(),395).a,s=x4(r,!1,!1),M=_ae(tb(r),qD(lI(s)),n),M=qD(M),CI(M,s),St=jae(r),St&&Ro(e,St,0)==-1&&(e.c[e.c.length]=St,VXt(St,(Zn(M.b!=0),u(M.c.b.c,8)),n))}function Ahe(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e;if(n.c.length!=0){for(H=new he,j=new S(n);j.a1)for(H=new vxt(G,St,r),va(St,new xGt(t,H)),h.c[h.c.length]=H,M=St.a.ec().Kc();M.Ob();)C=u(M.Pb(),46),mu(o,C.b);if(d.a.gc()>1)for(H=new vxt(G,d,r),va(d,new kGt(t,H)),h.c[h.c.length]=H,M=d.a.ec().Kc();M.Ob();)C=u(M.Pb(),46),mu(o,C.b)}}function Mhe(t){Mw(t,new k2(MR(_w(Ew(Cw(Tw(new kg,Sd),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new dZ),Sd))),xe(t,Sd,yH,Ie(Qye)),xe(t,Sd,Cy,Ie(Zye)),xe(t,Sd,D4,Ie(Wye)),xe(t,Sd,C6,Ie(Yye)),xe(t,Sd,T6,Ie(Kye)),xe(t,Sd,UE,Ie(Uye)),xe(t,Sd,j_,Ie(L_t)),xe(t,Sd,WE,Ie(Xye)),xe(t,Sd,Pct,Ie(Wht)),xe(t,Sd,Oct,Ie(Yht)),xe(t,Sd,Zkt,Ie(M_t)),xe(t,Sd,Ykt,Ie(BG)),xe(t,Sd,Kkt,Ie(RG)),xe(t,Sd,Xkt,Ie(qO)),xe(t,Sd,Qkt,Ie(D_t))}function Sxt(t){var e;if(this.r=nrn(new bc,new Cc),this.b=new i_(u(Lr(Xa),290)),this.p=new i_(u(Lr(Xa),290)),this.i=new i_(u(Lr($pe),290)),this.e=t,this.o=new xo(t.rf()),this.D=t.Df()||je(Re(t.We((ui(),ZO)))),this.A=u(t.We((ui(),G2)),21),this.B=u(t.We(xb),21),this.q=u(t.We(KS),98),this.u=u(t.We(Qy),21),!ugn(this.u))throw it(new R3("Invalid port label placement: "+this.u));if(this.v=je(Re(t.We(uAt))),this.j=u(t.We(o5),21),!O2n(this.j))throw it(new R3("Invalid node label placement: "+this.j));this.n=u(l_(t,XSt),116),this.k=Xt(ye(l_(t,JG))),this.d=Xt(ye(l_(t,dAt))),this.w=Xt(ye(l_(t,vAt))),this.s=Xt(ye(l_(t,gAt))),this.t=Xt(ye(l_(t,pAt))),this.C=u(l_(t,bAt),142),this.c=2*this.d,e=!this.B.Hc((ll(),cP)),this.f=new a_(0,e,0),this.g=new a_(1,e,0),het(this.f,(Kf(),eu),this.g)}function A5n(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn;for(St=0,G=0,H=0,j=1,Mt=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));Mt.e!=Mt.i.gc();)tt=u(dr(Mt),33),j+=j0(new ar(lr(K0(tt).a.Kc(),new z))),We=tt.g,G=b.Math.max(G,We),M=tt.f,H=b.Math.max(H,M),St+=We*M;for(K=(!t.a&&(t.a=new fe(rs,t,10,11)),t.a).i,h=St+2*r*r*j*K,o=b.Math.sqrt(h),v=b.Math.max(o*n,G),d=b.Math.max(o/n,H),gt=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));gt.e!=gt.i.gc();)tt=u(dr(gt),33),Qe=s.b+(ul(e,26)*I_+ul(e,27)*O_)*(v-tt.g),Rn=s.b+(ul(e,26)*I_+ul(e,27)*O_)*(d-tt.f),ku(tt,Qe),Eu(tt,Rn);for(_e=v+(s.b+s.c),ue=d+(s.d+s.a),Kt=new nr((!t.a&&(t.a=new fe(rs,t,10,11)),t.a));Kt.e!=Kt.i.gc();)for(Rt=u(dr(Kt),33),C=new ar(lr(K0(Rt).a.Kc(),new z));zr(C);)k=u(Mr(C),79),w_(k)||Lxn(k,e,_e,ue);_e+=s.b+s.c,ue+=s.d+s.a,wv(t,_e,ue,!1,!0)}function Rq(t){var e,n,r,s,o,h,d,v,k,C,M;if(t==null)throw it(new ld(_u));if(k=t,o=t.length,v=!1,o>0&&(e=(Rr(0,t.length),t.charCodeAt(0)),(e==45||e==43)&&(t=t.substr(1),--o,v=e==45)),o==0)throw it(new ld(yv+k+'"'));for(;t.length>0&&(Rr(0,t.length),t.charCodeAt(0)==48);)t=t.substr(1),--o;if(o>(vle(),$ge)[10])throw it(new ld(yv+k+'"'));for(s=0;s0&&(M=-parseInt(t.substr(0,r),10),t=t.substr(r),o-=r,n=!1);o>=h;){if(r=parseInt(t.substr(0,h),10),t=t.substr(h),o-=h,n)n=!1;else{if(yc(M,d)<0)throw it(new ld(yv+k+'"'));M=_a(M,C)}M=Jp(M,r)}if(yc(M,0)>0)throw it(new ld(yv+k+'"'));if(!v&&(M=z8(M),yc(M,0)<0))throw it(new ld(yv+k+'"'));return M}function Axt(t,e){oKt();var n,r,s,o,h,d,v;if(this.a=new v2t(this),this.b=t,this.c=e,this.f=Xnt(To(($u(),ya),e)),this.f.dc())if((d=d4t(ya,t))==e)for(this.e=!0,this.d=new he,this.f=new Ok,this.f.Fc(O2),u(Pq(TD(ya,Rl(t)),""),26)==t&&this.f.Fc(C9(ya,Rl(t))),s=vat(ya,t).Kc();s.Ob();)switch(r=u(s.Pb(),170),Hw(To(ya,r))){case 4:{this.d.Fc(r);break}case 5:{this.f.Gc(Xnt(To(ya,r)));break}}else if(to(),u(e,66).Oj())for(this.e=!0,this.f=null,this.d=new he,h=0,v=(t.i==null&&vd(t),t.i).length;h=0&&h0&&(u(po(t.b,e),124).a.b=n)}function L5n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt;for(vr(e,"Comment pre-processing",1),n=0,v=new S(t.a);v.a0&&(v=(Rr(0,e.length),e.charCodeAt(0)),v!=64)){if(v==37&&(M=e.lastIndexOf("%"),k=!1,M!=0&&(M==j-1||(k=(Rr(M+1,e.length),e.charCodeAt(M+1)==46))))){if(h=e.substr(1,M-1),St=hn("%",h)?null:Mxt(h),r=0,k)try{r=ql(e.substr(M+2),Sa,wi)}catch(Rt){throw Rt=Wi(Rt),_t(Rt,127)?(d=Rt,it(new W$(d))):it(Rt)}for(tt=lyt(t.Wg());tt.Ob();)if(G=kz(tt),_t(G,510)&&(s=u(G,590),Mt=s.d,(St==null?Mt==null:hn(St,Mt))&&r--==0))return s;return null}if(C=e.lastIndexOf("."),H=C==-1?e:e.substr(0,C),n=0,C!=-1)try{n=ql(e.substr(C+1),Sa,wi)}catch(Rt){if(Rt=Wi(Rt),_t(Rt,127))H=e;else throw it(Rt)}for(H=hn("%",H)?null:Mxt(H),K=lyt(t.Wg());K.Ob();)if(G=kz(K),_t(G,191)&&(o=u(G,191),gt=o.ne(),(H==null?gt==null:hn(H,gt))&&n--==0))return o;return null}return ehe(t,e)}function I5n(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn;for(ue=new he,G=new S(t.b);G.a=e.length)return{done:!0};var s=e[r++];return{value:[s,n.get(s)],done:!1}}}},Bvn()||(t.prototype.createObject=function(){return{}},t.prototype.get=function(e){return this.obj[":"+e]},t.prototype.set=function(e,n){this.obj[":"+e]=n},t.prototype[kot]=function(e){delete this.obj[":"+e]},t.prototype.keys=function(){var e=[];for(var n in this.obj)n.charCodeAt(0)==58&&e.push(n.substring(1));return e}),t}function P5n(t){cxt();var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt;if(t==null)return null;if(M=t.length*8,M==0)return"";for(d=M%24,H=M/24|0,j=d!=0?H+1:H,o=null,o=Nt(xh,yd,25,j*4,15,1),k=0,C=0,e=0,n=0,r=0,h=0,s=0,v=0;v>24,k=(e&3)<<24>>24,G=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,K=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,tt=r&-128?(r>>6^252)<<24>>24:r>>6<<24>>24,o[h++]=lp[G],o[h++]=lp[K|k<<4],o[h++]=lp[C<<2|tt],o[h++]=lp[r&63];return d==8?(e=t[s],k=(e&3)<<24>>24,G=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,o[h++]=lp[G],o[h++]=lp[k<<4],o[h++]=61,o[h++]=61):d==16&&(e=t[s],n=t[s+1],C=(n&15)<<24>>24,k=(e&3)<<24>>24,G=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,K=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,o[h++]=lp[G],o[h++]=lp[K|k<<4],o[h++]=lp[C<<2],o[h++]=61),Mh(o,0,o.length)}function F5n(t,e){var n,r,s,o,h,d,v;if(t.e==0&&t.p>0&&(t.p=-(t.p-1)),t.p>Sa&&umt(e,t.p-ab),h=e.q.getDate(),oD(e,1),t.k>=0&&win(e,t.k),t.c>=0?oD(e,t.c):t.k>=0?(v=new Myt(e.q.getFullYear()-ab,e.q.getMonth(),35),r=35-v.q.getDate(),oD(e,b.Math.min(r,h))):oD(e,h),t.f<0&&(t.f=e.q.getHours()),t.b>0&&t.f<12&&(t.f+=12),AQe(e,t.f==24&&t.g?0:t.f),t.j>=0&&Aan(e,t.j),t.n>=0&&Uan(e,t.n),t.i>=0&&aUt(e,Pa(_a(aI(Tu(e.q.getTime()),Wg),Wg),t.i)),t.a&&(s=new BR,umt(s,s.q.getFullYear()-ab-80),Cet(Tu(e.q.getTime()),Tu(s.q.getTime()))&&umt(e,s.q.getFullYear()-ab+100)),t.d>=0){if(t.c==-1)n=(7+t.d-e.q.getDay())%7,n>3&&(n-=7),d=e.q.getMonth(),oD(e,e.q.getDate()+n),e.q.getMonth()!=d&&oD(e,e.q.getDate()+(n>0?-7:7));else if(e.q.getDay()!=t.d)return!1}return t.o>Sa&&(o=e.q.getTimezoneOffset(),aUt(e,Pa(Tu(e.q.getTime()),(t.o-o)*60*Wg))),!0}function Ohe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt;if(s=Q(e,(ae(),_i)),!!_t(s,239)){for(G=u(s,33),K=e.e,j=new xo(e.c),o=e.d,j.a+=o.b,j.b+=o.d,Rt=u(qe(G,(Te(),pG)),174),Nu(Rt,(ll(),nU))&&(H=u(qe(G,d9t),116),cpt(H,o.a),Mtt(H,o.d),upt(H,o.b),gpt(H,o.c)),n=new he,C=new S(e.a);C.a0&&le(t.p,C),le(t.o,C);e-=r,H=v+e,k+=e*t.e,ch(t.a,d,pe(H)),ch(t.b,d,k),t.j=b.Math.max(t.j,H),t.k=b.Math.max(t.k,k),t.d+=e,e+=K}}function ve(){ve=Z;var t;Zo=new NM(N_,0),Pn=new NM(Kq,1),Hn=new NM(Iot,2),mr=new NM(Oot,3),Bn=new NM(Pot,4),U1=(wn(),new s8((t=u(Vf(Xa),9),new sh(t,u(ff(t,t.length),9),0)))),Mf=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[]))),mh=jg(ji(Hn,lt(ct(Xa,1),xc,61,0,[]))),Kl=jg(ji(mr,lt(ct(Xa,1),xc,61,0,[]))),Vh=jg(ji(Bn,lt(ct(Xa,1),xc,61,0,[]))),Au=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[mr]))),lu=jg(ji(Hn,lt(ct(Xa,1),xc,61,0,[Bn]))),Df=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[Bn]))),el=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[Hn]))),Xl=jg(ji(mr,lt(ct(Xa,1),xc,61,0,[Bn]))),yh=jg(ji(Hn,lt(ct(Xa,1),xc,61,0,[mr]))),nl=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[Hn,Bn]))),Su=jg(ji(Hn,lt(ct(Xa,1),xc,61,0,[mr,Bn]))),Lu=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[mr,Bn]))),Vu=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[Hn,mr]))),Uc=jg(ji(Pn,lt(ct(Xa,1),xc,61,0,[Hn,mr,Bn])))}function Bhe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St;if(e.b!=0){for(H=new Zi,d=null,G=null,r=ps(b.Math.floor(b.Math.log(e.b)*b.Math.LOG10E)+1),v=0,St=ei(e,0);St.b!=St.d.c;)for(gt=u(ti(St),86),Vt(G)!==Vt(Q(gt,(fc(),zS)))&&(G=Br(Q(gt,zS)),v=0),G!=null?d=G+iZt(v++,r):d=iZt(v++,r),Jt(gt,zS,d),tt=(s=ei(new Lp(gt).a.d,0),new Ex(s));OR(tt.a);)K=u(ti(tt.a),188).c,fs(H,K,H.c.b,H.c),Jt(K,zS,d);for(j=new _r,h=0;h=v){Zn(gt.b>0),gt.a.Xb(gt.c=--gt.b);break}else K.a>k&&(s?(Ls(s.b,K.b),s.a=b.Math.max(s.a,K.a),Cl(gt)):(le(K.b,M),K.c=b.Math.min(K.c,k),K.a=b.Math.max(K.a,v),s=K));s||(s=new kqt,s.c=k,s.a=v,zm(gt,s),le(s.b,M))}for(d=e.b,C=0,tt=new S(r);tt.ad?1:0:(t.b&&(t.b._b(o)&&(s=u(t.b.xc(o),19).a),t.b._b(v)&&(d=u(t.b.xc(v),19).a)),sd?1:0)):e.e.c.length!=0&&n.g.c.length!=0?1:-1}function j5n(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e;for(vr(e,S1e,1),K=new he,ue=new he,k=new S(t.b);k.a0&&(St-=H),mxt(h,St),C=0,j=new S(h.a);j.a0),d.a.Xb(d.c=--d.b)),v=.4*r*C,!o&&d.be.d.c){if(H=t.c[e.a.d],tt=t.c[M.a.d],H==tt)continue;yf(lf(uf(hf(cf(new Ch,1),100),H),tt))}}}}}function Mxt(t){Fat();var e,n,r,s,o,h,d,v;if(t==null)return null;if(s=hd(t,Cu(37)),s<0)return t;for(v=new Ol(t.substr(0,s)),e=Nt(Gu,N4,25,4,15,1),d=0,r=0,h=t.length;ss+2&&Sit((Rr(s+1,t.length),t.charCodeAt(s+1)),tLt,eLt)&&Sit((Rr(s+2,t.length),t.charCodeAt(s+2)),tLt,eLt))if(n=fen((Rr(s+1,t.length),t.charCodeAt(s+1)),(Rr(s+2,t.length),t.charCodeAt(s+2))),s+=2,r>0?(n&192)==128?e[d++]=n<<24>>24:r=0:n>=128&&((n&224)==192?(e[d++]=n<<24>>24,r=2):(n&240)==224?(e[d++]=n<<24>>24,r=3):(n&248)==240&&(e[d++]=n<<24>>24,r=4)),r>0){if(d==r){switch(d){case 2:{qp(v,((e[0]&31)<<6|e[1]&63)&ys);break}case 3:{qp(v,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&ys);break}}d=0,r=0}}else{for(o=0;o0){if(h+r>t.length)return!1;d=gq(t.substr(0,h+r),e)}else d=gq(t,e);switch(o){case 71:return d=w4(t,h,lt(ct(Ae,1),ee,2,6,[mfe,yfe]),e),s.e=d,!0;case 77:return _vn(t,e,s,d,h);case 76:return Svn(t,e,s,d,h);case 69:return vpn(t,e,h,s);case 99:return mpn(t,e,h,s);case 97:return d=w4(t,h,lt(ct(Ae,1),ee,2,6,["AM","PM"]),e),s.b=d,!0;case 121:return Avn(t,e,h,d,n,s);case 100:return d<=0?!1:(s.c=d,!0);case 83:return d<0?!1:Ihn(d,h,e[0],s);case 104:d==12&&(d=0);case 75:case 72:return d<0?!1:(s.f=d,s.g=!1,!0);case 107:return d<0?!1:(s.f=d,s.g=!0,!0);case 109:return d<0?!1:(s.j=d,!0);case 115:return d<0?!1:(s.n=d,!0);case 90:if(hue&&(G.c=ue-G.b),le(h.d,new Hnt(G,a3t(h,G))),Mt=e==Pn?b.Math.max(Mt,K.b+k.b.rf().b):b.Math.min(Mt,K.b));for(Mt+=e==Pn?t.t:-t.t,St=k3t((h.e=Mt,h)),St>0&&(u(po(t.b,e),124).a.b=St),C=j.Kc();C.Ob();)k=u(C.Pb(),111),!(!k.c||k.c.d.c.length<=0)&&(G=k.c.i,G.c-=k.e.a,G.d-=k.e.b)}function U5n(t){var e,n,r,s,o,h,d,v,k,C,M,j,H;for(e=new _r,v=new nr(t);v.e!=v.i.gc();){for(d=u(dr(v),33),n=new Hs,ki(Jut,d,n),H=new bm,s=u(Bl(new Tn(null,new jw(new ar(lr(wI(d).a.Kc(),new z)))),LKt(H,c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[(O1(),Ul)])))),83),Zee(n,u(s.xc((Nn(),!0)),14),new Ek),r=u(Bl(Ri(u(s.xc(!1),15).Lc(),new E3),c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[Ul]))),15),h=r.Kc();h.Ob();)o=u(h.Pb(),79),j=Rae(o),j&&(k=u(ec(Lo(e.f,j)),21),k||(k=iue(j),au(e.f,j,k)),Ua(n,k));for(s=u(Bl(new Tn(null,new jw(new ar(lr(K0(d).a.Kc(),new z)))),LKt(H,c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[Ul])))),83),Zee(n,u(s.xc(!0),14),new Il),r=u(Bl(Ri(u(s.xc(!1),15).Lc(),new L0),c2(new ke,new ce,new Xn,lt(ct(fl,1),oe,132,0,[Ul]))),15),M=r.Kc();M.Ob();)C=u(M.Pb(),79),j=jae(C),j&&(k=u(ec(Lo(e.f,j)),21),k||(k=iue(j),au(e.f,j,k)),Ua(n,k))}}function W5n(t,e){Lat();var n,r,s,o,h,d,v,k,C,M,j,H,G,K;if(v=yc(t,0)<0,v&&(t=z8(t)),yc(t,0)==0)switch(e){case 0:return"0";case 1:return $E;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return H=new Mp,e<0?H.a+="0E+":H.a+="0E",H.a+=e==Sa?"2147483648":""+-e,H.a}C=18,M=Nt(xh,yd,25,C+1,15,1),n=C,K=t;do k=K,K=aI(K,10),M[--n]=Ar(Pa(48,Jp(k,_a(K,10))))&ys;while(yc(K,0)!=0);if(s=Jp(Jp(Jp(C,n),e),1),e==0)return v&&(M[--n]=45),Mh(M,n,C-n);if(e>0&&yc(s,-6)>=0){if(yc(s,0)>=0){for(o=n+Ar(s),d=C-1;d>=o;d--)M[d+1]=M[d];return M[++o]=46,v&&(M[--n]=45),Mh(M,n,C-n+1)}for(h=2;Cet(h,Pa(z8(s),1));h++)M[--n]=48;return M[--n]=46,M[--n]=48,v&&(M[--n]=45),Mh(M,n,C-n)}return G=n+1,r=C,j=new Im,v&&(j.a+="-"),r-G>=1?(qp(j,M[n]),j.a+=".",j.a+=Mh(M,n+1,C-n-1)):j.a+=Mh(M,n,C-n),j.a+="E",yc(s,0)>0&&(j.a+="+"),j.a+=""+_9(s),j.a}function Y5n(t,e,n){var r,s,o,h,d,v,k,C,M,j,H;if(t.e.a.$b(),t.f.a.$b(),t.c.c=Nt(Qn,De,1,0,5,1),t.i.c=Nt(Qn,De,1,0,5,1),t.g.a.$b(),e)for(h=new S(e.a);h.a=1&&(Kt-k>0&&G>=0?(ku(M,M.i+Rt),Eu(M,M.j+v*k)):Kt-k<0&&H>=0&&(ku(M,M.i+Rt*Kt),Eu(M,M.j+v)));return wo(t,(ui(),G2),(Al(),o=u(Vf(rA),9),new sh(o,u(ff(o,o.length),9),0))),new $e(ue,C)}function $he(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G;if(H=es(Do(u(At((!t.b&&(t.b=new Cn(br,t,4,7)),t.b),0),82))),G=es(Do(u(At((!t.c&&(t.c=new Cn(br,t,5,8)),t.c),0),82))),M=H==G,d=new Ca,e=u(qe(t,(Sz(),_At)),74),e&&e.b>=2){if((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a).i==0)n=(Sw(),s=new ad,s),Dr((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a),n);else if((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a).i>1)for(j=new Nx((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a));j.e!=j.i.gc();)f_(j);CI(e,u(At((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a),0),202))}if(M)for(r=new nr((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a));r.e!=r.i.gc();)for(n=u(dr(r),202),k=new nr((!n.a&&(n.a=new As(Gh,n,5)),n.a));k.e!=k.i.gc();)v=u(dr(k),469),d.a=b.Math.max(d.a,v.a),d.b=b.Math.max(d.b,v.b);for(h=new nr((!t.n&&(t.n=new fe(qo,t,1,7)),t.n));h.e!=h.i.gc();)o=u(dr(h),137),C=u(qe(o,QS),8),C&&x1(o,C.a,C.b),M&&(d.a=b.Math.max(d.a,o.i+o.g),d.b=b.Math.max(d.b,o.j+o.f));return d}function K5n(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We;for(St=e.c.length,s=new E4(t.a,n,null,null),We=Nt(aa,vo,25,St,15,1),K=Nt(aa,vo,25,St,15,1),G=Nt(aa,vo,25,St,15,1),tt=0,d=0;dWe[v]&&(tt=v),M=new S(t.a.b);M.aH&&(o&&(Zb(ue,j),Zb(We,pe(k.b-1))),pi=n.b,js+=j+e,j=0,C=b.Math.max(C,n.b+n.c+hr)),ku(d,pi),Eu(d,js),C=b.Math.max(C,pi+hr+n.c),j=b.Math.max(j,M),pi+=hr+e;if(C=b.Math.max(C,r),zn=js+j+n.a,znEd,Qe=b.Math.abs(j.b-G.b)>Ed,(!n&&We&&Qe||n&&(We||Qe))&&ri(tt.a,Rt)),Ua(tt.a,r),r.b==0?j=Rt:j=(Zn(r.b!=0),u(r.c.b.c,8)),dun(H,M,K),Lne(s)==_e&&(Na(_e.i)!=s.a&&(K=new Ca,Y4t(K,Na(_e.i),Mt)),Jt(tt,Qlt,K)),Bgn(H,tt,Mt),C.a.zc(H,C);Oa(tt,Kt),oa(tt,_e)}for(k=C.a.ec().Kc();k.Ob();)v=u(k.Pb(),17),Oa(v,null),oa(v,null);or(e)}function zhe(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt;if(t.gc()==1)return u(t.Xb(0),231);if(t.gc()<=0)return new B$;for(s=t.Kc();s.Ob();){for(n=u(s.Pb(),231),G=0,C=wi,M=wi,v=Sa,k=Sa,H=new S(n.e);H.ad&&(St=0,Rt+=h+gt,h=0),Fmn(K,n,St,Rt),e=b.Math.max(e,St+tt.a),h=b.Math.max(h,tt.b),St+=tt.a+gt;return K}function qhe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G;switch(C=new Pu,t.a.g){case 3:j=u(Q(e.e,(ae(),R2)),15),H=u(Q(e.j,R2),15),G=u(Q(e.f,R2),15),n=u(Q(e.e,Z4),15),r=u(Q(e.j,Z4),15),s=u(Q(e.f,Z4),15),h=new he,Ls(h,j),H.Jc(new cQ),Ls(h,_t(H,152)?Zx(u(H,152)):_t(H,131)?u(H,131).a:_t(H,54)?new kw(H):new Om(H)),Ls(h,G),o=new he,Ls(o,n),Ls(o,_t(r,152)?Zx(u(r,152)):_t(r,131)?u(r,131).a:_t(r,54)?new kw(r):new Om(r)),Ls(o,s),Jt(e.f,R2,h),Jt(e.f,Z4,o),Jt(e.f,hCt,e.f),Jt(e.e,R2,null),Jt(e.e,Z4,null),Jt(e.j,R2,null),Jt(e.j,Z4,null);break;case 1:Ua(C,e.e.a),ri(C,e.i.n),Ua(C,l2(e.j.a)),ri(C,e.a.n),Ua(C,e.f.a);break;default:Ua(C,e.e.a),Ua(C,l2(e.j.a)),Ua(C,e.f.a)}Ah(e.f.a),Ua(e.f.a,C),Oa(e.f,e.e.c),d=u(Q(e.e,(Te(),So)),74),k=u(Q(e.j,So),74),v=u(Q(e.f,So),74),(d||k||v)&&(M=new Pu,wvt(M,v),wvt(M,k),wvt(M,d),Jt(e.f,So,M)),Oa(e.j,null),oa(e.j,null),Oa(e.e,null),oa(e.e,null),Eo(e.a,null),Eo(e.i,null),e.g&&qhe(t,e.g)}function J5n(t){cxt();var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt;if(t==null||(o=K$(t),G=$ln(o),G%4!=0))return null;if(K=G/4|0,K==0)return Nt(Gu,N4,25,0,15,1);for(M=null,e=0,n=0,r=0,s=0,h=0,d=0,v=0,k=0,H=0,j=0,C=0,M=Nt(Gu,N4,25,K*3,15,1);H>4)<<24>>24,M[j++]=((n&15)<<4|r>>2&15)<<24>>24,M[j++]=(r<<6|s)<<24>>24}return!vM(h=o[C++])||!vM(d=o[C++])?null:(e=Y1[h],n=Y1[d],v=o[C++],k=o[C++],Y1[v]==-1||Y1[k]==-1?v==61&&k==61?n&15?null:(tt=Nt(Gu,N4,25,H*3+1,15,1),Dc(M,0,tt,0,H*3),tt[j]=(e<<2|n>>4)<<24>>24,tt):v!=61&&k==61?(r=Y1[v],r&3?null:(tt=Nt(Gu,N4,25,H*3+2,15,1),Dc(M,0,tt,0,H*3),tt[j++]=(e<<2|n>>4)<<24>>24,tt[j]=((n&15)<<4|r>>2&15)<<24>>24,tt)):null:(r=Y1[v],s=Y1[k],M[j++]=(e<<2|n>>4)<<24>>24,M[j++]=((n&15)<<4|r>>2&15)<<24>>24,M[j++]=(r<<6|s)<<24>>24,M))}function txn(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt;for(vr(e,S1e,1),G=u(Q(t,(Te(),eg)),218),s=new S(t.b);s.a=2){for(K=!0,j=new S(o.j),n=u(J(j),11),H=null;j.a0&&(s=u(Ne(tt.c.a,ue-1),10),h=t.i[s.p],We=b.Math.ceil(W3(t.n,s,tt)),o=Kt.a.e-tt.d.d-(h.a.e+s.o.b+s.d.a)-We),k=as,ue0&&_e.a.e.e-_e.a.a-(_e.b.e.e-_e.b.a)<0,G=St.a.e.e-St.a.a-(St.b.e.e-St.b.a)<0&&_e.a.e.e-_e.a.a-(_e.b.e.e-_e.b.a)>0,H=St.a.e.e+St.b.a<_e.b.e.e+_e.a.a,j=St.a.e.e+St.b.a>_e.b.e.e+_e.a.a,Rt=0,!K&&!G&&(j?o+M>0?Rt=M:k-r>0&&(Rt=r):H&&(o+d>0?Rt=d:k-Mt>0&&(Rt=Mt))),Kt.a.e+=Rt,Kt.b&&(Kt.d.e+=Rt),!1))}function Vhe(t,e,n){var r,s,o,h,d,v,k,C,M,j;if(r=new ah(e.qf().a,e.qf().b,e.rf().a,e.rf().b),s=new Fx,t.c)for(h=new S(e.wf());h.ak&&(r.a+=KUt(Nt(xh,yd,25,-k,15,1))),r.a+="Is",hd(v,Cu(32))>=0)for(s=0;s=r.o.b/2}else Mt=!M;Mt?(gt=u(Q(r,(ae(),z6)),15),gt?j?o=gt:(s=u(Q(r,N6),15),s?gt.gc()<=s.gc()?o=gt:o=s:(o=new he,Jt(r,N6,o))):(o=new he,Jt(r,z6,o))):(s=u(Q(r,(ae(),N6)),15),s?M?o=s:(gt=u(Q(r,z6),15),gt?s.gc()<=gt.gc()?o=s:o=gt:(o=new he,Jt(r,z6,o))):(o=new he,Jt(r,N6,o))),o.Fc(t),Jt(t,(ae(),ZV),n),e.d==n?(oa(e,null),n.e.c.length+n.g.c.length==0&&Uo(n,null),Yun(n)):(Oa(e,null),n.e.c.length+n.g.c.length==0&&Uo(n,null)),Ah(e.a)}function ixn(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi;for(Mt=new da(t.b,0),C=e.Kc(),G=0,k=u(C.Pb(),19).a,Kt=0,n=new Hs,_e=new O0;Mt.b=t.a&&(r=Hyn(t,Mt),C=b.Math.max(C,r.b),Rt=b.Math.max(Rt,r.d),le(d,new fa(Mt,r)));for(We=new he,k=0;k0),tt.a.Xb(tt.c=--tt.b),Qe=new Sh(t.b),zm(tt,Qe),Zn(tt.b0?(k=0,tt&&(k+=d),k+=(Qe-1)*h,St&&(k+=d),We&&St&&(k=b.Math.max(k,qwn(St,h,Mt,_e))),k0){for(j=C<100?null:new Dp(C),k=new gyt(e),G=k.g,gt=Nt(Cr,Xr,25,C,15,1),r=0,Rt=new Qw(C),s=0;s=0;)if(H!=null?yi(H,G[v]):Vt(H)===Vt(G[v])){gt.length<=r&&(tt=gt,gt=Nt(Cr,Xr,25,2*gt.length,15,1),Dc(tt,0,gt,0,r)),gt[r++]=s,Dr(Rt,G[v]);break t}if(H=H,Vt(H)===Vt(d))break}}if(k=Rt,G=Rt.g,C=r,r>gt.length&&(tt=gt,gt=Nt(Cr,Xr,25,r,15,1),Dc(tt,0,gt,0,r)),r>0){for(St=!0,o=0;o=0;)l6(t,gt[h]);if(r!=C){for(s=C;--s>=r;)l6(k,s);tt=gt,gt=Nt(Cr,Xr,25,r,15,1),Dc(tt,0,gt,0,r)}e=k}}}else for(e=$1n(t,e),s=t.i;--s>=0;)e.Hc(t.g[s])&&(l6(t,s),St=!0);if(St){if(gt!=null){for(n=e.gc(),M=n==1?F9(t,4,e.Kc().Pb(),null,gt[0],K):F9(t,6,e,gt,gt[0],K),j=n<100?null:new Dp(n),s=e.Kc();s.Ob();)H=s.Pb(),j=vwt(t,u(H,72),j);j?(j.Ei(M),j.Fi()):mi(t.e,M)}else{for(j=JZe(e.gc()),s=e.Kc();s.Ob();)H=s.Pb(),j=vwt(t,u(H,72),j);j&&j.Fi()}return!0}else return!1}function uxn(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St;for(n=new vse(e),n.a||Umn(e),k=Wvn(e),v=new Uw,tt=new fue,K=new S(e.a);K.a0||n.o==H1&&s0?(M=u(Ne(j.c.a,h-1),10),We=W3(t.b,j,M),tt=j.n.b-j.d.d-(M.n.b+M.o.b+M.d.a+We)):tt=j.n.b-j.d.d,k=b.Math.min(tt,k),hh?LE(t,e,n):LE(t,n,e),sh?1:0}return r=u(Q(e,(ae(),Tc)),19).a,o=u(Q(n,Tc),19).a,r>o?LE(t,e,n):LE(t,n,e),ro?1:0}function Dxt(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt;if(je(Re(qe(e,(ui(),QG)))))return wn(),wn(),io;if(k=(!e.a&&(e.a=new fe(rs,e,10,11)),e.a).i!=0,M=Qpn(e),C=!M.dc(),k||C){if(s=u(qe(e,O7),149),!s)throw it(new R3("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(Mt=t2t(s,(CE(),lU)),Jie(e),!k&&C&&!Mt)return wn(),wn(),io;if(v=new he,Vt(qe(e,s5))===Vt((G0(),sp))&&(t2t(s,cU)||t2t(s,oU)))for(H=Fue(t,e),G=new Zi,Ua(G,(!e.a&&(e.a=new fe(rs,e,10,11)),e.a));G.b!=0;)j=u(G.b==0?null:(Zn(G.b!=0),lh(G,G.a.a)),33),Jie(j),gt=Vt(qe(j,s5))===Vt(ZS),gt||o2(j,YS)&&!gmt(s,qe(j,O7))?(d=Dxt(t,j,n,r),Ls(v,d),wo(j,s5,ZS),Zue(j)):Ua(G,(!j.a&&(j.a=new fe(rs,j,10,11)),j.a));else for(H=(!e.a&&(e.a=new fe(rs,e,10,11)),e.a).i,h=new nr((!e.a&&(e.a=new fe(rs,e,10,11)),e.a));h.e!=h.i.gc();)o=u(dr(h),33),d=Dxt(t,o,n,r),Ls(v,d),Zue(o);for(tt=new S(v);tt.a=0?H=a6(d):H=YD(a6(d)),t.Ye(C7,H)),k=new Ca,j=!1,t.Xe(Rv)?(H2t(k,u(t.We(Rv),8)),j=!0):RQe(k,h.a/2,h.b/2),H.g){case 4:Jt(C,uu,(dh(),bb)),Jt(C,tG,(d2(),U4)),C.o.b=h.b,K<0&&(C.o.a=-K),Bs(M,(ve(),Hn)),j||(k.a=h.a),k.a-=h.a;break;case 2:Jt(C,uu,(dh(),jy)),Jt(C,tG,(d2(),w7)),C.o.b=h.b,K<0&&(C.o.a=-K),Bs(M,(ve(),Bn)),j||(k.a=0);break;case 1:Jt(C,B2,(q0(),Y4)),C.o.a=h.a,K<0&&(C.o.b=-K),Bs(M,(ve(),mr)),j||(k.b=h.b),k.b-=h.b;break;case 3:Jt(C,B2,(q0(),F6)),C.o.a=h.a,K<0&&(C.o.b=-K),Bs(M,(ve(),Pn)),j||(k.b=0)}if(H2t(M.n,k),Jt(C,Rv,k),e==Y2||e==g0||e==Gc){if(G=0,e==Y2&&t.Xe(tp))switch(H.g){case 1:case 2:G=u(t.We(tp),19).a;break;case 3:case 4:G=-u(t.We(tp),19).a}else switch(H.g){case 4:case 2:G=o.b,e==g0&&(G/=s.b);break;case 1:case 3:G=o.a,e==g0&&(G/=s.a)}Jt(C,Fv,G)}return Jt(C,oc,H),C}function fxn(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe;if(n=Xt(ye(Q(t.a.j,(Te(),GCt)))),n<-1||!t.a.i||jx(u(Q(t.a.o,cs),98))||Ko(t.a.o,(ve(),Hn)).gc()<2&&Ko(t.a.o,Bn).gc()<2)return!0;if(t.a.c.Rf())return!1;for(Kt=0,Rt=0,St=new he,v=t.a.e,k=0,C=v.length;k=n}function dxn(){dbt();function t(r){var s=this;this.dispatch=function(o){var h=o.data;switch(h.cmd){case"algorithms":var d=x3t((wn(),new T(new v1(Ab.b))));r.postMessage({id:h.id,data:d});break;case"categories":var v=x3t((wn(),new T(new v1(Ab.c))));r.postMessage({id:h.id,data:v});break;case"options":var k=x3t((wn(),new T(new v1(Ab.d))));r.postMessage({id:h.id,data:k});break;case"register":y4n(h.algorithms),r.postMessage({id:h.id});break;case"layout":t3n(h.graph,h.layoutOptions||{},h.options||{}),r.postMessage({id:h.id,data:h.graph});break}},this.saveDispatch=function(o){try{s.dispatch(o)}catch(h){r.postMessage({id:o.data.id,error:h})}}}function e(r){var s=this;this.dispatcher=new t({postMessage:function(o){s.onmessage({data:o})}}),this.postMessage=function(o){setTimeout(function(){s.dispatcher.saveDispatch({data:o})},0)}}if(typeof document===_ot&&typeof self!==_ot){var n=new t(self);self.onmessage=n.saveDispatch}else typeof p!==_ot&&p.exports&&(Object.defineProperty(w,"__esModule",{value:!0}),p.exports={default:e,Worker:e})}function gxn(t){t.N||(t.N=!0,t.b=ic(t,0),ns(t.b,0),ns(t.b,1),ns(t.b,2),t.bb=ic(t,1),ns(t.bb,0),ns(t.bb,1),t.fb=ic(t,2),ns(t.fb,3),ns(t.fb,4),Fi(t.fb,5),t.qb=ic(t,3),ns(t.qb,0),Fi(t.qb,1),Fi(t.qb,2),ns(t.qb,3),ns(t.qb,4),Fi(t.qb,5),ns(t.qb,6),t.a=oi(t,4),t.c=oi(t,5),t.d=oi(t,6),t.e=oi(t,7),t.f=oi(t,8),t.g=oi(t,9),t.i=oi(t,10),t.j=oi(t,11),t.k=oi(t,12),t.n=oi(t,13),t.o=oi(t,14),t.p=oi(t,15),t.q=oi(t,16),t.s=oi(t,17),t.r=oi(t,18),t.t=oi(t,19),t.u=oi(t,20),t.v=oi(t,21),t.w=oi(t,22),t.B=oi(t,23),t.A=oi(t,24),t.C=oi(t,25),t.D=oi(t,26),t.F=oi(t,27),t.G=oi(t,28),t.H=oi(t,29),t.J=oi(t,30),t.I=oi(t,31),t.K=oi(t,32),t.M=oi(t,33),t.L=oi(t,34),t.P=oi(t,35),t.Q=oi(t,36),t.R=oi(t,37),t.S=oi(t,38),t.T=oi(t,39),t.U=oi(t,40),t.V=oi(t,41),t.X=oi(t,42),t.W=oi(t,43),t.Y=oi(t,44),t.Z=oi(t,45),t.$=oi(t,46),t._=oi(t,47),t.ab=oi(t,48),t.cb=oi(t,49),t.db=oi(t,50),t.eb=oi(t,51),t.gb=oi(t,52),t.hb=oi(t,53),t.ib=oi(t,54),t.jb=oi(t,55),t.kb=oi(t,56),t.lb=oi(t,57),t.mb=oi(t,58),t.nb=oi(t,59),t.ob=oi(t,60),t.pb=oi(t,61))}function pxn(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt;if(Mt=0,e.f.a==0)for(tt=new S(t);tt.ak&&(An(k,e.c.length),u(e.c[k],200)).a.c.length==0;)mu(e,(An(k,e.c.length),e.c[k]));if(!v){--o;continue}if(eyn(e,C,s,v,j,n,k,r)){M=!0;continue}if(j){if(c3n(e,C,s,v,n,k,r)){M=!0;continue}else if(Yyt(C,s)){s.c=!0,M=!0;continue}}else if(Yyt(C,s)){s.c=!0,M=!0;continue}if(M)continue}if(Yyt(C,s)){s.c=!0,M=!0,v&&(v.k=!1);continue}else nq(s.q)}return M}function zat(t,e,n,r,s,o,h){var d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi,js;for(K=0,Rn=0,k=new S(t.b);k.aK&&(o&&(Zb(ue,H),Zb(We,pe(C.b-1)),le(t.d,G),d.c=Nt(Qn,De,1,0,5,1)),pi=n.b,js+=H+e,H=0,M=b.Math.max(M,n.b+n.c+hr)),d.c[d.c.length]=v,hse(v,pi,js),M=b.Math.max(M,pi+hr+n.c),H=b.Math.max(H,j),pi+=hr+e,G=v;if(Ls(t.a,d),le(t.d,u(Ne(d,d.c.length-1),157)),M=b.Math.max(M,r),zn=js+H+n.a,zn1&&(h=b.Math.min(h,b.Math.abs(u(Zf(d.a,1),8).b-C.b)))));else for(K=new S(e.j);K.as&&(o=j.a-s,h=wi,r.c=Nt(Qn,De,1,0,5,1),s=j.a),j.a>=s&&(r.c[r.c.length]=d,d.a.b>1&&(h=b.Math.min(h,b.Math.abs(u(Zf(d.a,d.a.b-2),8).b-j.b)))));if(r.c.length!=0&&o>e.o.a/2&&h>e.o.b/2){for(H=new Mc,Uo(H,e),Bs(H,(ve(),Pn)),H.n.a=e.o.a/2,gt=new Mc,Uo(gt,e),Bs(gt,mr),gt.n.a=e.o.a/2,gt.n.b=e.o.b,v=new S(r);v.a=k.b?Oa(d,gt):Oa(d,H)):(k=u(hen(d.a),8),tt=d.a.b==0?_1(d.c):u(Aj(d.a),8),tt.b>=k.b?oa(d,gt):oa(d,H)),M=u(Q(d,(Te(),So)),74),M&&ay(M,k,!0);e.n.a=s-e.o.a/2}}function yxn(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi,js,Zl,Xh;if(Rn=null,hr=e,zn=ZZt(t,YZt(n),hr),G9(zn,R0(hr,Ad)),pi=u(n4(t.g,f6(B0(hr,Xct))),33),j=B0(hr,"sourcePort"),r=null,j&&(r=f6(j)),js=u(n4(t.j,r),118),!pi)throw d=pE(hr),G="An edge must have a source node (edge id: '"+d,K=G+JE,it(new ud(K));if(js&&!pd(T1(js),pi))throw v=R0(hr,Ad),tt="The source port of an edge must be a port of the edge's source node (edge id: '"+v,gt=tt+JE,it(new ud(gt));if(We=(!zn.b&&(zn.b=new Cn(br,zn,4,7)),zn.b),o=null,js?o=js:o=pi,Dr(We,o),Zl=u(n4(t.g,f6(B0(hr,M8t))),33),H=B0(hr,"targetPort"),s=null,H&&(s=f6(H)),Xh=u(n4(t.j,s),118),!Zl)throw M=pE(hr),Mt="An edge must have a target node (edge id: '"+M,St=Mt+JE,it(new ud(St));if(Xh&&!pd(T1(Xh),Zl))throw k=R0(hr,Ad),Rt="The target port of an edge must be a port of the edge's target node (edge id: '"+k,Kt=Rt+JE,it(new ud(Kt));if(Qe=(!zn.c&&(zn.c=new Cn(br,zn,5,8)),zn.c),h=null,Xh?h=Xh:h=Zl,Dr(Qe,h),(!zn.b&&(zn.b=new Cn(br,zn,4,7)),zn.b).i==0||(!zn.c&&(zn.c=new Cn(br,zn,5,8)),zn.c).i==0)throw C=R0(hr,Ad),ue=Vde+C,_e=ue+JE,it(new ud(_e));return lq(hr,zn),l2n(hr,zn),Rn=Lit(t,hr,zn),Rn}function Khe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn;return M=Eyn(bu(t,(ve(),U1)),e),G=d4(bu(t,Mf),e),Rt=d4(bu(t,Kl),e),We=rq(bu(t,Vh),e),j=rq(bu(t,mh),e),Mt=d4(bu(t,Df),e),K=d4(bu(t,el),e),ue=d4(bu(t,Xl),e),Kt=d4(bu(t,yh),e),Qe=rq(bu(t,lu),e),gt=d4(bu(t,Au),e),St=d4(bu(t,nl),e),_e=d4(bu(t,Su),e),Rn=rq(bu(t,Lu),e),H=rq(bu(t,Vu),e),tt=d4(bu(t,Uc),e),n=s4(lt(ct(aa,1),vo,25,15,[Mt.a,We.a,ue.a,Rn.a])),r=s4(lt(ct(aa,1),vo,25,15,[G.a,M.a,Rt.a,tt.a])),s=gt.a,o=s4(lt(ct(aa,1),vo,25,15,[K.a,j.a,Kt.a,H.a])),k=s4(lt(ct(aa,1),vo,25,15,[Mt.b,G.b,K.b,St.b])),v=s4(lt(ct(aa,1),vo,25,15,[We.b,M.b,j.b,tt.b])),C=Qe.b,d=s4(lt(ct(aa,1),vo,25,15,[ue.b,Rt.b,Kt.b,_e.b])),Bg(bu(t,U1),n+s,k+C),Bg(bu(t,Uc),n+s,k+C),Bg(bu(t,Mf),n+s,0),Bg(bu(t,Kl),n+s,k+C+v),Bg(bu(t,Vh),0,k+C),Bg(bu(t,mh),n+s+r,k+C),Bg(bu(t,el),n+s+r,0),Bg(bu(t,Xl),0,k+C+v),Bg(bu(t,yh),n+s+r,k+C+v),Bg(bu(t,lu),0,k),Bg(bu(t,Au),n,0),Bg(bu(t,Su),0,k+C+v),Bg(bu(t,Vu),n+s+r,0),h=new Ca,h.a=s4(lt(ct(aa,1),vo,25,15,[n+r+s+o,Qe.a,St.a,_e.a])),h.b=s4(lt(ct(aa,1),vo,25,15,[k+v+C+d,gt.b,Rn.b,H.b])),h}function xxn(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt;for(K=new he,j=new S(t.d.b);j.as.d.d+s.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))),r.b!=r.d.c&&(e=n);C&&(o=u(tr(t.f,h.d.i),57),e.bo.d.d+o.d.a?C.f.d=!0:(C.f.d=!0,C.f.a=!0))}for(d=new ar(lr(jo(H).a.Kc(),new z));zr(d);)h=u(Mr(d),17),h.a.b!=0&&(e=u(Aj(h.a),8),h.d.j==(ve(),Pn)&&(tt=new T_(e,new $e(e.a,s.d.d),s,h),tt.f.a=!0,tt.a=h.d,K.c[K.c.length]=tt),h.d.j==mr&&(tt=new T_(e,new $e(e.a,s.d.d+s.d.a),s,h),tt.f.d=!0,tt.a=h.d,K.c[K.c.length]=tt))}return K}function kxn(t,e,n){var r,s,o,h,d,v,k,C,M;if(vr(n,"Network simplex node placement",1),t.e=e,t.n=u(Q(e,(ae(),Q4)),304),j3n(t),m0n(t),ls(Wo(new Tn(null,new _n(t.e.b,16)),new EQ),new q$t(t)),ls(Ri(Wo(Ri(Wo(new Tn(null,new _n(t.e.b,16)),new WT),new OQ),new PQ),new FQ),new z$t(t)),je(Re(Q(t.e,(Te(),SS))))&&(h=Rc(n,1),vr(h,"Straight Edges Pre-Processing",1),i5n(t),or(h)),t1n(t.f),o=u(Q(e,MS),19).a*t.f.a.c.length,mat(abt(obt(Mnt(t.f),o),!1),Rc(n,1)),t.d.a.gc()!=0){for(h=Rc(n,1),vr(h,"Flexible Where Space Processing",1),d=u(Nw(t$(wu(new Tn(null,new _n(t.f.a,16)),new TQ),new wQ)),19).a,v=u(Nw(Jj(wu(new Tn(null,new _n(t.f.a,16)),new CQ),new vQ)),19).a,k=v-d,C=Fw(new Xb,t.f),M=Fw(new Xb,t.f),yf(lf(uf(cf(hf(new Ch,2e4),k),C),M)),ls(Ri(Ri(Qnt(t.i),new _Q),new SQ),new jXt(d,C,k,M)),s=t.d.a.ec().Kc();s.Ob();)r=u(s.Pb(),213),r.g=1;mat(abt(obt(Mnt(t.f),o),!1),Rc(h,1)),or(h)}je(Re(Q(e,SS)))&&(h=Rc(n,1),vr(h,"Straight Edges Post-Processing",1),upn(t),or(h)),q4n(t),t.e=null,t.f=null,t.i=null,t.c=null,Xu(t.k),t.j=null,t.a=null,t.o=null,t.d.a.$b(),or(n)}function Exn(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt;for(d=new S(t.a.b);d.a0)if(r=M.gc(),k=ps(b.Math.floor((r+1)/2))-1,s=ps(b.Math.ceil((r+1)/2))-1,e.o==H1)for(C=s;C>=k;C--)e.a[Rt.p]==Rt&&(K=u(M.Xb(C),46),G=u(K.a,10),!I0(n,K.b)&&H>t.b.e[G.p]&&(e.a[G.p]=Rt,e.g[Rt.p]=e.g[G.p],e.a[Rt.p]=e.g[Rt.p],e.f[e.g[Rt.p].p]=(Nn(),!!(je(e.f[e.g[Rt.p].p])&Rt.k==(Vn(),ta))),H=t.b.e[G.p]));else for(C=k;C<=s;C++)e.a[Rt.p]==Rt&&(gt=u(M.Xb(C),46),tt=u(gt.a,10),!I0(n,gt.b)&&H=G&&(Mt>G&&(H.c=Nt(Qn,De,1,0,5,1),G=Mt),H.c[H.c.length]=h);H.c.length!=0&&(j=u(Ne(H,Zz(e,H.c.length)),128),zn.a.Bc(j)!=null,j.s=K++,A5t(j,Qe,ue),H.c=Nt(Qn,De,1,0,5,1))}for(Rt=t.c.length+1,d=new S(t);d.aRn.s&&(Cl(n),mu(Rn.i,r),r.c>0&&(r.a=Rn,le(Rn.t,r),r.b=_e,le(_e.i,r)))}function Ixt(t){var e,n,r,s,o;switch(e=t.c,e){case 11:return t.Ml();case 12:return t.Ol();case 14:return t.Ql();case 15:return t.Tl();case 16:return t.Rl();case 17:return t.Ul();case 21:return fi(t),gi(),gi(),pA;case 10:switch(t.a){case 65:return t.yl();case 90:return t.Dl();case 122:return t.Kl();case 98:return t.El();case 66:return t.zl();case 60:return t.Jl();case 62:return t.Hl()}}switch(o=vxn(t),e=t.c,e){case 3:return t.Zl(o);case 4:return t.Xl(o);case 5:return t.Yl(o);case 0:if(t.a==123&&t.d=48&&e<=57){for(r=e-48;s=48&&e<=57;)if(r=r*10+e-48,r<0)throw it(new Nr(qr((Pr(),N8t))))}else throw it(new Nr(qr((Pr(),v0e))));if(n=r,e==44){if(s>=t.j)throw it(new Nr(qr((Pr(),y0e))));if((e=wa(t.i,s++))>=48&&e<=57){for(n=e-48;s=48&&e<=57;)if(n=n*10+e-48,n<0)throw it(new Nr(qr((Pr(),N8t))));if(r>n)throw it(new Nr(qr((Pr(),x0e))))}else n=-1}if(e!=125)throw it(new Nr(qr((Pr(),m0e))));t.sl(s)?(o=(gi(),gi(),new Xm(9,o)),t.d=s+1):(o=(gi(),gi(),new Xm(3,o)),t.d=s),o.dm(r),o.cm(n),fi(t)}}return o}function Xhe(t,e,n,r,s){var o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn;for(K=new Xc(e.b),Rt=new Xc(e.b),j=new Xc(e.b),We=new Xc(e.b),tt=new Xc(e.b),_e=ei(e,0);_e.b!=_e.d.c;)for(Kt=u(ti(_e),11),d=new S(Kt.g);d.a0,gt=Kt.g.c.length>0,k&>?j.c[j.c.length]=Kt:k?K.c[K.c.length]=Kt:gt&&(Rt.c[Rt.c.length]=Kt);for(G=new S(K);G.a1)for(G=new Nx((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a));G.e!=G.i.gc();)f_(G);for(h=u(At((!t.a&&(t.a=new fe(Ji,t,6,6)),t.a),0),202),tt=pi,pi>Kt+Rt?tt=Kt+Rt:piue+K?gt=ue+K:jsKt-Rt&&ttue-K&>pi+hr?We=pi+hr:Ktjs+_e?Qe=js+_e:uepi-hr&&Wejs-_e&&Qen&&(j=n-1),H=xP+ul(e,24)*$I*M-M/2,H<0?H=1:H>r&&(H=r-1),s=(Sw(),v=new xp,v),iz(s,j),sz(s,H),Dr((!h.a&&(h.a=new As(Gh,h,5)),h.a),s)}function Te(){Te=Z,lht=(ui(),p4e),y9t=b4e,OO=hAt,Tf=w4e,V6=fAt,jv=v4e,Wy=dAt,S7=gAt,A7=pAt,hht=JG,$v=W2,fht=m4e,LS=vAt,bG=K6,IO=(Fxt(),fve),J4=dve,q2=gve,t5=pve,Zve=new eo(ZG,pe(0)),_7=uve,m9t=lve,H6=hve,A9t=Bve,x9t=vve,k9t=xve,ght=Ave,E9t=Tve,T9t=_ve,wG=zve,pht=Rve,_9t=Ove,C9t=Dve,S9t=Fve,Bv=rve,AS=ive,sht=xwe,QCt=Ewe,g9t=new Ow(12),d9t=new eo(U2,g9t),YCt=(W0(),N7),eg=new eo(zSt,YCt),Vy=new eo(dl,0),Jve=new eo(Eft,pe(1)),rG=new eo(W6,GE),z2=QG,cs=KS,C7=u5,Gve=QO,Id=a4e,qy=s5,tme=new eo(Tft,(Nn(),!0)),Hy=ZO,j2=bft,$2=G2,pG=xb,uht=XG,WCt=(ao(),h0),Wl=new eo(qv,WCt),Nv=o5,dG=XSt,Gy=Qy,Qve=kft,w9t=uAt,b9t=(l4(),iP),new eo(iAt,b9t),Yve=vft,Kve=mft,Xve=yft,Wve=wft,dht=wve,c9t=Gwe,oht=Vwe,MS=bve,uu=Bwe,zy=dwe,_S=fwe,$y=J2e,VCt=twe,eht=iwe,DO=ewe,nht=lwe,u9t=Uwe,l9t=Wwe,r9t=Dwe,gG=ove,cht=Xwe,aht=_we,f9t=eve,XCt=mwe,iht=ywe,tht=YG,h9t=Ywe,sG=U2e,zCt=G2e,iG=V2e,t9t=Lwe,JCt=Awe,e9t=Mwe,E7=c5,So=a5,Jg=HSt,Od=pft,rht=gft,GCt=awe,tp=xft,CS=u4e,lG=l4e,Rv=aAt,p9t=h4e,T7=f4e,s9t=jwe,a9t=zwe,Uy=Y6,Zlt=H2e,o9t=Hwe,uG=bwe,cG=pwe,fG=JO,i9t=Pwe,SS=Zwe,PO=bAt,UCt=gwe,v9t=cve,KCt=wwe,Uve=Nwe,Vve=cwe,n9t=WSt,hG=Rwe,oG=uwe,wb=Z2e,HCt=X2e,aG=Y2e,qCt=K2e,Jlt=Q2e,q6=W2e,ZCt=Swe}function Hat(t,e){Lat();var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi;if(We=t.e,G=t.d,s=t.a,We==0)switch(e){case 0:return"0";case 1:return $E;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return ue=new Mp,e<0?ue.a+="0E+":ue.a+="0E",ue.a+=-e,ue.a}if(St=G*10+1+7,Rt=Nt(xh,yd,25,St+1,15,1),n=St,G==1)if(d=s[0],d<0){pi=Ns(d,co);do K=pi,pi=aI(pi,10),Rt[--n]=48+Ar(Jp(K,_a(pi,10)))&ys;while(yc(pi,0)!=0)}else{pi=d;do K=pi,pi=pi/10|0,Rt[--n]=48+(K-pi*10)&ys;while(pi!=0)}else{Rn=Nt(Cr,Xr,25,G,15,1),hr=G,Dc(s,0,Rn,0,hr);t:for(;;){for(_e=0,k=hr-1;k>=0;k--)zn=Pa(F0(_e,32),Ns(Rn[k],co)),gt=P0n(zn),Rn[k]=Ar(gt),_e=Ar($p(gt,32));Mt=Ar(_e),tt=n;do Rt[--n]=48+Mt%10&ys;while((Mt=Mt/10|0)!=0&&n!=0);for(r=9-tt+n,v=0;v0;v++)Rt[--n]=48;for(M=hr-1;Rn[M]==0;M--)if(M==0)break t;hr=M+1}for(;Rt[n]==48;)++n}if(H=We<0,h=St-n-e-1,e==0)return H&&(Rt[--n]=45),Mh(Rt,n,St-n);if(e>0&&h>=-6){if(h>=0){for(C=n+h,j=St-1;j>=C;j--)Rt[j+1]=Rt[j];return Rt[++C]=46,H&&(Rt[--n]=45),Mh(Rt,n,St-n+1)}for(M=2;M<-h+1;M++)Rt[--n]=48;return Rt[--n]=46,Rt[--n]=48,H&&(Rt[--n]=45),Mh(Rt,n,St-n)}return Qe=n+1,o=St,Kt=new Im,H&&(Kt.a+="-"),o-Qe>=1?(qp(Kt,Rt[n]),Kt.a+=".",Kt.a+=Mh(Rt,n+1,St-n-1)):Kt.a+=Mh(Rt,n,St-n),Kt.a+="E",h>0&&(Kt.a+="+"),Kt.a+=""+h,Kt.a}function Jhe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue;switch(t.c=e,t.g=new _r,n=(Pm(),new Mm(t.c)),r=new er(n),p3t(r),St=Br(qe(t.c,(cI(),lSt))),v=u(qe(t.c,sft),316),Kt=u(qe(t.c,aft),429),h=u(qe(t.c,oSt),482),Rt=u(qe(t.c,ift),430),t.j=Xt(ye(qe(t.c,M3e))),d=t.a,v.g){case 0:d=t.a;break;case 1:d=t.b;break;case 2:d=t.i;break;case 3:d=t.e;break;case 4:d=t.f;break;default:throw it(new Fn(_H+(v.f!=null?v.f:""+v.g)))}if(t.d=new EQt(d,Kt,h),Jt(t.d,(Z8(),fS),Re(qe(t.c,A3e))),t.d.c=je(Re(qe(t.c,cSt))),p$(t.c).i==0)return t.d;for(M=new nr(p$(t.c));M.e!=M.i.gc();){for(C=u(dr(M),33),H=C.g/2,j=C.f/2,ue=new $e(C.i+H,C.j+j);Tl(t.g,ue);)jm(ue,(b.Math.random()-.5)*Ed,(b.Math.random()-.5)*Ed);K=u(qe(C,(ui(),JO)),142),tt=new $Qt(ue,new ah(ue.a-H-t.j/2-K.b,ue.b-j-t.j/2-K.d,C.g+t.j+(K.b+K.c),C.f+t.j+(K.d+K.a))),le(t.d.i,tt),ki(t.g,ue,new fa(tt,C))}switch(Rt.g){case 0:if(St==null)t.d.d=u(Ne(t.d.i,0),65);else for(Mt=new S(t.d.i);Mt.a1&&fs(C,gt,C.c.b,C.c),tz(s)));gt=Mt}return C}function Mxn(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi,js,Zl,Xh,K1;for(vr(n,"Greedy cycle removal",1),St=e.a,K1=St.c.length,t.a=Nt(Cr,Xr,25,K1,15,1),t.c=Nt(Cr,Xr,25,K1,15,1),t.b=Nt(Cr,Xr,25,K1,15,1),k=0,gt=new S(St);gt.a0?hr+1:1);for(h=new S(ue.g);h.a0?hr+1:1)}t.c[k]==0?ri(t.e,K):t.a[k]==0&&ri(t.f,K),++k}for(G=-1,H=1,M=new he,t.d=u(Q(e,(ae(),$6)),230);K1>0;){for(;t.e.b!=0;)js=u(Ont(t.e),10),t.b[js.p]=G--,ext(t,js),--K1;for(;t.f.b!=0;)Zl=u(Ont(t.f),10),t.b[Zl.p]=H++,ext(t,Zl),--K1;if(K1>0){for(j=Sa,Mt=new S(St);Mt.a=j&&(Rt>j&&(M.c=Nt(Qn,De,1,0,5,1),j=Rt),M.c[M.c.length]=K));C=t.Zf(M),t.b[C.p]=H++,ext(t,C),--K1}}for(pi=St.c.length+1,k=0;kt.b[Xh]&&(bv(r,!0),Jt(e,_O,(Nn(),!0)));t.a=null,t.c=null,t.b=null,Ah(t.f),Ah(t.e),or(n)}function efe(t,e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt;for(r=new he,d=new he,tt=e/2,H=t.gc(),s=u(t.Xb(0),8),gt=u(t.Xb(1),8),G=rat(s.a,s.b,gt.a,gt.b,tt),le(r,(An(0,G.c.length),u(G.c[0],8))),le(d,(An(1,G.c.length),u(G.c[1],8))),k=2;k=0;v--)ri(n,(An(v,h.c.length),u(h.c[v],8)));return n}function Dxn(t){var e,n,r,s,o,h,d,v,k,C,M,j,H;if(h=!0,M=null,r=null,s=null,e=!1,H=o5e,k=null,o=null,d=0,v=ust(t,d,nLt,rLt),v=0&&hn(t.substr(d,2),"//")?(d+=2,v=ust(t,d,oA,cA),r=t.substr(d,v-d),d=v):M!=null&&(d==t.length||(Rr(d,t.length),t.charCodeAt(d)!=47))&&(h=!1,v=O2t(t,Cu(35),d),v==-1&&(v=t.length),r=t.substr(d,v-d),d=v);if(!n&&d0&&wa(C,C.length-1)==58&&(s=C,d=v)),d=t.j){t.a=-1,t.c=1;return}if(e=wa(t.i,t.d++),t.a=e,t.b==1){switch(e){case 92:if(r=10,t.d>=t.j)throw it(new Nr(qr((Pr(),OH))));t.a=wa(t.i,t.d++);break;case 45:(t.e&512)==512&&t.d=t.j||wa(t.i,t.d)!=63)break;if(++t.d>=t.j)throw it(new Nr(qr((Pr(),out))));switch(e=wa(t.i,t.d++),e){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(t.d>=t.j)throw it(new Nr(qr((Pr(),out))));if(e=wa(t.i,t.d++),e==61)r=16;else if(e==33)r=17;else throw it(new Nr(qr((Pr(),t0e))));break;case 35:for(;t.d=t.j)throw it(new Nr(qr((Pr(),OH))));t.a=wa(t.i,t.d++);break;default:r=0}t.c=r}function Oxn(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr;if(_e=u(Q(t,(Te(),cs)),98),_e!=(ua(),G1)&&_e!=Tb){for(G=t.b,H=G.c.length,C=new Xc((jl(H+2,Yat),J$(Pa(Pa(5,H+2),(H+2)/10|0)))),K=new Xc((jl(H+2,Yat),J$(Pa(Pa(5,H+2),(H+2)/10|0)))),le(C,new _r),le(C,new _r),le(K,new he),le(K,new he),ue=new he,e=0;e=Kt||!tfn(gt,r))&&(r=XQt(e,C)),Eo(gt,r),o=new ar(lr(jo(gt).a.Kc(),new z));zr(o);)s=u(Mr(o),17),!t.a[s.p]&&(K=s.c.i,--t.e[K.p],t.e[K.p]==0&&R8(xE(H,K)));for(k=C.c.length-1;k>=0;--k)le(e.b,(An(k,C.c.length),u(C.c[k],29)));e.a.c=Nt(Qn,De,1,0,5,1),or(n)}function nfe(t){var e,n,r,s,o,h,d,v,k;for(t.b=1,fi(t),e=null,t.c==0&&t.a==94?(fi(t),e=(gi(),gi(),new Nl(4)),jc(e,0,e7),d=new Nl(4)):d=(gi(),gi(),new Nl(4)),s=!0;(k=t.c)!=1;){if(k==0&&t.a==93&&!s){e&&(L_(e,d),d=e);break}if(n=t.a,r=!1,k==10)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:yy(d,ME(n)),r=!0;break;case 105:case 73:case 99:case 67:n=(yy(d,ME(n)),-1),n<0&&(r=!0);break;case 112:case 80:if(v=u5t(t,n),!v)throw it(new Nr(qr((Pr(),cut))));yy(d,v),r=!0;break;default:n=H5t(t)}else if(k==24&&!s){if(e&&(L_(e,d),d=e),o=nfe(t),L_(d,o),t.c!=0||t.a!=93)throw it(new Nr(qr((Pr(),l0e))));break}if(fi(t),!r){if(k==0){if(n==91)throw it(new Nr(qr((Pr(),P8t))));if(n==93)throw it(new Nr(qr((Pr(),F8t))));if(n==45&&!s&&t.a!=93)throw it(new Nr(qr((Pr(),uut))))}if(t.c!=0||t.a!=45||n==45&&s)jc(d,n,n);else{if(fi(t),(k=t.c)==1)throw it(new Nr(qr((Pr(),PH))));if(k==0&&t.a==93)jc(d,n,n),jc(d,45,45);else{if(k==0&&t.a==93||k==24)throw it(new Nr(qr((Pr(),uut))));if(h=t.a,k==0){if(h==91)throw it(new Nr(qr((Pr(),P8t))));if(h==93)throw it(new Nr(qr((Pr(),F8t))));if(h==45)throw it(new Nr(qr((Pr(),uut))))}else k==10&&(h=H5t(t));if(fi(t),n>h)throw it(new Nr(qr((Pr(),d0e))));jc(d,n,h)}}}s=!1}if(t.c==1)throw it(new Nr(qr((Pr(),PH))));return v4(d),S_(d),t.b=0,fi(t),d}function Fxn(t){Ir(t.c,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#decimal"])),Ir(t.d,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#integer"])),Ir(t.e,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#boolean"])),Ir(t.f,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EBoolean",ci,"EBoolean:Object"])),Ir(t.i,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#byte"])),Ir(t.g,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Ir(t.j,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EByte",ci,"EByte:Object"])),Ir(t.n,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EChar",ci,"EChar:Object"])),Ir(t.t,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#double"])),Ir(t.u,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EDouble",ci,"EDouble:Object"])),Ir(t.F,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#float"])),Ir(t.G,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EFloat",ci,"EFloat:Object"])),Ir(t.I,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#int"])),Ir(t.J,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EInt",ci,"EInt:Object"])),Ir(t.N,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#long"])),Ir(t.O,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"ELong",ci,"ELong:Object"])),Ir(t.Z,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#short"])),Ir(t.$,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"EShort",ci,"EShort:Object"])),Ir(t._,Yr,lt(ct(Ae,1),ee,2,6,[Aa,"http://www.w3.org/2001/XMLSchema#string"]))}function Nxn(t){var e,n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr;if(t.c.length==1)return An(0,t.c.length),u(t.c[0],135);if(t.c.length<=0)return new j$;for(v=new S(t);v.aM&&(zn=0,hr+=C+_e,C=0),U2n(Kt,h,zn,hr),e=b.Math.max(e,zn+ue.a),C=b.Math.max(C,ue.b),zn+=ue.a+_e;for(Rt=new _r,n=new _r,Qe=new S(t);Qe.aiat(o))&&(M=o);for(!M&&(M=(An(0,tt.c.length),u(tt.c[0],180))),K=new S(e.b);K.a=-1900?1:0,n>=4?Gr(t,lt(ct(Ae,1),ee,2,6,[mfe,yfe])[d]):Gr(t,lt(ct(Ae,1),ee,2,6,["BC","AD"])[d]);break;case 121:Mfn(t,n,r);break;case 77:Pmn(t,n,r);break;case 107:v=s.q.getHours(),v==0?Jd(t,24,n):Jd(t,v,n);break;case 83:ewn(t,n,s);break;case 69:C=r.q.getDay(),n==5?Gr(t,lt(ct(Ae,1),ee,2,6,["S","M","T","W","T","F","S"])[C]):n==4?Gr(t,lt(ct(Ae,1),ee,2,6,[cot,uot,lot,hot,fot,dot,got])[C]):Gr(t,lt(ct(Ae,1),ee,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[C]);break;case 97:s.q.getHours()>=12&&s.q.getHours()<24?Gr(t,lt(ct(Ae,1),ee,2,6,["AM","PM"])[1]):Gr(t,lt(ct(Ae,1),ee,2,6,["AM","PM"])[0]);break;case 104:M=s.q.getHours()%12,M==0?Jd(t,12,n):Jd(t,M,n);break;case 75:j=s.q.getHours()%12,Jd(t,j,n);break;case 72:H=s.q.getHours(),Jd(t,H,n);break;case 99:G=r.q.getDay(),n==5?Gr(t,lt(ct(Ae,1),ee,2,6,["S","M","T","W","T","F","S"])[G]):n==4?Gr(t,lt(ct(Ae,1),ee,2,6,[cot,uot,lot,hot,fot,dot,got])[G]):n==3?Gr(t,lt(ct(Ae,1),ee,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[G]):Jd(t,G,1);break;case 76:K=r.q.getMonth(),n==5?Gr(t,lt(ct(Ae,1),ee,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[K]):n==4?Gr(t,lt(ct(Ae,1),ee,2,6,[Qat,Zat,Jat,tot,w6,eot,not,rot,iot,sot,aot,oot])[K]):n==3?Gr(t,lt(ct(Ae,1),ee,2,6,["Jan","Feb","Mar","Apr",w6,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[K]):Jd(t,K+1,n);break;case 81:tt=r.q.getMonth()/3|0,n<4?Gr(t,lt(ct(Ae,1),ee,2,6,["Q1","Q2","Q3","Q4"])[tt]):Gr(t,lt(ct(Ae,1),ee,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[tt]);break;case 100:gt=r.q.getDate(),Jd(t,gt,n);break;case 109:k=s.q.getMinutes(),Jd(t,k,n);break;case 115:h=s.q.getSeconds(),Jd(t,h,n);break;case 122:n<4?Gr(t,o.c[0]):Gr(t,o.c[1]);break;case 118:Gr(t,o.b);break;case 90:n<3?Gr(t,Vpn(o)):n==3?Gr(t,Wpn(o)):Gr(t,Ypn(o.a));break;default:return!1}return!0}function Pxt(t,e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi;if(Hue(e),v=u(At((!e.b&&(e.b=new Cn(br,e,4,7)),e.b),0),82),C=u(At((!e.c&&(e.c=new Cn(br,e,5,8)),e.c),0),82),d=Do(v),k=Do(C),h=(!e.a&&(e.a=new fe(Ji,e,6,6)),e.a).i==0?null:u(At((!e.a&&(e.a=new fe(Ji,e,6,6)),e.a),0),202),_e=u(tr(t.a,d),10),zn=u(tr(t.a,k),10),We=null,hr=null,_t(v,186)&&(ue=u(tr(t.a,v),299),_t(ue,11)?We=u(ue,11):_t(ue,10)&&(_e=u(ue,10),We=u(Ne(_e.j,0),11))),_t(C,186)&&(Rn=u(tr(t.a,C),299),_t(Rn,11)?hr=u(Rn,11):_t(Rn,10)&&(zn=u(Rn,10),hr=u(Ne(zn.j,0),11))),!_e||!zn)throw it(new jC("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(K=new Vw,Mo(K,e),Jt(K,(ae(),_i),e),Jt(K,(Te(),So),null),H=u(Q(r,Vc),21),_e==zn&&H.Fc((oo(),xS)),We||(Kt=(so(),nu),Qe=null,h&&G3(u(Q(_e,cs),98))&&(Qe=new $e(h.j,h.k),JZt(Qe,cD(e)),LJt(Qe,n),ey(k,d)&&(Kt=tl,Li(Qe,_e.n))),We=zle(_e,Qe,Kt,r)),hr||(Kt=(so(),tl),pi=null,h&&G3(u(Q(zn,cs),98))&&(pi=new $e(h.b,h.c),JZt(pi,cD(e)),LJt(pi,n)),hr=zle(zn,pi,Kt,Na(zn))),Oa(K,We),oa(K,hr),(We.e.c.length>1||We.g.c.length>1||hr.e.c.length>1||hr.g.c.length>1)&&H.Fc((oo(),yS)),j=new nr((!e.n&&(e.n=new fe(qo,e,1,7)),e.n));j.e!=j.i.gc();)if(M=u(dr(j),137),!je(Re(qe(M,z2)))&&M.a)switch(tt=Vit(M),le(K.b,tt),u(Q(tt,Od),272).g){case 1:case 2:H.Fc((oo(),m7));break;case 0:H.Fc((oo(),v7)),Jt(tt,Od,(M1(),P7))}if(o=u(Q(r,_S),314),gt=u(Q(r,gG),315),s=o==(n6(),EO)||gt==(u_(),xht),h&&(!h.a&&(h.a=new As(Gh,h,5)),h.a).i!=0&&s){for(Mt=lI(h),G=new Pu,Rt=ei(Mt,0);Rt.b!=Rt.d.c;)St=u(ti(Rt),8),ri(G,new xo(St));Jt(K,aCt,G)}return K}function $xn(t){t.gb||(t.gb=!0,t.b=ic(t,0),ns(t.b,18),Fi(t.b,19),t.a=ic(t,1),ns(t.a,1),Fi(t.a,2),Fi(t.a,3),Fi(t.a,4),Fi(t.a,5),t.o=ic(t,2),ns(t.o,8),ns(t.o,9),Fi(t.o,10),Fi(t.o,11),Fi(t.o,12),Fi(t.o,13),Fi(t.o,14),Fi(t.o,15),Fi(t.o,16),Fi(t.o,17),Fi(t.o,18),Fi(t.o,19),Fi(t.o,20),Fi(t.o,21),Fi(t.o,22),Fi(t.o,23),Co(t.o),Co(t.o),Co(t.o),Co(t.o),Co(t.o),Co(t.o),Co(t.o),Co(t.o),Co(t.o),Co(t.o),t.p=ic(t,3),ns(t.p,2),ns(t.p,3),ns(t.p,4),ns(t.p,5),Fi(t.p,6),Fi(t.p,7),Co(t.p),Co(t.p),t.q=ic(t,4),ns(t.q,8),t.v=ic(t,5),Fi(t.v,9),Co(t.v),Co(t.v),Co(t.v),t.w=ic(t,6),ns(t.w,2),ns(t.w,3),ns(t.w,4),Fi(t.w,5),t.B=ic(t,7),Fi(t.B,1),Co(t.B),Co(t.B),Co(t.B),t.Q=ic(t,8),Fi(t.Q,0),Co(t.Q),t.R=ic(t,9),ns(t.R,1),t.S=ic(t,10),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),Co(t.S),t.T=ic(t,11),Fi(t.T,10),Fi(t.T,11),Fi(t.T,12),Fi(t.T,13),Fi(t.T,14),Co(t.T),Co(t.T),t.U=ic(t,12),ns(t.U,2),ns(t.U,3),Fi(t.U,4),Fi(t.U,5),Fi(t.U,6),Fi(t.U,7),Co(t.U),t.V=ic(t,13),Fi(t.V,10),t.W=ic(t,14),ns(t.W,18),ns(t.W,19),ns(t.W,20),Fi(t.W,21),Fi(t.W,22),Fi(t.W,23),t.bb=ic(t,15),ns(t.bb,10),ns(t.bb,11),ns(t.bb,12),ns(t.bb,13),ns(t.bb,14),ns(t.bb,15),ns(t.bb,16),Fi(t.bb,17),Co(t.bb),Co(t.bb),t.eb=ic(t,16),ns(t.eb,2),ns(t.eb,3),ns(t.eb,4),ns(t.eb,5),ns(t.eb,6),ns(t.eb,7),Fi(t.eb,8),Fi(t.eb,9),t.ab=ic(t,17),ns(t.ab,0),ns(t.ab,1),t.H=ic(t,18),Fi(t.H,0),Fi(t.H,1),Fi(t.H,2),Fi(t.H,3),Fi(t.H,4),Fi(t.H,5),Co(t.H),t.db=ic(t,19),Fi(t.db,2),t.c=oi(t,20),t.d=oi(t,21),t.e=oi(t,22),t.f=oi(t,23),t.i=oi(t,24),t.g=oi(t,25),t.j=oi(t,26),t.k=oi(t,27),t.n=oi(t,28),t.r=oi(t,29),t.s=oi(t,30),t.t=oi(t,31),t.u=oi(t,32),t.fb=oi(t,33),t.A=oi(t,34),t.C=oi(t,35),t.D=oi(t,36),t.F=oi(t,37),t.G=oi(t,38),t.I=oi(t,39),t.J=oi(t,40),t.L=oi(t,41),t.M=oi(t,42),t.N=oi(t,43),t.O=oi(t,44),t.P=oi(t,45),t.X=oi(t,46),t.Y=oi(t,47),t.Z=oi(t,48),t.$=oi(t,49),t._=oi(t,50),t.cb=oi(t,51),t.K=oi(t,52))}function ui(){ui=Z;var t,e;YS=new Vi(ude),O7=new Vi(lde),NSt=(t0(),uft),a4e=new mn(xkt,NSt),W6=new mn(E6,null),o4e=new Vi(p8t),RSt=(hy(),ji(fft,lt(ct(dft,1),oe,291,0,[hft]))),YG=new mn(mH,RSt),QO=new mn(JI,(Nn(),!1)),jSt=(ao(),h0),qv=new mn(Tkt,jSt),qSt=(W0(),Cft),zSt=new mn(QI,qSt),GSt=new mn(CH,!1),USt=(G0(),tU),s5=new mn(vH,USt),nAt=new Ow(12),U2=new mn(xv,nAt),KG=new mn(GI,!1),WSt=new mn(_ct,!1),tP=new mn(j_,!1),oAt=(ua(),Tb),KS=new mn(Got,oAt),Y6=new Vi(yH),ZG=new Vi(VI),Eft=new Vi(tH),Tft=new Vi(R_),YSt=new Pu,a5=new mn(Okt,YSt),u4e=new mn(Nkt,!1),l4e=new mn(Bkt,!1),KSt=new OC,JO=new mn(jkt,KSt),QG=new mn(mkt,!1),g4e=new mn(hde,1),new mn(fde,!0),pe(0),new mn(dde,pe(100)),new mn(gde,!1),pe(0),new mn(pde,pe(4e3)),pe(0),new mn(bde,pe(400)),new mn(wde,!1),new mn(vde,!1),new mn(mde,!0),new mn(yde,!1),BSt=(jz(),Lft),c4e=new mn(g8t,BSt),p4e=new mn(okt,10),b4e=new mn(ckt,10),hAt=new mn(jot,20),w4e=new mn(ukt,10),fAt=new mn(Vot,2),v4e=new mn(lkt,10),dAt=new mn(hkt,0),JG=new mn(gkt,5),gAt=new mn(fkt,1),pAt=new mn(dkt,1),W2=new mn(Cy,20),m4e=new mn(pkt,10),vAt=new mn(bkt,10),K6=new Vi(wkt),wAt=new CUt,bAt=new mn($kt,wAt),f4e=new Vi(Cct),rAt=!1,h4e=new mn(Tct,rAt),QSt=new Ow(5),XSt=new mn(Ckt,QSt),ZSt=(py(),e=u(Vf(lo),9),new sh(e,u(ff(e,e.length),9),0)),o5=new mn(UE,ZSt),sAt=(l4(),Eb),iAt=new mn(Akt,sAt),vft=new Vi(Lkt),mft=new Vi(Mkt),yft=new Vi(Dkt),wft=new Vi(Ikt),JSt=(t=u(Vf(rA),9),new sh(t,u(ff(t,t.length),9),0)),G2=new mn(D4,JSt),eAt=un((ll(),R7)),xb=new mn(T6,eAt),tAt=new $e(0,0),c5=new mn(C6,tAt),XG=new mn(Ect,!1),$St=(M1(),P7),pft=new mn(Pkt,$St),gft=new mn(eH,!1),pe(1),new mn(xde,null),aAt=new Vi(Rkt),xft=new Vi(Fkt),lAt=(ve(),Zo),u5=new mn(ykt,lAt),dl=new Vi(vkt),cAt=(Zu(),un(Cb)),Qy=new mn(WE,cAt),kft=new mn(_kt,!1),uAt=new mn(Skt,!0),ZO=new mn(kkt,!1),bft=new mn(Ekt,!1),HSt=new mn($ot,1),VSt=(hq(),Sft),new mn(kde,VSt),d4e=!0}function ae(){ae=Z;var t,e;_i=new Vi(w6t),nCt=new Vi("coordinateOrigin"),Klt=new Vi("processors"),eCt=new Ps("compoundNode",(Nn(),!1)),SO=new Ps("insideConnections",!1),aCt=new Vi("originalBendpoints"),oCt=new Vi("originalDummyNodePosition"),cCt=new Vi("originalLabelEdge"),LO=new Vi("representedLabels"),kS=new Vi("endLabels"),B6=new Vi("endLabel.origin"),j6=new Ps("labelSide",(zl(),rP)),K4=new Ps("maxEdgeThickness",0),q1=new Ps("reversed",!1),$6=new Vi(i1e),r1=new Ps("longEdgeSource",null),$h=new Ps("longEdgeTarget",null),Ry=new Ps("longEdgeHasLabelDummies",!1),AO=new Ps("longEdgeBeforeLabelDummy",!1),tG=new Ps("edgeConstraint",(d2(),Ilt)),Pv=new Vi("inLayerLayoutUnit"),B2=new Ps("inLayerConstraint",(q0(),CO)),R6=new Ps("inLayerSuccessorConstraint",new he),sCt=new Ps("inLayerSuccessorConstraintBetweenNonDummies",!1),Ju=new Vi("portDummy"),JV=new Ps("crossingHint",pe(0)),Vc=new Ps("graphProperties",(e=u(Vf(jlt),9),new sh(e,u(ff(e,e.length),9),0))),oc=new Ps("externalPortSide",(ve(),Zo)),iCt=new Ps("externalPortSize",new Ca),Vlt=new Vi("externalPortReplacedDummies"),eG=new Vi("externalPortReplacedDummy"),By=new Ps("externalPortConnections",(t=u(Vf(Xa),9),new sh(t,u(ff(t,t.length),9),0))),Fv=new Ps(Xfe,0),tCt=new Vi("barycenterAssociates"),z6=new Vi("TopSideComments"),N6=new Vi("BottomSideComments"),ZV=new Vi("CommentConnectionPort"),Ult=new Ps("inputCollect",!1),Ylt=new Ps("outputCollect",!1),_O=new Ps("cyclic",!1),rCt=new Vi("crossHierarchyMap"),Qlt=new Vi("targetOffset"),new Ps("splineLabelSize",new Ca),Q4=new Vi("spacings"),nG=new Ps("partitionConstraint",!1),Iv=new Vi("breakingPoint.info"),hCt=new Vi("splines.survivingEdge"),R2=new Vi("splines.route.start"),Z4=new Vi("splines.edgeChain"),lCt=new Vi("originalPortConstraints"),x7=new Vi("selfLoopHolder"),k7=new Vi("splines.nsPortY"),Tc=new Vi("modelOrder"),Wlt=new Vi("longEdgeTargetNode"),Ov=new Ps(D1e,!1),X4=new Ps(D1e,!1),Glt=new Vi("layerConstraints.hiddenNodes"),uCt=new Vi("layerConstraints.opposidePort"),Xlt=new Vi("targetNode.modelOrder")}function Fxt(){Fxt=Z,kCt=(LD(),GV),gwe=new mn(C6t,kCt),_we=new mn(_6t,(Nn(),!1)),ACt=(I$(),Hlt),Dwe=new mn(sH,ACt),Uwe=new mn(S6t,!1),Wwe=new mn(A6t,!0),H2e=new mn(L6t,!1),NCt=(CD(),Tht),cve=new mn(M6t,NCt),pe(1),bve=new mn(D6t,pe(7)),wve=new mn(I6t,!1),Swe=new mn(O6t,!1),xCt=(x2(),Mlt),dwe=new mn(Qot,xCt),DCt=(uq(),wht),Gwe=new mn(KI,DCt),LCt=(dh(),MO),Bwe=new mn(P6t,LCt),pe(-1),Nwe=new mn(F6t,pe(-1)),pe(-1),Rwe=new mn(N6t,pe(-1)),pe(-1),jwe=new mn(Zot,pe(4)),pe(-1),zwe=new mn(Jot,pe(2)),MCt=(y4(),kG),Vwe=new mn(tct,MCt),pe(0),Hwe=new mn(ect,pe(0)),Pwe=new mn(nct,pe(wi)),yCt=(n6(),P6),fwe=new mn(H_,yCt),J2e=new mn(B6t,!1),awe=new mn(rct,.1),lwe=new mn(ict,!1),pe(-1),cwe=new mn(R6t,pe(-1)),pe(-1),uwe=new mn(j6t,pe(-1)),pe(0),twe=new mn($6t,pe(40)),mCt=(eE(),zlt),iwe=new mn(sct,mCt),vCt=TO,ewe=new mn(aH,vCt),FCt=(u_(),DS),ove=new mn(I4,FCt),Zwe=new Vi(oH),ICt=(xD(),WV),Ywe=new mn(act,ICt),OCt=(oI(),YV),Xwe=new mn(oct,OCt),eve=new mn(cct,.3),rve=new Vi(uct),PCt=(cy(),xG),ive=new mn(lct,PCt),CCt=(yz(),_ht),mwe=new mn(z6t,CCt),_Ct=(pD(),Sht),ywe=new mn(q6t,_Ct),SCt=(cE(),PS),xwe=new mn(cH,SCt),Ewe=new mn(uH,.2),wwe=new mn(hct,2),fve=new mn(H6t,null),gve=new mn(V6t,10),dve=new mn(G6t,10),pve=new mn(U6t,20),pe(0),uve=new mn(W6t,pe(0)),pe(0),lve=new mn(Y6t,pe(0)),pe(0),hve=new mn(K6t,pe(0)),V2e=new mn(fct,!1),gCt=(kE(),mS),U2e=new mn(X6t,gCt),dCt=(H$(),Alt),G2e=new mn(Q6t,dCt),Lwe=new mn(lH,!1),pe(0),Awe=new mn(dct,pe(16)),pe(0),Mwe=new mn(gct,pe(5)),jCt=(Cz(),Mht),Bve=new mn(tg,jCt),vve=new mn(hH,10),xve=new mn(fH,1),RCt=(oz(),VV),Ave=new mn(V_,RCt),Tve=new Vi(pct),BCt=pe(1),pe(0),_ve=new mn(bct,BCt),$Ct=(vz(),Lht),zve=new mn(dH,$Ct),Rve=new Vi(gH),Ove=new mn(pH,!0),Dve=new mn(bH,2),Fve=new mn(wct,!0),TCt=(dq(),UV),bwe=new mn(Z6t,TCt),ECt=(h6(),p7),pwe=new mn(J6t,ECt),wCt=(V0(),vb),Z2e=new mn(wH,wCt),Q2e=new mn(tkt,!1),pCt=(iv(),q4),W2e=new mn(vct,pCt),bCt=(Z9(),vht),X2e=new mn(ekt,bCt),Y2e=new mn(mct,0),K2e=new mn(yct,0),Owe=Dlt,Iwe=EO,$we=mG,qwe=mG,Fwe=bht,owe=(G0(),sp),hwe=P6,swe=P6,nwe=P6,rwe=sp,Jwe=IS,tve=DS,Kwe=DS,Qwe=DS,nve=kht,ave=IS,sve=IS,kwe=(W0(),X6),Twe=X6,Cwe=PS,vwe=eP,mve=L7,yve=Yy,kve=L7,Eve=Yy,Lve=L7,Mve=Yy,Cve=Llt,Sve=VV,qve=L7,Hve=Yy,jve=L7,$ve=Yy,Pve=Yy,Ive=Yy,Nve=Yy}function ro(){ro=Z,J7t=new ms("DIRECTION_PREPROCESSOR",0),X7t=new ms("COMMENT_PREPROCESSOR",1),gS=new ms("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),glt=new ms("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),vTt=new ms("PARTITION_PREPROCESSOR",4),CV=new ms("LABEL_DUMMY_INSERTER",5),FV=new ms("SELF_LOOP_PREPROCESSOR",6),h7=new ms("LAYER_CONSTRAINT_PREPROCESSOR",7),bTt=new ms("PARTITION_MIDPROCESSOR",8),oTt=new ms("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),gTt=new ms("NODE_PROMOTION",10),l7=new ms("LAYER_CONSTRAINT_POSTPROCESSOR",11),wTt=new ms("PARTITION_POSTPROCESSOR",12),iTt=new ms("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),mTt=new ms("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),V7t=new ms("BREAKING_POINT_INSERTER",15),LV=new ms("LONG_EDGE_SPLITTER",16),plt=new ms("PORT_SIDE_PROCESSOR",17),EV=new ms("INVERTED_PORT_PROCESSOR",18),IV=new ms("PORT_LIST_SORTER",19),xTt=new ms("SORT_BY_INPUT_ORDER_OF_MODEL",20),DV=new ms("NORTH_SOUTH_PORT_PREPROCESSOR",21),G7t=new ms("BREAKING_POINT_PROCESSOR",22),pTt=new ms(E1e,23),kTt=new ms(T1e,24),OV=new ms("SELF_LOOP_PORT_RESTORER",25),yTt=new ms("SINGLE_EDGE_GRAPH_WRAPPER",26),TV=new ms("IN_LAYER_CONSTRAINT_PROCESSOR",27),eTt=new ms("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),fTt=new ms("LABEL_AND_NODE_SIZE_PROCESSOR",29),hTt=new ms("INNERMOST_NODE_MARGIN_CALCULATOR",30),NV=new ms("SELF_LOOP_ROUTER",31),Y7t=new ms("COMMENT_NODE_MARGIN_CALCULATOR",32),kV=new ms("END_LABEL_PREPROCESSOR",33),SV=new ms("LABEL_DUMMY_SWITCHER",34),W7t=new ms("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),u7=new ms("LABEL_SIDE_SELECTOR",36),uTt=new ms("HYPEREDGE_DUMMY_MERGER",37),sTt=new ms("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),dTt=new ms("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),pS=new ms("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),Q7t=new ms("CONSTRAINTS_POSTPROCESSOR",41),K7t=new ms("COMMENT_POSTPROCESSOR",42),lTt=new ms("HYPERNODE_PROCESSOR",43),aTt=new ms("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),AV=new ms("LONG_EDGE_JOINER",45),PV=new ms("SELF_LOOP_POSTPROCESSOR",46),U7t=new ms("BREAKING_POINT_REMOVER",47),MV=new ms("NORTH_SOUTH_PORT_POSTPROCESSOR",48),cTt=new ms("HORIZONTAL_COMPACTOR",49),_V=new ms("LABEL_DUMMY_REMOVER",50),nTt=new ms("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),tTt=new ms("END_LABEL_SORTER",52),xO=new ms("REVERSED_EDGE_RESTORER",53),xV=new ms("END_LABEL_POSTPROCESSOR",54),rTt=new ms("HIERARCHICAL_NODE_RESIZER",55),Z7t=new ms("DIRECTION_POSTPROCESSOR",56)}function zxn(t,e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe,Rn,zn,hr,pi,js,Zl,Xh,K1,kU,xP,bA,kP,H7,Gft,ixe,Uft,hp,Yv,V7,EP,TP,nk,Wft,wA,sxe,BLt,Kv,vA,Yft,rk,mA,o3,yA,Kft,axe;for(BLt=0,pi=e,Xh=0,xP=pi.length;Xh0&&(t.a[hp.p]=BLt++)}for(mA=0,js=n,K1=0,bA=js.length;K10;){for(hp=(Zn(TP.b>0),u(TP.a.Xb(TP.c=--TP.b),11)),EP=0,d=new S(hp.e);d.a0&&(hp.j==(ve(),Pn)?(t.a[hp.p]=mA,++mA):(t.a[hp.p]=mA+kP+Gft,++Gft))}mA+=Gft}for(V7=new _r,G=new O0,hr=e,Zl=0,kU=hr.length;Zlk.b&&(k.b=nk)):hp.i.c==sxe&&(nkk.c&&(k.c=nk));for($8(K,0,K.length,null),rk=Nt(Cr,Xr,25,K.length,15,1),r=Nt(Cr,Xr,25,mA+1,15,1),gt=0;gt0;)_e%2>0&&(s+=Kft[_e+1]),_e=(_e-1)/2|0,++Kft[_e];for(Qe=Nt(Ime,De,362,K.length*2,0,1),Rt=0;Rt'?":hn(t0e,t)?"'(?<' or '(? toIndex: ",Yxt=", toIndex: ",Kxt="Index: ",Xxt=", Size: ",zE="org.eclipse.elk.alg.common",Oi={62:1},Ife="org.eclipse.elk.alg.common.compaction",Ofe="Scanline/EventHandler",a0="org.eclipse.elk.alg.common.compaction.oned",Pfe="CNode belongs to another CGroup.",Ffe="ISpacingsHandler/1",Sot="The ",Aot=" instance has been finished already.",Nfe="The direction ",Bfe=" is not supported by the CGraph instance.",Rfe="OneDimensionalCompactor",jfe="OneDimensionalCompactor/lambda$0$Type",$fe="Quadruplet",zfe="ScanlineConstraintCalculator",qfe="ScanlineConstraintCalculator/ConstraintsScanlineHandler",Hfe="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",Vfe="ScanlineConstraintCalculator/Timestamp",Gfe="ScanlineConstraintCalculator/lambda$0$Type",xd={169:1,45:1},Lot="org.eclipse.elk.alg.common.compaction.options",Qo="org.eclipse.elk.core.data",Qxt="org.eclipse.elk.polyomino.traversalStrategy",Zxt="org.eclipse.elk.polyomino.lowLevelSort",Jxt="org.eclipse.elk.polyomino.highLevelSort",t6t="org.eclipse.elk.polyomino.fill",Oh={130:1},Mot="polyomino",F_="org.eclipse.elk.alg.common.networksimplex",o0={177:1,3:1,4:1},Ufe="org.eclipse.elk.alg.common.nodespacing",_2="org.eclipse.elk.alg.common.nodespacing.cellsystem",qE="CENTER",Wfe={212:1,326:1},e6t={3:1,4:1,5:1,595:1},y6="LEFT",x6="RIGHT",n6t="Vertical alignment cannot be null",r6t="BOTTOM",Yq="org.eclipse.elk.alg.common.nodespacing.internal",N_="UNDEFINED",B1=.01,zI="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",Yfe="LabelPlacer/lambda$0$Type",Kfe="LabelPlacer/lambda$1$Type",Xfe="portRatioOrPosition",HE="org.eclipse.elk.alg.common.overlaps",Dot="DOWN",kd="org.eclipse.elk.alg.common.polyomino",Kq="NORTH",Iot="EAST",Oot="SOUTH",Pot="WEST",Xq="org.eclipse.elk.alg.common.polyomino.structures",i6t="Direction",Fot="Grid is only of size ",Not=". Requested point (",Bot=") is out of bounds.",Qq=" Given center based coordinates were (",qI="org.eclipse.elk.graph.properties",Qfe="IPropertyHolder",s6t={3:1,94:1,134:1},k6="org.eclipse.elk.alg.common.spore",Zfe="org.eclipse.elk.alg.common.utils",S2={209:1},L4="org.eclipse.elk.core",Jfe="Connected Components Compaction",t1e="org.eclipse.elk.alg.disco",Zq="org.eclipse.elk.alg.disco.graph",Rot="org.eclipse.elk.alg.disco.options",a6t="CompactionStrategy",o6t="org.eclipse.elk.disco.componentCompaction.strategy",c6t="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",u6t="org.eclipse.elk.disco.debug.discoGraph",l6t="org.eclipse.elk.disco.debug.discoPolys",e1e="componentCompaction",A2="org.eclipse.elk.disco",jot="org.eclipse.elk.spacing.componentComponent",$ot="org.eclipse.elk.edge.thickness",E6="org.eclipse.elk.aspectRatio",xv="org.eclipse.elk.padding",M4="org.eclipse.elk.alg.disco.transform",zot=1.5707963267948966,VE=17976931348623157e292,Ty={3:1,4:1,5:1,192:1},h6t={3:1,6:1,4:1,5:1,106:1,120:1},f6t="org.eclipse.elk.alg.force",d6t="ComponentsProcessor",n1e="ComponentsProcessor/1",HI="org.eclipse.elk.alg.force.graph",r1e="Component Layout",g6t="org.eclipse.elk.alg.force.model",Jq="org.eclipse.elk.force.model",p6t="org.eclipse.elk.force.iterations",b6t="org.eclipse.elk.force.repulsivePower",qot="org.eclipse.elk.force.temperature",Ed=.001,Hot="org.eclipse.elk.force.repulsion",B_="org.eclipse.elk.alg.force.options",GE=1.600000023841858,Vl="org.eclipse.elk.force",VI="org.eclipse.elk.priority",Cy="org.eclipse.elk.spacing.nodeNode",Vot="org.eclipse.elk.spacing.edgeLabel",tH="org.eclipse.elk.randomSeed",R_="org.eclipse.elk.separateConnectedComponents",GI="org.eclipse.elk.interactive",Got="org.eclipse.elk.portConstraints",eH="org.eclipse.elk.edgeLabels.inline",j_="org.eclipse.elk.omitNodeMicroLayout",T6="org.eclipse.elk.nodeSize.options",D4="org.eclipse.elk.nodeSize.constraints",UE="org.eclipse.elk.nodeLabels.placement",WE="org.eclipse.elk.portLabels.placement",w6t="origin",i1e="random",s1e="boundingBox.upLeft",a1e="boundingBox.lowRight",v6t="org.eclipse.elk.stress.fixed",m6t="org.eclipse.elk.stress.desiredEdgeLength",y6t="org.eclipse.elk.stress.dimension",x6t="org.eclipse.elk.stress.epsilon",k6t="org.eclipse.elk.stress.iterationLimit",ob="org.eclipse.elk.stress",o1e="ELK Stress",C6="org.eclipse.elk.nodeSize.minimum",nH="org.eclipse.elk.alg.force.stress",c1e="Layered layout",_6="org.eclipse.elk.alg.layered",UI="org.eclipse.elk.alg.layered.compaction.components",$_="org.eclipse.elk.alg.layered.compaction.oned",rH="org.eclipse.elk.alg.layered.compaction.oned.algs",L2="org.eclipse.elk.alg.layered.compaction.recthull",Td="org.eclipse.elk.alg.layered.components",J0="NONE",xc={3:1,6:1,4:1,9:1,5:1,122:1},u1e={3:1,6:1,4:1,5:1,141:1,106:1,120:1},iH="org.eclipse.elk.alg.layered.compound",os={51:1},tu="org.eclipse.elk.alg.layered.graph",Uot=" -> ",l1e="Not supported by LGraph",E6t="Port side is undefined",Wot={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},Yg={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},h1e={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},f1e=`([{"' \r -`,d1e=`)]}"' \r -`,g1e="The given string contains parts that cannot be parsed as numbers.",WI="org.eclipse.elk.core.math",p1e={3:1,4:1,142:1,207:1,414:1},b1e={3:1,4:1,116:1,207:1,414:1},Gn="org.eclipse.elk.layered",Kg="org.eclipse.elk.alg.layered.graph.transform",w1e="ElkGraphImporter",v1e="ElkGraphImporter/lambda$0$Type",m1e="ElkGraphImporter/lambda$1$Type",y1e="ElkGraphImporter/lambda$2$Type",x1e="ElkGraphImporter/lambda$4$Type",k1e="Node margin calculation",$n="org.eclipse.elk.alg.layered.intermediate",E1e="ONE_SIDED_GREEDY_SWITCH",T1e="TWO_SIDED_GREEDY_SWITCH",Yot="No implementation is available for the layout processor ",T6t="IntermediateProcessorStrategy",Kot="Node '",C1e="FIRST_SEPARATE",_1e="LAST_SEPARATE",S1e="Odd port side processing",_s="org.eclipse.elk.alg.layered.intermediate.compaction",z_="org.eclipse.elk.alg.layered.intermediate.greedyswitch",c0="org.eclipse.elk.alg.layered.p3order.counting",YI={225:1},S6="org.eclipse.elk.alg.layered.intermediate.loops",Gl="org.eclipse.elk.alg.layered.intermediate.loops.ordering",cb="org.eclipse.elk.alg.layered.intermediate.loops.routing",q_="org.eclipse.elk.alg.layered.intermediate.preserveorder",Cd="org.eclipse.elk.alg.layered.intermediate.wrapping",kc="org.eclipse.elk.alg.layered.options",Xot="INTERACTIVE",A1e="DEPTH_FIRST",L1e="EDGE_LENGTH",M1e="SELF_LOOPS",D1e="firstTryWithInitialOrder",C6t="org.eclipse.elk.layered.directionCongruency",_6t="org.eclipse.elk.layered.feedbackEdges",sH="org.eclipse.elk.layered.interactiveReferencePoint",S6t="org.eclipse.elk.layered.mergeEdges",A6t="org.eclipse.elk.layered.mergeHierarchyEdges",L6t="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",M6t="org.eclipse.elk.layered.portSortingStrategy",D6t="org.eclipse.elk.layered.thoroughness",I6t="org.eclipse.elk.layered.unnecessaryBendpoints",O6t="org.eclipse.elk.layered.generatePositionAndLayerIds",Qot="org.eclipse.elk.layered.cycleBreaking.strategy",KI="org.eclipse.elk.layered.layering.strategy",P6t="org.eclipse.elk.layered.layering.layerConstraint",F6t="org.eclipse.elk.layered.layering.layerChoiceConstraint",N6t="org.eclipse.elk.layered.layering.layerId",Zot="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",Jot="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",tct="org.eclipse.elk.layered.layering.nodePromotion.strategy",ect="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",nct="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",H_="org.eclipse.elk.layered.crossingMinimization.strategy",B6t="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",rct="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",ict="org.eclipse.elk.layered.crossingMinimization.semiInteractive",R6t="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",j6t="org.eclipse.elk.layered.crossingMinimization.positionId",$6t="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",sct="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",aH="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",I4="org.eclipse.elk.layered.nodePlacement.strategy",oH="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",act="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",oct="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",cct="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",uct="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",lct="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",z6t="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",q6t="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",cH="org.eclipse.elk.layered.edgeRouting.splines.mode",uH="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",hct="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",H6t="org.eclipse.elk.layered.spacing.baseValue",V6t="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",G6t="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",U6t="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",W6t="org.eclipse.elk.layered.priority.direction",Y6t="org.eclipse.elk.layered.priority.shortness",K6t="org.eclipse.elk.layered.priority.straightness",fct="org.eclipse.elk.layered.compaction.connectedComponents",X6t="org.eclipse.elk.layered.compaction.postCompaction.strategy",Q6t="org.eclipse.elk.layered.compaction.postCompaction.constraints",lH="org.eclipse.elk.layered.highDegreeNodes.treatment",dct="org.eclipse.elk.layered.highDegreeNodes.threshold",gct="org.eclipse.elk.layered.highDegreeNodes.treeHeight",tg="org.eclipse.elk.layered.wrapping.strategy",hH="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",fH="org.eclipse.elk.layered.wrapping.correctionFactor",V_="org.eclipse.elk.layered.wrapping.cutting.strategy",pct="org.eclipse.elk.layered.wrapping.cutting.cuts",bct="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",dH="org.eclipse.elk.layered.wrapping.validify.strategy",gH="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",pH="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",bH="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",wct="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",Z6t="org.eclipse.elk.layered.edgeLabels.sideSelection",J6t="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",wH="org.eclipse.elk.layered.considerModelOrder.strategy",tkt="org.eclipse.elk.layered.considerModelOrder.noModelOrder",vct="org.eclipse.elk.layered.considerModelOrder.components",ekt="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",mct="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",yct="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",xct="layering",I1e="layering.minWidth",O1e="layering.nodePromotion",XI="crossingMinimization",vH="org.eclipse.elk.hierarchyHandling",P1e="crossingMinimization.greedySwitch",F1e="nodePlacement",N1e="nodePlacement.bk",B1e="edgeRouting",QI="org.eclipse.elk.edgeRouting",R1="spacing",nkt="priority",rkt="compaction",R1e="compaction.postCompaction",j1e="Specifies whether and how post-process compaction is applied.",ikt="highDegreeNodes",skt="wrapping",$1e="wrapping.cutting",z1e="wrapping.validify",akt="wrapping.multiEdge",kct="edgeLabels",ZI="considerModelOrder",okt="org.eclipse.elk.spacing.commentComment",ckt="org.eclipse.elk.spacing.commentNode",ukt="org.eclipse.elk.spacing.edgeEdge",lkt="org.eclipse.elk.spacing.edgeNode",hkt="org.eclipse.elk.spacing.labelLabel",fkt="org.eclipse.elk.spacing.labelPortHorizontal",dkt="org.eclipse.elk.spacing.labelPortVertical",gkt="org.eclipse.elk.spacing.labelNode",pkt="org.eclipse.elk.spacing.nodeSelfLoop",bkt="org.eclipse.elk.spacing.portPort",wkt="org.eclipse.elk.spacing.individual",vkt="org.eclipse.elk.port.borderOffset",mkt="org.eclipse.elk.noLayout",ykt="org.eclipse.elk.port.side",JI="org.eclipse.elk.debugMode",xkt="org.eclipse.elk.alignment",kkt="org.eclipse.elk.insideSelfLoops.activate",Ekt="org.eclipse.elk.insideSelfLoops.yo",Ect="org.eclipse.elk.nodeSize.fixedGraphSize",Tkt="org.eclipse.elk.direction",Ckt="org.eclipse.elk.nodeLabels.padding",_kt="org.eclipse.elk.portLabels.nextToPortIfPossible",Skt="org.eclipse.elk.portLabels.treatAsGroup",Akt="org.eclipse.elk.portAlignment.default",Lkt="org.eclipse.elk.portAlignment.north",Mkt="org.eclipse.elk.portAlignment.south",Dkt="org.eclipse.elk.portAlignment.west",Ikt="org.eclipse.elk.portAlignment.east",mH="org.eclipse.elk.contentAlignment",Okt="org.eclipse.elk.junctionPoints",Pkt="org.eclipse.elk.edgeLabels.placement",Fkt="org.eclipse.elk.port.index",Nkt="org.eclipse.elk.commentBox",Bkt="org.eclipse.elk.hypernode",Rkt="org.eclipse.elk.port.anchor",Tct="org.eclipse.elk.partitioning.activate",Cct="org.eclipse.elk.partitioning.partition",yH="org.eclipse.elk.position",jkt="org.eclipse.elk.margins",$kt="org.eclipse.elk.spacing.portsSurrounding",_ct="org.eclipse.elk.interactiveLayout",Ec="org.eclipse.elk.core.util",zkt={3:1,4:1,5:1,593:1},q1e="NETWORK_SIMPLEX",zc={123:1,51:1},xH="org.eclipse.elk.alg.layered.p1cycles",_y="org.eclipse.elk.alg.layered.p2layers",qkt={402:1,225:1},H1e={832:1,3:1,4:1},qu="org.eclipse.elk.alg.layered.p3order",uo="org.eclipse.elk.alg.layered.p4nodes",V1e={3:1,4:1,5:1,840:1},_d=1e-5,ub="org.eclipse.elk.alg.layered.p4nodes.bk",Sct="org.eclipse.elk.alg.layered.p5edges",t1="org.eclipse.elk.alg.layered.p5edges.orthogonal",Act="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",Lct=1e-6,Sy="org.eclipse.elk.alg.layered.p5edges.splines",Mct=.09999999999999998,kH=1e-8,G1e=4.71238898038469,U1e=3.141592653589793,G_="org.eclipse.elk.alg.mrtree",U_="org.eclipse.elk.alg.mrtree.graph",A6="org.eclipse.elk.alg.mrtree.intermediate",W1e="Set neighbors in level",Y1e="DESCENDANTS",Hkt="org.eclipse.elk.mrtree.weighting",Vkt="org.eclipse.elk.mrtree.searchOrder",EH="org.eclipse.elk.alg.mrtree.options",Xg="org.eclipse.elk.mrtree",K1e="org.eclipse.elk.tree",Gkt="org.eclipse.elk.alg.radial",O4=6.283185307179586,Ukt=5e-324,X1e="org.eclipse.elk.alg.radial.intermediate",Dct="org.eclipse.elk.alg.radial.intermediate.compaction",Q1e={3:1,4:1,5:1,106:1},Wkt="org.eclipse.elk.alg.radial.intermediate.optimization",Ict="No implementation is available for the layout option ",W_="org.eclipse.elk.alg.radial.options",Ykt="org.eclipse.elk.radial.orderId",Kkt="org.eclipse.elk.radial.radius",Oct="org.eclipse.elk.radial.compactor",Pct="org.eclipse.elk.radial.compactionStepSize",Xkt="org.eclipse.elk.radial.sorter",Qkt="org.eclipse.elk.radial.wedgeCriteria",Zkt="org.eclipse.elk.radial.optimizationCriteria",Sd="org.eclipse.elk.radial",Z1e="org.eclipse.elk.alg.radial.p1position.wedge",Jkt="org.eclipse.elk.alg.radial.sorting",J1e=5.497787143782138,tde=3.9269908169872414,ede=2.356194490192345,nde="org.eclipse.elk.alg.rectpacking",TH="org.eclipse.elk.alg.rectpacking.firstiteration",Fct="org.eclipse.elk.alg.rectpacking.options",t8t="org.eclipse.elk.rectpacking.optimizationGoal",e8t="org.eclipse.elk.rectpacking.lastPlaceShift",n8t="org.eclipse.elk.rectpacking.currentPosition",r8t="org.eclipse.elk.rectpacking.desiredPosition",i8t="org.eclipse.elk.rectpacking.onlyFirstIteration",s8t="org.eclipse.elk.rectpacking.rowCompaction",Nct="org.eclipse.elk.rectpacking.expandToAspectRatio",a8t="org.eclipse.elk.rectpacking.targetWidth",CH="org.eclipse.elk.expandNodes",Ph="org.eclipse.elk.rectpacking",tO="org.eclipse.elk.alg.rectpacking.util",_H="No implementation available for ",Ay="org.eclipse.elk.alg.spore",Ly="org.eclipse.elk.alg.spore.options",kv="org.eclipse.elk.sporeCompaction",Bct="org.eclipse.elk.underlyingLayoutAlgorithm",o8t="org.eclipse.elk.processingOrder.treeConstruction",c8t="org.eclipse.elk.processingOrder.spanningTreeCostFunction",Rct="org.eclipse.elk.processingOrder.preferredRoot",jct="org.eclipse.elk.processingOrder.rootSelection",$ct="org.eclipse.elk.structure.structureExtractionStrategy",u8t="org.eclipse.elk.compaction.compactionStrategy",l8t="org.eclipse.elk.compaction.orthogonal",h8t="org.eclipse.elk.overlapRemoval.maxIterations",f8t="org.eclipse.elk.overlapRemoval.runScanline",zct="processingOrder",rde="overlapRemoval",YE="org.eclipse.elk.sporeOverlap",ide="org.eclipse.elk.alg.spore.p1structure",qct="org.eclipse.elk.alg.spore.p2processingorder",Hct="org.eclipse.elk.alg.spore.p3execution",sde="Invalid index: ",KE="org.eclipse.elk.core.alg",P4={331:1},My={288:1},ade="Make sure its type is registered with the ",d8t=" utility class.",XE="true",Vct="false",ode="Couldn't clone property '",Ev=.05,Fh="org.eclipse.elk.core.options",cde=1.2999999523162842,Tv="org.eclipse.elk.box",g8t="org.eclipse.elk.box.packingMode",ude="org.eclipse.elk.algorithm",lde="org.eclipse.elk.resolvedAlgorithm",p8t="org.eclipse.elk.bendPoints",Uxn="org.eclipse.elk.labelManager",hde="org.eclipse.elk.scaleFactor",fde="org.eclipse.elk.animate",dde="org.eclipse.elk.animTimeFactor",gde="org.eclipse.elk.layoutAncestors",pde="org.eclipse.elk.maxAnimTime",bde="org.eclipse.elk.minAnimTime",wde="org.eclipse.elk.progressBar",vde="org.eclipse.elk.validateGraph",mde="org.eclipse.elk.validateOptions",yde="org.eclipse.elk.zoomToFit",Wxn="org.eclipse.elk.font.name",xde="org.eclipse.elk.font.size",kde="org.eclipse.elk.edge.type",Ede="partitioning",Tde="nodeLabels",SH="portAlignment",Gct="nodeSize",Uct="port",b8t="portLabels",Cde="insideSelfLoops",Y_="org.eclipse.elk.fixed",AH="org.eclipse.elk.random",_de="port must have a parent node to calculate the port side",Sde="The edge needs to have exactly one edge section. Found: ",K_="org.eclipse.elk.core.util.adapters",ph="org.eclipse.emf.ecore",F4="org.eclipse.elk.graph",Ade="EMapPropertyHolder",Lde="ElkBendPoint",Mde="ElkGraphElement",Dde="ElkConnectableShape",w8t="ElkEdge",Ide="ElkEdgeSection",Ode="EModelElement",Pde="ENamedElement",v8t="ElkLabel",m8t="ElkNode",y8t="ElkPort",Fde={92:1,90:1},L6="org.eclipse.emf.common.notify.impl",lb="The feature '",X_="' is not a valid changeable feature",Nde="Expecting null",Wct="' is not a valid feature",Bde="The feature ID",Rde=" is not a valid feature ID",dc=32768,jde={105:1,92:1,90:1,56:1,49:1,97:1},Mn="org.eclipse.emf.ecore.impl",M2="org.eclipse.elk.graph.impl",Q_="Recursive containment not allowed for ",QE="The datatype '",Cv="' is not a valid classifier",Yct="The value '",N4={190:1,3:1,4:1},Kct="The class '",ZE="http://www.eclipse.org/elk/ElkGraph",xf=1024,x8t="property",Z_="value",Xct="source",$de="properties",zde="identifier",Qct="height",Zct="width",Jct="parent",tut="text",eut="children",qde="hierarchical",k8t="sources",nut="targets",E8t="sections",LH="bendPoints",T8t="outgoingShape",C8t="incomingShape",_8t="outgoingSections",S8t="incomingSections",Ra="org.eclipse.emf.common.util",A8t="Severe implementation error in the Json to ElkGraph importer.",Ad="id",ma="org.eclipse.elk.graph.json",L8t="Unhandled parameter types: ",Hde="startPoint",Vde="An edge must have at least one source and one target (edge id: '",JE="').",Gde="Referenced edge section does not exist: ",Ude=" (edge id: '",M8t="target",Wde="sourcePoint",Yde="targetPoint",MH="group",ci="name",Kde="connectableShape cannot be null",Xde="edge cannot be null",rut="Passed edge is not 'simple'.",DH="org.eclipse.elk.graph.util",eO="The 'no duplicates' constraint is violated",iut="targetIndex=",D2=", size=",sut="sourceIndex=",Ld={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},aut={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},IH="logging",Qde="measureExecutionTime",Zde="parser.parse.1",Jde="parser.parse.2",OH="parser.next.1",out="parser.next.2",t0e="parser.next.3",e0e="parser.next.4",I2="parser.factor.1",D8t="parser.factor.2",n0e="parser.factor.3",r0e="parser.factor.4",i0e="parser.factor.5",s0e="parser.factor.6",a0e="parser.atom.1",o0e="parser.atom.2",c0e="parser.atom.3",I8t="parser.atom.4",cut="parser.atom.5",O8t="parser.cc.1",PH="parser.cc.2",u0e="parser.cc.3",l0e="parser.cc.5",P8t="parser.cc.6",F8t="parser.cc.7",uut="parser.cc.8",h0e="parser.ope.1",f0e="parser.ope.2",d0e="parser.ope.3",Qg="parser.descape.1",g0e="parser.descape.2",p0e="parser.descape.3",b0e="parser.descape.4",w0e="parser.descape.5",bh="parser.process.1",v0e="parser.quantifier.1",m0e="parser.quantifier.2",y0e="parser.quantifier.3",x0e="parser.quantifier.4",N8t="parser.quantifier.5",k0e="org.eclipse.emf.common.notify",B8t={415:1,672:1},E0e={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},nO={366:1,143:1},J_="index=",lut={3:1,4:1,5:1,126:1},T0e={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},R8t={3:1,6:1,4:1,5:1,192:1},C0e={3:1,4:1,5:1,165:1,367:1},_0e=";/?:@&=+$,",S0e="invalid authority: ",A0e="EAnnotation",L0e="ETypedElement",M0e="EStructuralFeature",D0e="EAttribute",I0e="EClassifier",O0e="EEnumLiteral",P0e="EGenericType",F0e="EOperation",N0e="EParameter",B0e="EReference",R0e="ETypeParameter",$i="org.eclipse.emf.ecore.util",hut={76:1},j8t={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},j0e="org.eclipse.emf.ecore.util.FeatureMap$Entry",Hu=8192,Dy=2048,tS="byte",FH="char",eS="double",nS="float",rS="int",iS="long",sS="short",$0e="java.lang.Object",B4={3:1,4:1,5:1,247:1},$8t={3:1,4:1,5:1,673:1},z0e={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},zo={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},rO="mixed",Yr="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",Nh="kind",q0e={3:1,4:1,5:1,674:1},z8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},NH={20:1,28:1,52:1,14:1,15:1,58:1,69:1},BH={47:1,125:1,279:1},RH={72:1,332:1},jH="The value of type '",$H="' must be of type '",R4=1316,Bh="http://www.eclipse.org/emf/2002/Ecore",zH=-32768,_v="constraints",Aa="baseType",H0e="getEStructuralFeature",V0e="getFeatureID",aS="feature",G0e="getOperationID",q8t="operation",U0e="defaultValue",W0e="eTypeParameters",Y0e="isInstance",K0e="getEEnumLiteral",X0e="eContainingClass",si={55:1},Q0e={3:1,4:1,5:1,119:1},Z0e="org.eclipse.emf.ecore.resource",J0e={92:1,90:1,591:1,1935:1},fut="org.eclipse.emf.ecore.resource.impl",H8t="unspecified",iO="simple",qH="attribute",tge="attributeWildcard",HH="element",dut="elementWildcard",e1="collapse",gut="itemType",VH="namespace",sO="##targetNamespace",Rh="whiteSpace",V8t="wildcards",O2="http://www.eclipse.org/emf/2003/XMLType",put="##any",t7="uninitialized",aO="The multiplicity constraint is violated",GH="org.eclipse.emf.ecore.xml.type",ege="ProcessingInstruction",nge="SimpleAnyType",rge="XMLTypeDocumentRoot",xs="org.eclipse.emf.ecore.xml.type.impl",oO="INF",ige="processing",sge="ENTITIES_._base",G8t="minLength",U8t="ENTITY",UH="NCName",age="IDREFS_._base",W8t="integer",but="token",wut="pattern",oge="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",Y8t="\\i\\c*",cge="[\\i-[:]][\\c-[:]]*",uge="nonPositiveInteger",cO="maxInclusive",K8t="NMTOKEN",lge="NMTOKENS_._base",X8t="nonNegativeInteger",uO="minInclusive",hge="normalizedString",fge="unsignedByte",dge="unsignedInt",gge="18446744073709551615",pge="unsignedShort",bge="processingInstruction",Zg="org.eclipse.emf.ecore.xml.type.internal",e7=1114111,wge="Internal Error: shorthands: \\u",oS="xml:isDigit",vut="xml:isWord",mut="xml:isSpace",yut="xml:isNameChar",xut="xml:isInitialNameChar",vge="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",mge="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",yge="Private Use",kut="ASSIGNED",Eut="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",Q8t="UNASSIGNED",n7={3:1,117:1},xge="org.eclipse.emf.ecore.xml.type.util",WH={3:1,4:1,5:1,368:1},Z8t="org.eclipse.xtext.xbase.lib",kge="Cannot add elements to a Range",Ege="Cannot set elements in a Range",Tge="Cannot remove elements from a Range",YH="locale",KH="default",XH="user.agent",l,QH,Tut;b.goog=b.goog||{},b.goog.global=b.goog.global||b,mgn(),D(1,null,{},_),l.Fb=function(e){return mUt(this,e)},l.Gb=function(){return this.gm},l.Hb=function(){return Pw(this)},l.Ib=function(){var e;return Ip(ol(this))+"@"+(e=Hi(this)>>>0,e.toString(16))},l.equals=function(t){return this.Fb(t)},l.hashCode=function(){return this.Hb()},l.toString=function(){return this.Ib()};var Cge,_ge,Sge;D(290,1,{290:1,2026:1},Lyt),l.le=function(e){var n;return n=new Lyt,n.i=4,e>1?n.c=NQt(this,e-1):n.c=this,n},l.me=function(){return P0(this),this.b},l.ne=function(){return Ip(this)},l.oe=function(){return P0(this),this.k},l.pe=function(){return(this.i&4)!=0},l.qe=function(){return(this.i&1)!=0},l.Ib=function(){return Vmt(this)},l.i=0;var Qn=F(Xo,"Object",1),J8t=F(Xo,"Class",290);D(1998,1,DI),F(II,"Optional",1998),D(1170,1998,DI,A),l.Fb=function(e){return e===this},l.Hb=function(){return 2040732332},l.Ib=function(){return"Optional.absent()"},l.Jb=function(e){return Lr(e),PC(),Cut};var Cut;F(II,"Absent",1170),D(628,1,{},vet),F(II,"Joiner",628);var Yxn=Ki(II,"Predicate");D(582,1,{169:1,582:1,3:1,45:1},mC),l.Mb=function(e){return kre(this,e)},l.Lb=function(e){return kre(this,e)},l.Fb=function(e){var n;return _t(e,582)?(n=u(e,582),k5t(this.a,n.a)):!1},l.Hb=function(){return Pyt(this.a)+306654252},l.Ib=function(){return spn(this.a)},F(II,"Predicates/AndPredicate",582),D(408,1998,{408:1,3:1},Wk),l.Fb=function(e){var n;return _t(e,408)?(n=u(e,408),yi(this.a,n.a)):!1},l.Hb=function(){return 1502476572+Hi(this.a)},l.Ib=function(){return cfe+this.a+")"},l.Jb=function(e){return new Wk(g$(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},F(II,"Present",408),D(198,1,FE),l.Nb=function(e){ba(this,e)},l.Qb=function(){uHt()},F(Ke,"UnmodifiableIterator",198),D(1978,198,NE),l.Qb=function(){uHt()},l.Rb=function(e){throw it(new Or)},l.Wb=function(e){throw it(new Or)},F(Ke,"UnmodifiableListIterator",1978),D(386,1978,NE),l.Ob=function(){return this.c0},l.Pb=function(){if(this.c>=this.d)throw it(new lc);return this.Xb(this.c++)},l.Tb=function(){return this.c},l.Ub=function(){if(this.c<=0)throw it(new lc);return this.Xb(--this.c)},l.Vb=function(){return this.c-1},l.c=0,l.d=0,F(Ke,"AbstractIndexedListIterator",386),D(699,198,FE),l.Ob=function(){return bit(this)},l.Pb=function(){return Rmt(this)},l.e=1,F(Ke,"AbstractIterator",699),D(1986,1,{224:1}),l.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},l.Fb=function(e){return Pit(this,e)},l.Hb=function(){return Hi(this.Zb())},l.dc=function(){return this.gc()==0},l.ec=function(){return qx(this)},l.Ib=function(){return $o(this.Zb())},F(Ke,"AbstractMultimap",1986),D(726,1986,T2),l.$b=function(){cz(this)},l._b=function(e){return AHt(this,e)},l.ac=function(){return new l8(this,this.c)},l.ic=function(e){return this.hc()},l.bc=function(){return new K3(this,this.c)},l.jc=function(){return this.mc(this.hc())},l.kc=function(){return new Uqt(this)},l.lc=function(){return zst(this.c.vc().Nc(),new B,64,this.d)},l.cc=function(e){return Ai(this,e)},l.fc=function(e){return GD(this,e)},l.gc=function(){return this.d},l.mc=function(e){return wn(),new T(e)},l.nc=function(){return new Gqt(this)},l.oc=function(){return zst(this.c.Cc().Nc(),new I,64,this.d)},l.pc=function(e,n){return new q$(this,e,n,null)},l.d=0,F(Ke,"AbstractMapBasedMultimap",726),D(1631,726,T2),l.hc=function(){return new Xc(this.a)},l.jc=function(){return wn(),wn(),io},l.cc=function(e){return u(Ai(this,e),15)},l.fc=function(e){return u(GD(this,e),15)},l.Zb=function(){return Wx(this)},l.Fb=function(e){return Pit(this,e)},l.qc=function(e){return u(Ai(this,e),15)},l.rc=function(e){return u(GD(this,e),15)},l.mc=function(e){return iD(u(e,15))},l.pc=function(e,n){return zZt(this,e,u(n,15),null)},F(Ke,"AbstractListMultimap",1631),D(732,1,sa),l.Nb=function(e){ba(this,e)},l.Ob=function(){return this.c.Ob()||this.e.Ob()},l.Pb=function(){var e;return this.e.Ob()||(e=u(this.c.Pb(),42),this.b=e.cd(),this.a=u(e.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},l.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},F(Ke,"AbstractMapBasedMultimap/Itr",732),D(1099,732,sa,Gqt),l.sc=function(e,n){return n},F(Ke,"AbstractMapBasedMultimap/1",1099),D(1100,1,{},I),l.Kb=function(e){return u(e,14).Nc()},F(Ke,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),D(1101,732,sa,Uqt),l.sc=function(e,n){return new Lw(e,n)},F(Ke,"AbstractMapBasedMultimap/2",1101);var tEt=Ki(pr,"Map");D(1967,1,mv),l.wc=function(e){K9(this,e)},l.yc=function(e,n,r){return Qit(this,e,n,r)},l.$b=function(){this.vc().$b()},l.tc=function(e){return Tst(this,e)},l._b=function(e){return!!C4t(this,e,!1)},l.uc=function(e){var n,r,s;for(r=this.vc().Kc();r.Ob();)if(n=u(r.Pb(),42),s=n.dd(),Vt(e)===Vt(s)||e!=null&&yi(e,s))return!0;return!1},l.Fb=function(e){var n,r,s;if(e===this)return!0;if(!_t(e,83)||(s=u(e,83),this.gc()!=s.gc()))return!1;for(r=s.vc().Kc();r.Ob();)if(n=u(r.Pb(),42),!this.tc(n))return!1;return!0},l.xc=function(e){return ec(C4t(this,e,!1))},l.Hb=function(){return Tyt(this.vc())},l.dc=function(){return this.gc()==0},l.ec=function(){return new Sm(this)},l.zc=function(e,n){throw it(new Sg("Put not supported on this map"))},l.Ac=function(e){Y9(this,e)},l.Bc=function(e){return ec(C4t(this,e,!0))},l.gc=function(){return this.vc().gc()},l.Ib=function(){return Tae(this)},l.Cc=function(){return new v1(this)},F(pr,"AbstractMap",1967),D(1987,1967,mv),l.bc=function(){return new FR(this)},l.vc=function(){return $Kt(this)},l.ec=function(){var e;return e=this.g,e||(this.g=this.bc())},l.Cc=function(){var e;return e=this.i,e||(this.i=new yVt(this))},F(Ke,"Maps/ViewCachingAbstractMap",1987),D(389,1987,mv,l8),l.xc=function(e){return zon(this,e)},l.Bc=function(e){return rln(this,e)},l.$b=function(){this.d==this.e.c?this.e.$b():Vj(new Uwt(this))},l._b=function(e){return eie(this.d,e)},l.Ec=function(){return new Yk(this)},l.Dc=function(){return this.Ec()},l.Fb=function(e){return this===e||yi(this.d,e)},l.Hb=function(){return Hi(this.d)},l.ec=function(){return this.e.ec()},l.gc=function(){return this.d.gc()},l.Ib=function(){return $o(this.d)},F(Ke,"AbstractMapBasedMultimap/AsMap",389);var j1=Ki(Xo,"Iterable");D(28,1,xy),l.Jc=function(e){va(this,e)},l.Lc=function(){return this.Oc()},l.Nc=function(){return new _n(this,0)},l.Oc=function(){return new Tn(null,this.Nc())},l.Fc=function(e){throw it(new Sg("Add not supported on this collection"))},l.Gc=function(e){return Ua(this,e)},l.$b=function(){Dvt(this)},l.Hc=function(e){return ay(this,e,!1)},l.Ic=function(e){return ND(this,e)},l.dc=function(){return this.gc()==0},l.Mc=function(e){return ay(this,e,!0)},l.Pc=function(){return svt(this)},l.Qc=function(e){return eI(this,e)},l.Ib=function(){return eb(this)},F(pr,"AbstractCollection",28);var jh=Ki(pr,"Set");D(N1,28,zu),l.Nc=function(){return new _n(this,1)},l.Fb=function(e){return Yie(this,e)},l.Hb=function(){return Tyt(this)},F(pr,"AbstractSet",N1),D(1970,N1,zu),F(Ke,"Sets/ImprovedAbstractSet",1970),D(1971,1970,zu),l.$b=function(){this.Rc().$b()},l.Hc=function(e){return Lie(this,e)},l.dc=function(){return this.Rc().dc()},l.Mc=function(e){var n;return this.Hc(e)?(n=u(e,42),this.Rc().ec().Mc(n.cd())):!1},l.gc=function(){return this.Rc().gc()},F(Ke,"Maps/EntrySet",1971),D(1097,1971,zu,Yk),l.Hc=function(e){return Jyt(this.a.d.vc(),e)},l.Kc=function(){return new Uwt(this.a)},l.Rc=function(){return this.a},l.Mc=function(e){var n;return Jyt(this.a.d.vc(),e)?(n=u(e,42),San(this.a.e,n.cd()),!0):!1},l.Nc=function(){return XM(this.a.d.vc().Nc(),new nR(this.a))},F(Ke,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),D(1098,1,{},nR),l.Kb=function(e){return MJt(this.a,u(e,42))},F(Ke,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),D(730,1,sa,Uwt),l.Nb=function(e){ba(this,e)},l.Pb=function(){var e;return e=u(this.b.Pb(),42),this.a=u(e.dd(),14),MJt(this.c,e)},l.Ob=function(){return this.b.Ob()},l.Qb=function(){i4(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},F(Ke,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),D(532,1970,zu,FR),l.$b=function(){this.b.$b()},l.Hc=function(e){return this.b._b(e)},l.Jc=function(e){Lr(e),this.b.wc(new Ctt(e))},l.dc=function(){return this.b.dc()},l.Kc=function(){return new FC(this.b.vc().Kc())},l.Mc=function(e){return this.b._b(e)?(this.b.Bc(e),!0):!1},l.gc=function(){return this.b.gc()},F(Ke,"Maps/KeySet",532),D(318,532,zu,K3),l.$b=function(){var e;Vj((e=this.b.vc().Kc(),new vbt(this,e)))},l.Ic=function(e){return this.b.ec().Ic(e)},l.Fb=function(e){return this===e||yi(this.b.ec(),e)},l.Hb=function(){return Hi(this.b.ec())},l.Kc=function(){var e;return e=this.b.vc().Kc(),new vbt(this,e)},l.Mc=function(e){var n,r;return r=0,n=u(this.b.Bc(e),14),n&&(r=n.gc(),n.$b(),this.a.d-=r),r>0},l.Nc=function(){return this.b.ec().Nc()},F(Ke,"AbstractMapBasedMultimap/KeySet",318),D(731,1,sa,vbt),l.Nb=function(e){ba(this,e)},l.Ob=function(){return this.c.Ob()},l.Pb=function(){return this.a=u(this.c.Pb(),42),this.a.cd()},l.Qb=function(){var e;i4(!!this.a),e=u(this.a.dd(),14),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},F(Ke,"AbstractMapBasedMultimap/KeySet/1",731),D(491,389,{83:1,161:1},HM),l.bc=function(){return this.Sc()},l.ec=function(){return this.Tc()},l.Sc=function(){return new mM(this.c,this.Uc())},l.Tc=function(){var e;return e=this.b,e||(this.b=this.Sc())},l.Uc=function(){return u(this.d,161)},F(Ke,"AbstractMapBasedMultimap/SortedAsMap",491),D(542,491,ufe,Dj),l.bc=function(){return new u8(this.a,u(u(this.d,161),171))},l.Sc=function(){return new u8(this.a,u(u(this.d,161),171))},l.ec=function(){var e;return e=this.b,u(e||(this.b=new u8(this.a,u(u(this.d,161),171))),271)},l.Tc=function(){var e;return e=this.b,u(e||(this.b=new u8(this.a,u(u(this.d,161),171))),271)},l.Uc=function(){return u(u(this.d,161),171)},F(Ke,"AbstractMapBasedMultimap/NavigableAsMap",542),D(490,318,lfe,mM),l.Nc=function(){return this.b.ec().Nc()},F(Ke,"AbstractMapBasedMultimap/SortedKeySet",490),D(388,490,Bxt,u8),F(Ke,"AbstractMapBasedMultimap/NavigableKeySet",388),D(541,28,xy,q$),l.Fc=function(e){var n,r;return cl(this),r=this.d.dc(),n=this.d.Fc(e),n&&(++this.f.d,r&&WM(this)),n},l.Gc=function(e){var n,r,s;return e.dc()?!1:(s=(cl(this),this.d.gc()),n=this.d.Gc(e),n&&(r=this.d.gc(),this.f.d+=r-s,s==0&&WM(this)),n)},l.$b=function(){var e;e=(cl(this),this.d.gc()),e!=0&&(this.d.$b(),this.f.d-=e,Kj(this))},l.Hc=function(e){return cl(this),this.d.Hc(e)},l.Ic=function(e){return cl(this),this.d.Ic(e)},l.Fb=function(e){return e===this?!0:(cl(this),yi(this.d,e))},l.Hb=function(){return cl(this),Hi(this.d)},l.Kc=function(){return cl(this),new Iwt(this)},l.Mc=function(e){var n;return cl(this),n=this.d.Mc(e),n&&(--this.f.d,Kj(this)),n},l.gc=function(){return iUt(this)},l.Nc=function(){return cl(this),this.d.Nc()},l.Ib=function(){return cl(this),$o(this.d)},F(Ke,"AbstractMapBasedMultimap/WrappedCollection",541);var wh=Ki(pr,"List");D(728,541,{20:1,28:1,14:1,15:1},ovt),l.ad=function(e){r4(this,e)},l.Nc=function(){return cl(this),this.d.Nc()},l.Vc=function(e,n){var r;cl(this),r=this.d.dc(),u(this.d,15).Vc(e,n),++this.a.d,r&&WM(this)},l.Wc=function(e,n){var r,s,o;return n.dc()?!1:(o=(cl(this),this.d.gc()),r=u(this.d,15).Wc(e,n),r&&(s=this.d.gc(),this.a.d+=s-o,o==0&&WM(this)),r)},l.Xb=function(e){return cl(this),u(this.d,15).Xb(e)},l.Xc=function(e){return cl(this),u(this.d,15).Xc(e)},l.Yc=function(){return cl(this),new BUt(this)},l.Zc=function(e){return cl(this),new XXt(this,e)},l.$c=function(e){var n;return cl(this),n=u(this.d,15).$c(e),--this.a.d,Kj(this),n},l._c=function(e,n){return cl(this),u(this.d,15)._c(e,n)},l.bd=function(e,n){return cl(this),zZt(this.a,this.e,u(this.d,15).bd(e,n),this.b?this.b:this)},F(Ke,"AbstractMapBasedMultimap/WrappedList",728),D(1096,728,{20:1,28:1,14:1,15:1,54:1},SWt),F(Ke,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),D(620,1,sa,Iwt),l.Nb=function(e){ba(this,e)},l.Ob=function(){return D8(this),this.b.Ob()},l.Pb=function(){return D8(this),this.b.Pb()},l.Qb=function(){lWt(this)},F(Ke,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),D(729,620,n0,BUt,XXt),l.Qb=function(){lWt(this)},l.Rb=function(e){var n;n=iUt(this.a)==0,(D8(this),u(this.b,125)).Rb(e),++this.a.a.d,n&&WM(this.a)},l.Sb=function(){return(D8(this),u(this.b,125)).Sb()},l.Tb=function(){return(D8(this),u(this.b,125)).Tb()},l.Ub=function(){return(D8(this),u(this.b,125)).Ub()},l.Vb=function(){return(D8(this),u(this.b,125)).Vb()},l.Wb=function(e){(D8(this),u(this.b,125)).Wb(e)},F(Ke,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),D(727,541,lfe,J2t),l.Nc=function(){return cl(this),this.d.Nc()},F(Ke,"AbstractMapBasedMultimap/WrappedSortedSet",727),D(1095,727,Bxt,LUt),F(Ke,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),D(1094,541,zu,zWt),l.Nc=function(){return cl(this),this.d.Nc()},F(Ke,"AbstractMapBasedMultimap/WrappedSet",1094),D(1103,1,{},B),l.Kb=function(e){return Oan(u(e,42))},F(Ke,"AbstractMapBasedMultimap/lambda$1$Type",1103),D(1102,1,{},ftt),l.Kb=function(e){return new Lw(this.a,e)},F(Ke,"AbstractMapBasedMultimap/lambda$2$Type",1102);var P2=Ki(pr,"Map/Entry");D(345,1,zq),l.Fb=function(e){var n;return _t(e,42)?(n=u(e,42),pd(this.cd(),n.cd())&&pd(this.dd(),n.dd())):!1},l.Hb=function(){var e,n;return e=this.cd(),n=this.dd(),(e==null?0:Hi(e))^(n==null?0:Hi(n))},l.ed=function(e){throw it(new Or)},l.Ib=function(){return this.cd()+"="+this.dd()},F(Ke,hfe,345),D(1988,28,xy),l.$b=function(){this.fd().$b()},l.Hc=function(e){var n;return _t(e,42)?(n=u(e,42),dsn(this.fd(),n.cd(),n.dd())):!1},l.Mc=function(e){var n;return _t(e,42)?(n=u(e,42),xZt(this.fd(),n.cd(),n.dd())):!1},l.gc=function(){return this.fd().d},F(Ke,"Multimaps/Entries",1988),D(733,1988,xy,nM),l.Kc=function(){return this.a.kc()},l.fd=function(){return this.a},l.Nc=function(){return this.a.lc()},F(Ke,"AbstractMultimap/Entries",733),D(734,733,zu,Ypt),l.Nc=function(){return this.a.lc()},l.Fb=function(e){return H4t(this,e)},l.Hb=function(){return kne(this)},F(Ke,"AbstractMultimap/EntrySet",734),D(735,28,xy,I3),l.$b=function(){this.a.$b()},l.Hc=function(e){return Qun(this.a,e)},l.Kc=function(){return this.a.nc()},l.gc=function(){return this.a.d},l.Nc=function(){return this.a.oc()},F(Ke,"AbstractMultimap/Values",735),D(1989,28,{835:1,20:1,28:1,14:1}),l.Jc=function(e){Lr(e),Q3(this).Jc(new Ttt(e))},l.Nc=function(){var e;return e=Q3(this).Nc(),zst(e,new vt,64|e.qd()&1296,this.a.d)},l.Fc=function(e){return rbt(),!0},l.Gc=function(e){return Lr(this),Lr(e),_t(e,543)?vsn(u(e,835)):!e.dc()&&oit(this,e.Kc())},l.Hc=function(e){var n;return n=u(sy(Wx(this.a),e),14),(n?n.gc():0)>0},l.Fb=function(e){return h2n(this,e)},l.Hb=function(){return Hi(Q3(this))},l.dc=function(){return Q3(this).dc()},l.Mc=function(e){return zoe(this,e,1)>0},l.Ib=function(){return $o(Q3(this))},F(Ke,"AbstractMultiset",1989),D(1991,1970,zu),l.$b=function(){cz(this.a.a)},l.Hc=function(e){var n,r;return _t(e,492)?(r=u(e,416),u(r.a.dd(),14).gc()<=0?!1:(n=QQt(this.a,r.a.cd()),n==u(r.a.dd(),14).gc())):!1},l.Mc=function(e){var n,r,s,o;return _t(e,492)&&(r=u(e,416),n=r.a.cd(),s=u(r.a.dd(),14).gc(),s!=0)?(o=this.a,Jpn(o,n,s)):!1},F(Ke,"Multisets/EntrySet",1991),D(1109,1991,zu,rM),l.Kc=function(){return new tHt($Kt(Wx(this.a.a)).Kc())},l.gc=function(){return Wx(this.a.a).gc()},F(Ke,"AbstractMultiset/EntrySet",1109),D(619,726,T2),l.hc=function(){return this.gd()},l.jc=function(){return this.hd()},l.cc=function(e){return this.jd(e)},l.fc=function(e){return this.kd(e)},l.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},l.hd=function(){return wn(),wn(),rV},l.Fb=function(e){return Pit(this,e)},l.jd=function(e){return u(Ai(this,e),21)},l.kd=function(e){return u(GD(this,e),21)},l.mc=function(e){return wn(),new s8(u(e,21))},l.pc=function(e,n){return new zWt(this,e,u(n,21))},F(Ke,"AbstractSetMultimap",619),D(1657,619,T2),l.hc=function(){return new Op(this.b)},l.gd=function(){return new Op(this.b)},l.jc=function(){return kvt(new Op(this.b))},l.hd=function(){return kvt(new Op(this.b))},l.cc=function(e){return u(u(Ai(this,e),21),84)},l.jd=function(e){return u(u(Ai(this,e),21),84)},l.fc=function(e){return u(u(GD(this,e),21),84)},l.kd=function(e){return u(u(GD(this,e),21),84)},l.mc=function(e){return _t(e,271)?kvt(u(e,271)):(wn(),new I2t(u(e,84)))},l.Zb=function(){var e;return e=this.f,e||(this.f=_t(this.c,171)?new Dj(this,u(this.c,171)):_t(this.c,161)?new HM(this,u(this.c,161)):new l8(this,this.c))},l.pc=function(e,n){return _t(n,271)?new LUt(this,e,u(n,271)):new J2t(this,e,u(n,84))},F(Ke,"AbstractSortedSetMultimap",1657),D(1658,1657,T2),l.Zb=function(){var e;return e=this.f,u(u(e||(this.f=_t(this.c,171)?new Dj(this,u(this.c,171)):_t(this.c,161)?new HM(this,u(this.c,161)):new l8(this,this.c)),161),171)},l.ec=function(){var e;return e=this.i,u(u(e||(this.i=_t(this.c,171)?new u8(this,u(this.c,171)):_t(this.c,161)?new mM(this,u(this.c,161)):new K3(this,this.c)),84),271)},l.bc=function(){return _t(this.c,171)?new u8(this,u(this.c,171)):_t(this.c,161)?new mM(this,u(this.c,161)):new K3(this,this.c)},F(Ke,"AbstractSortedKeySortedSetMultimap",1658),D(2010,1,{1947:1}),l.Fb=function(e){return qdn(this,e)},l.Hb=function(){var e;return Tyt((e=this.g,e||(this.g=new yC(this))))},l.Ib=function(){var e;return Tae((e=this.f,e||(this.f=new T2t(this))))},F(Ke,"AbstractTable",2010),D(665,N1,zu,yC),l.$b=function(){lHt()},l.Hc=function(e){var n,r;return _t(e,468)?(n=u(e,682),r=u(sy(uXt(this.a),Np(n.c.e,n.b)),83),!!r&&Jyt(r.vc(),new Lw(Np(n.c.c,n.a),t6(n.c,n.b,n.a)))):!1},l.Kc=function(){return _rn(this.a)},l.Mc=function(e){var n,r;return _t(e,468)?(n=u(e,682),r=u(sy(uXt(this.a),Np(n.c.e,n.b)),83),!!r&&Tln(r.vc(),new Lw(Np(n.c.c,n.a),t6(n.c,n.b,n.a)))):!1},l.gc=function(){return xKt(this.a)},l.Nc=function(){return xsn(this.a)},F(Ke,"AbstractTable/CellSet",665),D(1928,28,xy,dtt),l.$b=function(){lHt()},l.Hc=function(e){return O0n(this.a,e)},l.Kc=function(){return Srn(this.a)},l.gc=function(){return xKt(this.a)},l.Nc=function(){return TZt(this.a)},F(Ke,"AbstractTable/Values",1928),D(1632,1631,T2),F(Ke,"ArrayListMultimapGwtSerializationDependencies",1632),D(513,1632,T2,wet,Wvt),l.hc=function(){return new Xc(this.a)},l.a=0,F(Ke,"ArrayListMultimap",513),D(664,2010,{664:1,1947:1,3:1},Qoe),F(Ke,"ArrayTable",664),D(1924,386,NE,iWt),l.Xb=function(e){return new Ayt(this.a,e)},F(Ke,"ArrayTable/1",1924),D(1925,1,{},eR),l.ld=function(e){return new Ayt(this.a,e)},F(Ke,"ArrayTable/1methodref$getCell$Type",1925),D(2011,1,{682:1}),l.Fb=function(e){var n;return e===this?!0:_t(e,468)?(n=u(e,682),pd(Np(this.c.e,this.b),Np(n.c.e,n.b))&&pd(Np(this.c.c,this.a),Np(n.c.c,n.a))&&pd(t6(this.c,this.b,this.a),t6(n.c,n.b,n.a))):!1},l.Hb=function(){return Az(lt(ct(Qn,1),De,1,5,[Np(this.c.e,this.b),Np(this.c.c,this.a),t6(this.c,this.b,this.a)]))},l.Ib=function(){return"("+Np(this.c.e,this.b)+","+Np(this.c.c,this.a)+")="+t6(this.c,this.b,this.a)},F(Ke,"Tables/AbstractCell",2011),D(468,2011,{468:1,682:1},Ayt),l.a=0,l.b=0,l.d=0,F(Ke,"ArrayTable/2",468),D(1927,1,{},gx),l.ld=function(e){return Fte(this.a,e)},F(Ke,"ArrayTable/2methodref$getValue$Type",1927),D(1926,386,NE,sWt),l.Xb=function(e){return Fte(this.a,e)},F(Ke,"ArrayTable/3",1926),D(1979,1967,mv),l.$b=function(){Vj(this.kc())},l.vc=function(){return new bx(this)},l.lc=function(){return new BXt(this.kc(),this.gc())},F(Ke,"Maps/IteratorBasedAbstractMap",1979),D(828,1979,mv),l.$b=function(){throw it(new Or)},l._b=function(e){return LHt(this.c,e)},l.kc=function(){return new aWt(this,this.c.b.c.gc())},l.lc=function(){return Bnt(this.c.b.c.gc(),16,new bw(this))},l.xc=function(e){var n;return n=u(x9(this.c,e),19),n?this.nd(n.a):null},l.dc=function(){return this.c.b.c.dc()},l.ec=function(){return Gnt(this.c)},l.zc=function(e,n){var r;if(r=u(x9(this.c,e),19),!r)throw it(new Fn(this.md()+" "+e+" not in "+Gnt(this.c)));return this.od(r.a,n)},l.Bc=function(e){throw it(new Or)},l.gc=function(){return this.c.b.c.gc()},F(Ke,"ArrayTable/ArrayMap",828),D(1923,1,{},bw),l.ld=function(e){return hXt(this.a,e)},F(Ke,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),D(1921,345,zq,uVt),l.cd=function(){return qQe(this.a,this.b)},l.dd=function(){return this.a.nd(this.b)},l.ed=function(e){return this.a.od(this.b,e)},l.b=0,F(Ke,"ArrayTable/ArrayMap/1",1921),D(1922,386,NE,aWt),l.Xb=function(e){return hXt(this.a,e)},F(Ke,"ArrayTable/ArrayMap/2",1922),D(1920,828,mv,ZKt),l.md=function(){return"Column"},l.nd=function(e){return t6(this.b,this.a,e)},l.od=function(e,n){return ore(this.b,this.a,e,n)},l.a=0,F(Ke,"ArrayTable/Row",1920),D(829,828,mv,T2t),l.nd=function(e){return new ZKt(this.a,e)},l.zc=function(e,n){return u(n,83),CKe()},l.od=function(e,n){return u(n,83),_Ke()},l.md=function(){return"Row"},F(Ke,"ArrayTable/RowMap",829),D(1120,1,Ih,lVt),l.qd=function(){return this.a.qd()&-262},l.rd=function(){return this.a.rd()},l.Nb=function(e){this.a.Nb(new sVt(e,this.b))},l.sd=function(e){return this.a.sd(new iVt(e,this.b))},F(Ke,"CollectSpliterators/1",1120),D(1121,1,Un,iVt),l.td=function(e){this.a.td(this.b.Kb(e))},F(Ke,"CollectSpliterators/1/lambda$0$Type",1121),D(1122,1,Un,sVt),l.td=function(e){this.a.td(this.b.Kb(e))},F(Ke,"CollectSpliterators/1/lambda$1$Type",1122),D(1123,1,Ih,FZt),l.qd=function(){return this.a},l.rd=function(){return this.d&&(this.b=jUt(this.b,this.d.rd())),jUt(this.b,0)},l.Nb=function(e){this.d&&(this.d.Nb(e),this.d=null),this.c.Nb(new rVt(this.e,e)),this.b=0},l.sd=function(e){for(;;){if(this.d&&this.d.sd(e))return u9(this.b,qq)&&(this.b=Jp(this.b,1)),!0;if(this.d=null,!this.c.sd(new aVt(this,this.e)))return!1}},l.a=0,l.b=0,F(Ke,"CollectSpliterators/1FlatMapSpliterator",1123),D(1124,1,Un,aVt),l.td=function(e){GZe(this.a,this.b,e)},F(Ke,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),D(1125,1,Un,rVt),l.td=function(e){LQe(this.b,this.a,e)},F(Ke,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),D(1117,1,Ih,wYt),l.qd=function(){return 16464|this.b},l.rd=function(){return this.a.rd()},l.Nb=function(e){this.a.xe(new cVt(e,this.c))},l.sd=function(e){return this.a.ye(new oVt(e,this.c))},l.b=0,F(Ke,"CollectSpliterators/1WithCharacteristics",1117),D(1118,1,OI,oVt),l.ud=function(e){this.a.td(this.b.ld(e))},F(Ke,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),D(1119,1,OI,cVt),l.ud=function(e){this.a.td(this.b.ld(e))},F(Ke,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),D(245,1,Uat),l.wd=function(e){return this.vd(u(e,245))},l.vd=function(e){var n;return e==(oet(),Sut)?1:e==(cet(),_ut)?-1:(n=(zj(),ID(this.a,e.a)),n!=0?n:_t(this,519)==_t(e,519)?0:_t(this,519)?1:-1)},l.zd=function(){return this.a},l.Fb=function(e){return D3t(this,e)},F(Ke,"Cut",245),D(1761,245,Uat,dHt),l.vd=function(e){return e==this?0:1},l.xd=function(e){throw it(new Mpt)},l.yd=function(e){e.a+="+∞)"},l.zd=function(){throw it(new No(dfe))},l.Hb=function(){return Gd(),$3t(this)},l.Ad=function(e){return!1},l.Ib=function(){return"+∞"};var _ut;F(Ke,"Cut/AboveAll",1761),D(519,245,{245:1,519:1,3:1,35:1},hWt),l.xd=function(e){hc((e.a+="(",e),this.a)},l.yd=function(e){qp(hc(e,this.a),93)},l.Hb=function(){return~Hi(this.a)},l.Ad=function(e){return zj(),ID(this.a,e)<0},l.Ib=function(){return"/"+this.a+"\\"},F(Ke,"Cut/AboveValue",519),D(1760,245,Uat,gHt),l.vd=function(e){return e==this?0:-1},l.xd=function(e){e.a+="(-∞"},l.yd=function(e){throw it(new Mpt)},l.zd=function(){throw it(new No(dfe))},l.Hb=function(){return Gd(),$3t(this)},l.Ad=function(e){return!0},l.Ib=function(){return"-∞"};var Sut;F(Ke,"Cut/BelowAll",1760),D(1762,245,Uat,fWt),l.xd=function(e){hc((e.a+="[",e),this.a)},l.yd=function(e){qp(hc(e,this.a),41)},l.Hb=function(){return Hi(this.a)},l.Ad=function(e){return zj(),ID(this.a,e)<=0},l.Ib=function(){return"\\"+this.a+"/"},F(Ke,"Cut/BelowValue",1762),D(537,1,r0),l.Jc=function(e){va(this,e)},l.Ib=function(){return thn(u(g$(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},F(Ke,"FluentIterable",537),D(433,537,r0,f9),l.Kc=function(){return new ar(lr(this.a.Kc(),new z))},F(Ke,"FluentIterable/2",433),D(1046,537,r0,bUt),l.Kc=function(){return zp(this)},F(Ke,"FluentIterable/3",1046),D(708,386,NE,C2t),l.Xb=function(e){return this.a[e].Kc()},F(Ke,"FluentIterable/3/1",708),D(1972,1,{}),l.Ib=function(){return $o(this.Bd().b)},F(Ke,"ForwardingObject",1972),D(1973,1972,gfe),l.Bd=function(){return this.Cd()},l.Jc=function(e){va(this,e)},l.Lc=function(){return this.Oc()},l.Nc=function(){return new _n(this,0)},l.Oc=function(){return new Tn(null,this.Nc())},l.Fc=function(e){return this.Cd(),OHt()},l.Gc=function(e){return this.Cd(),PHt()},l.$b=function(){this.Cd(),FHt()},l.Hc=function(e){return this.Cd().Hc(e)},l.Ic=function(e){return this.Cd().Ic(e)},l.dc=function(){return this.Cd().b.dc()},l.Kc=function(){return this.Cd().Kc()},l.Mc=function(e){return this.Cd(),NHt()},l.gc=function(){return this.Cd().b.gc()},l.Pc=function(){return this.Cd().Pc()},l.Qc=function(e){return this.Cd().Qc(e)},F(Ke,"ForwardingCollection",1973),D(1980,28,Rxt),l.Kc=function(){return this.Ed()},l.Fc=function(e){throw it(new Or)},l.Gc=function(e){throw it(new Or)},l.$b=function(){throw it(new Or)},l.Hc=function(e){return e!=null&&ay(this,e,!1)},l.Dd=function(){switch(this.gc()){case 0:return Wm(),Wm(),Aut;case 1:return Wm(),new Rnt(Lr(this.Ed().Pb()));default:return new JKt(this,this.Pc())}},l.Mc=function(e){throw it(new Or)},F(Ke,"ImmutableCollection",1980),D(712,1980,Rxt,Apt),l.Kc=function(){return e6(this.a.Kc())},l.Hc=function(e){return e!=null&&this.a.Hc(e)},l.Ic=function(e){return this.a.Ic(e)},l.dc=function(){return this.a.dc()},l.Ed=function(){return e6(this.a.Kc())},l.gc=function(){return this.a.gc()},l.Pc=function(){return this.a.Pc()},l.Qc=function(e){return this.a.Qc(e)},l.Ib=function(){return $o(this.a)},F(Ke,"ForwardingImmutableCollection",712),D(152,1980,M_),l.Kc=function(){return this.Ed()},l.Yc=function(){return this.Fd(0)},l.Zc=function(e){return this.Fd(e)},l.ad=function(e){r4(this,e)},l.Nc=function(){return new _n(this,16)},l.bd=function(e,n){return this.Gd(e,n)},l.Vc=function(e,n){throw it(new Or)},l.Wc=function(e,n){throw it(new Or)},l.Fb=function(e){return Kbn(this,e)},l.Hb=function(){return aun(this)},l.Xc=function(e){return e==null?-1:m1n(this,e)},l.Ed=function(){return this.Fd(0)},l.Fd=function(e){return $2t(this,e)},l.$c=function(e){throw it(new Or)},l._c=function(e,n){throw it(new Or)},l.Gd=function(e,n){var r;return Dz((r=new xVt(this),new Qd(r,e,n)))};var Aut;F(Ke,"ImmutableList",152),D(2006,152,M_),l.Kc=function(){return e6(this.Hd().Kc())},l.bd=function(e,n){return Dz(this.Hd().bd(e,n))},l.Hc=function(e){return e!=null&&this.Hd().Hc(e)},l.Ic=function(e){return this.Hd().Ic(e)},l.Fb=function(e){return yi(this.Hd(),e)},l.Xb=function(e){return Np(this,e)},l.Hb=function(){return Hi(this.Hd())},l.Xc=function(e){return this.Hd().Xc(e)},l.dc=function(){return this.Hd().dc()},l.Ed=function(){return e6(this.Hd().Kc())},l.gc=function(){return this.Hd().gc()},l.Gd=function(e,n){return Dz(this.Hd().bd(e,n))},l.Pc=function(){return this.Hd().Qc(Nt(Qn,De,1,this.Hd().gc(),5,1))},l.Qc=function(e){return this.Hd().Qc(e)},l.Ib=function(){return $o(this.Hd())},F(Ke,"ForwardingImmutableList",2006),D(714,1,BE),l.vc=function(){return Rw(this)},l.wc=function(e){K9(this,e)},l.ec=function(){return Gnt(this)},l.yc=function(e,n,r){return Qit(this,e,n,r)},l.Cc=function(){return this.Ld()},l.$b=function(){throw it(new Or)},l._b=function(e){return this.xc(e)!=null},l.uc=function(e){return this.Ld().Hc(e)},l.Jd=function(){return new iqt(this)},l.Kd=function(){return new sqt(this)},l.Fb=function(e){return Zun(this,e)},l.Hb=function(){return Rw(this).Hb()},l.dc=function(){return this.gc()==0},l.zc=function(e,n){return SKe()},l.Bc=function(e){throw it(new Or)},l.Ib=function(){return Mgn(this)},l.Ld=function(){return this.e?this.e:this.e=this.Kd()},l.c=null,l.d=null,l.e=null;var Age;F(Ke,"ImmutableMap",714),D(715,714,BE),l._b=function(e){return LHt(this,e)},l.uc=function(e){return CVt(this.b,e)},l.Id=function(){return tie(new kC(this))},l.Jd=function(){return tie(OXt(this.b))},l.Kd=function(){return gd(),new Apt(IXt(this.b))},l.Fb=function(e){return _Vt(this.b,e)},l.xc=function(e){return x9(this,e)},l.Hb=function(){return Hi(this.b.c)},l.dc=function(){return this.b.c.dc()},l.gc=function(){return this.b.c.gc()},l.Ib=function(){return $o(this.b.c)},F(Ke,"ForwardingImmutableMap",715),D(1974,1973,Wat),l.Bd=function(){return this.Md()},l.Cd=function(){return this.Md()},l.Nc=function(){return new _n(this,1)},l.Fb=function(e){return e===this||this.Md().Fb(e)},l.Hb=function(){return this.Md().Hb()},F(Ke,"ForwardingSet",1974),D(1069,1974,Wat,kC),l.Bd=function(){return L8(this.a.b)},l.Cd=function(){return L8(this.a.b)},l.Hc=function(e){if(_t(e,42)&&u(e,42).cd()==null)return!1;try{return TVt(L8(this.a.b),e)}catch(n){if(n=Wi(n),_t(n,205))return!1;throw it(n)}},l.Md=function(){return L8(this.a.b)},l.Qc=function(e){var n;return n=gQt(L8(this.a.b),e),L8(this.a.b).b.gc()=0?"+":"")+(r/60|0),n=gj(b.Math.abs(r)%60),(Pae(),Vge)[this.q.getDay()]+" "+Gge[this.q.getMonth()]+" "+gj(this.q.getDate())+" "+gj(this.q.getHours())+":"+gj(this.q.getMinutes())+":"+gj(this.q.getSeconds())+" GMT"+e+n+" "+this.q.getFullYear()};var tV=F(pr,"Date",199);D(1915,199,Efe,oae),l.a=!1,l.b=0,l.c=0,l.d=0,l.e=0,l.f=0,l.g=!1,l.i=0,l.j=0,l.k=0,l.n=0,l.o=0,l.p=0,F("com.google.gwt.i18n.shared.impl","DateRecord",1915),D(1966,1,{}),l.fe=function(){return null},l.ge=function(){return null},l.he=function(){return null},l.ie=function(){return null},l.je=function(){return null},F(v6,"JSONValue",1966),D(216,1966,{216:1},Eg,wx),l.Fb=function(e){return _t(e,216)?Xvt(this.a,u(e,216).a):!1},l.ee=function(){return KYe},l.Hb=function(){return Bvt(this.a)},l.fe=function(){return this},l.Ib=function(){var e,n,r;for(r=new Ol("["),n=0,e=this.a.length;n0&&(r.a+=","),hc(r,Jm(this,n));return r.a+="]",r.a},F(v6,"JSONArray",216),D(483,1966,{483:1},Xk),l.ee=function(){return XYe},l.ge=function(){return this},l.Ib=function(){return Nn(),""+this.a},l.a=!1;var Fge,Nge;F(v6,"JSONBoolean",483),D(985,60,Q0,eHt),F(v6,"JSONException",985),D(1023,1966,{},ft),l.ee=function(){return eKe},l.Ib=function(){return _u};var Bge;F(v6,"JSONNull",1023),D(258,1966,{258:1},EC),l.Fb=function(e){return _t(e,258)?this.a==u(e,258).a:!1},l.ee=function(){return QYe},l.Hb=function(){return p8(this.a)},l.he=function(){return this},l.Ib=function(){return this.a+""},l.a=0,F(v6,"JSONNumber",258),D(183,1966,{183:1},_x,Qk),l.Fb=function(e){return _t(e,183)?Xvt(this.a,u(e,183).a):!1},l.ee=function(){return ZYe},l.Hb=function(){return Bvt(this.a)},l.ie=function(){return this},l.Ib=function(){var e,n,r,s,o,h,d;for(d=new Ol("{"),e=!0,h=yit(this,Nt(Ae,ee,2,0,6,1)),r=h,s=0,o=r.length;s=0?":"+this.c:"")+")"},l.c=0;var wEt=F(Xo,"StackTraceElement",310);Sge={3:1,475:1,35:1,2:1};var Ae=F(Xo,jxt,2);D(107,418,{475:1},Ag,$C,_h),F(Xo,"StringBuffer",107),D(100,418,{475:1},Mp,Im,Ol),F(Xo,"StringBuilder",100),D(687,73,bot,sbt),F(Xo,"StringIndexOutOfBoundsException",687),D(2043,1,{});var vEt;D(844,1,{},Ft),l.Kb=function(e){return u(e,78).e},F(Xo,"Throwable/lambda$0$Type",844),D(41,60,{3:1,102:1,60:1,78:1,41:1},Or,Sg),F(Xo,"UnsupportedOperationException",41),D(240,236,{3:1,35:1,236:1,240:1},SD,gbt),l.wd=function(e){return gle(this,u(e,240))},l.ke=function(){return dy(Xle(this))},l.Fb=function(e){var n;return this===e?!0:_t(e,240)?(n=u(e,240),this.e==n.e&&gle(this,n)==0):!1},l.Hb=function(){var e;return this.b!=0?this.b:this.a<54?(e=Tu(this.f),this.b=Ar(Ns(e,-1)),this.b=33*this.b+Ar(Ns($p(e,32),-1)),this.b=17*this.b+ps(this.e),this.b):(this.b=17*Yre(this.c)+ps(this.e),this.b)},l.Ib=function(){return Xle(this)},l.a=0,l.b=0,l.d=0,l.e=0,l.f=0;var zge,N2,mEt,yEt,xEt,kEt,EEt,TEt,Nut=F("java.math","BigDecimal",240);D(91,236,{3:1,35:1,236:1,91:1},j3t,Ng,X3,x4t,Qie,Rp),l.wd=function(e){return Uie(this,u(e,91))},l.ke=function(){return dy(Hat(this,0))},l.Fb=function(e){return v3t(this,e)},l.Hb=function(){return Yre(this)},l.Ib=function(){return Hat(this,0)},l.b=-2,l.c=0,l.d=0,l.e=0;var But,eV,CEt,Rut,nV,s7,j4=F("java.math","BigInteger",91),qge,Hge,D6,lS;D(488,1967,mv),l.$b=function(){Xu(this)},l._b=function(e){return Tl(this,e)},l.uc=function(e){return Ire(this,e,this.g)||Ire(this,e,this.f)},l.vc=function(){return new Cg(this)},l.xc=function(e){return tr(this,e)},l.zc=function(e,n){return ki(this,e,n)},l.Bc=function(e){return Jx(this,e)},l.gc=function(){return HC(this)},F(pr,"AbstractHashMap",488),D(261,N1,zu,Cg),l.$b=function(){this.a.$b()},l.Hc=function(e){return MZt(this,e)},l.Kc=function(){return new p2(this.a)},l.Mc=function(e){var n;return MZt(this,e)?(n=u(e,42).cd(),this.a.Bc(n),!0):!1},l.gc=function(){return this.a.gc()},F(pr,"AbstractHashMap/EntrySet",261),D(262,1,sa,p2),l.Nb=function(e){ba(this,e)},l.Pb=function(){return Zw(this)},l.Ob=function(){return this.b},l.Qb=function(){Ste(this)},l.b=!1,F(pr,"AbstractHashMap/EntrySetIterator",262),D(417,1,sa,mx),l.Nb=function(e){ba(this,e)},l.Ob=function(){return TM(this)},l.Pb=function(){return ZXt(this)},l.Qb=function(){Cl(this)},l.b=0,l.c=-1,F(pr,"AbstractList/IteratorImpl",417),D(96,417,n0,da),l.Qb=function(){Cl(this)},l.Rb=function(e){zm(this,e)},l.Sb=function(){return this.b>0},l.Tb=function(){return this.b},l.Ub=function(){return Zn(this.b>0),this.a.Xb(this.c=--this.b)},l.Vb=function(){return this.b-1},l.Wb=function(e){Rm(this.c!=-1),this.a._c(this.c,e)},F(pr,"AbstractList/ListIteratorImpl",96),D(219,52,jE,Qd),l.Vc=function(e,n){Km(e,this.b),this.c.Vc(this.a+e,n),++this.b},l.Xb=function(e){return An(e,this.b),this.c.Xb(this.a+e)},l.$c=function(e){var n;return An(e,this.b),n=this.c.$c(this.a+e),--this.b,n},l._c=function(e,n){return An(e,this.b),this.c._c(this.a+e,n)},l.gc=function(){return this.b},l.a=0,l.b=0,F(pr,"AbstractList/SubList",219),D(384,N1,zu,Sm),l.$b=function(){this.a.$b()},l.Hc=function(e){return this.a._b(e)},l.Kc=function(){var e;return e=this.a.vc().Kc(),new cM(e)},l.Mc=function(e){return this.a._b(e)?(this.a.Bc(e),!0):!1},l.gc=function(){return this.a.gc()},F(pr,"AbstractMap/1",384),D(691,1,sa,cM),l.Nb=function(e){ba(this,e)},l.Ob=function(){return this.a.Ob()},l.Pb=function(){var e;return e=u(this.a.Pb(),42),e.cd()},l.Qb=function(){this.a.Qb()},F(pr,"AbstractMap/1/1",691),D(226,28,xy,v1),l.$b=function(){this.a.$b()},l.Hc=function(e){return this.a.uc(e)},l.Kc=function(){var e;return e=this.a.vc().Kc(),new m1(e)},l.gc=function(){return this.a.gc()},F(pr,"AbstractMap/2",226),D(294,1,sa,m1),l.Nb=function(e){ba(this,e)},l.Ob=function(){return this.a.Ob()},l.Pb=function(){var e;return e=u(this.a.Pb(),42),e.dd()},l.Qb=function(){this.a.Qb()},F(pr,"AbstractMap/2/1",294),D(484,1,{484:1,42:1}),l.Fb=function(e){var n;return _t(e,42)?(n=u(e,42),Fc(this.d,n.cd())&&Fc(this.e,n.dd())):!1},l.cd=function(){return this.d},l.dd=function(){return this.e},l.Hb=function(){return U3(this.d)^U3(this.e)},l.ed=function(e){return awt(this,e)},l.Ib=function(){return this.d+"="+this.e},F(pr,"AbstractMap/AbstractEntry",484),D(383,484,{484:1,383:1,42:1},KR),F(pr,"AbstractMap/SimpleEntry",383),D(1984,1,yot),l.Fb=function(e){var n;return _t(e,42)?(n=u(e,42),Fc(this.cd(),n.cd())&&Fc(this.dd(),n.dd())):!1},l.Hb=function(){return U3(this.cd())^U3(this.dd())},l.Ib=function(){return this.cd()+"="+this.dd()},F(pr,hfe,1984),D(1992,1967,ufe),l.tc=function(e){return RJt(this,e)},l._b=function(e){return _nt(this,e)},l.vc=function(){return new x(this)},l.xc=function(e){var n;return n=e,ec(jyt(this,n))},l.ec=function(){return new y(this)},F(pr,"AbstractNavigableMap",1992),D(739,N1,zu,x),l.Hc=function(e){return _t(e,42)&&RJt(this.b,u(e,42))},l.Kc=function(){return new y9(this.b)},l.Mc=function(e){var n;return _t(e,42)?(n=u(e,42),Cte(this.b,n)):!1},l.gc=function(){return this.b.c},F(pr,"AbstractNavigableMap/EntrySet",739),D(493,N1,Bxt,y),l.Nc=function(){return new WR(this)},l.$b=function(){NC(this.a)},l.Hc=function(e){return _nt(this.a,e)},l.Kc=function(){var e;return e=new y9(new w9(this.a).b),new g(e)},l.Mc=function(e){return _nt(this.a,e)?(P9(this.a,e),!0):!1},l.gc=function(){return this.a.c},F(pr,"AbstractNavigableMap/NavigableKeySet",493),D(494,1,sa,g),l.Nb=function(e){ba(this,e)},l.Ob=function(){return TM(this.a.a)},l.Pb=function(){var e;return e=Lj(this.a),e.cd()},l.Qb=function(){AYt(this.a)},F(pr,"AbstractNavigableMap/NavigableKeySet/1",494),D(2004,28,xy),l.Fc=function(e){return R8(xE(this,e)),!0},l.Gc=function(e){return On(e),Bj(e!=this,"Can't add a queue to itself"),Ua(this,e)},l.$b=function(){for(;cit(this)!=null;);},F(pr,"AbstractQueue",2004),D(302,28,{4:1,20:1,28:1,14:1},B3,eZt),l.Fc=function(e){return imt(this,e),!0},l.$b=function(){lmt(this)},l.Hc=function(e){return ere(new O9(this),e)},l.dc=function(){return BC(this)},l.Kc=function(){return new O9(this)},l.Mc=function(e){return hin(new O9(this),e)},l.gc=function(){return this.c-this.b&this.a.length-1},l.Nc=function(){return new _n(this,272)},l.Qc=function(e){var n;return n=this.c-this.b&this.a.length-1,e.lengthn&&ts(e,n,null),e},l.b=0,l.c=0,F(pr,"ArrayDeque",302),D(446,1,sa,O9),l.Nb=function(e){ba(this,e)},l.Ob=function(){return this.a!=this.b},l.Pb=function(){return Mz(this)},l.Qb=function(){Jee(this)},l.a=0,l.b=0,l.c=-1,F(pr,"ArrayDeque/IteratorImpl",446),D(12,52,_fe,he,Xc,Bu),l.Vc=function(e,n){Hm(this,e,n)},l.Fc=function(e){return le(this,e)},l.Wc=function(e,n){return Gyt(this,e,n)},l.Gc=function(e){return Ls(this,e)},l.$b=function(){this.c=Nt(Qn,De,1,0,5,1)},l.Hc=function(e){return Ro(this,e,0)!=-1},l.Jc=function(e){xu(this,e)},l.Xb=function(e){return Ne(this,e)},l.Xc=function(e){return Ro(this,e,0)},l.dc=function(){return this.c.length==0},l.Kc=function(){return new S(this)},l.$c=function(e){return Fg(this,e)},l.Mc=function(e){return mu(this,e)},l.Ud=function(e,n){tZt(this,e,n)},l._c=function(e,n){return ch(this,e,n)},l.gc=function(){return this.c.length},l.ad=function(e){Zs(this,e)},l.Pc=function(){return pnt(this)},l.Qc=function(e){return P1(this,e)};var Kxn=F(pr,"ArrayList",12);D(7,1,sa,S),l.Nb=function(e){ba(this,e)},l.Ob=function(){return Go(this)},l.Pb=function(){return J(this)},l.Qb=function(){L9(this)},l.a=0,l.b=-1,F(pr,"ArrayList/1",7),D(2013,b.Function,{},Tt),l.te=function(e,n){return Ms(e,n)},D(154,52,Sfe,yl),l.Hc=function(e){return ene(this,e)!=-1},l.Jc=function(e){var n,r,s,o;for(On(e),r=this.a,s=0,o=r.length;s>>0,e.toString(16)))},l.f=0,l.i=Cs;var oV=F(a0,"CNode",57);D(814,1,{},jpt),F(a0,"CNode/CNodeBuilder",814);var spe;D(1525,1,{},Po),l.Oe=function(e,n){return 0},l.Pe=function(e,n){return 0},F(a0,Ffe,1525),D(1790,1,{},vs),l.Le=function(e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt;for(C=as,s=new S(e.a.b);s.as.d.c||s.d.c==h.d.c&&s.d.b0?e+this.n.d+this.n.a:0},l.Se=function(){var e,n,r,s,o;if(o=0,this.e)this.b?o=this.b.a:this.a[1][1]&&(o=this.a[1][1].Se());else if(this.g)o=d3t(this,Ist(this,null,!0));else for(n=(Kf(),lt(ct(Oy,1),oe,232,0,[sc,eu,ac])),r=0,s=n.length;r0?o+this.n.b+this.n.c:0},l.Te=function(){var e,n,r,s,o;if(this.g)for(e=Ist(this,null,!1),r=(Kf(),lt(ct(Oy,1),oe,232,0,[sc,eu,ac])),s=0,o=r.length;s0&&(s[0]+=this.d,r-=s[0]),s[2]>0&&(s[2]+=this.d,r-=s[2]),this.c.a=b.Math.max(0,r),this.c.d=n.d+e.d+(this.c.a-r)/2,s[1]=b.Math.max(s[1],r),wmt(this,eu,n.d+e.d+s[0]-(s[1]-r)/2,s)},l.b=null,l.d=0,l.e=!1,l.f=!1,l.g=!1;var Gut=0,cV=0;F(_2,"GridContainerCell",1473),D(461,22,{3:1,35:1,22:1,461:1},Let);var fb,Md,kf,ppe=jr(_2,"HorizontalLabelAlignment",461,Hr,_in,lJe),bpe;D(306,212,{212:1,306:1},xQt,Aee,vQt),l.Re=function(){return sKt(this)},l.Se=function(){return Vwt(this)},l.a=0,l.c=!1;var s6n=F(_2,"LabelCell",306);D(244,326,{212:1,326:1,244:1},a_),l.Re=function(){return dI(this)},l.Se=function(){return gI(this)},l.Te=function(){Eat(this)},l.Ue=function(){Tat(this)},l.b=0,l.c=0,l.d=!1,F(_2,"StripContainerCell",244),D(1626,1,li,th),l.Mb=function(e){return EKe(u(e,212))},F(_2,"StripContainerCell/lambda$0$Type",1626),D(1627,1,{},Fa),l.Fe=function(e){return u(e,212).Se()},F(_2,"StripContainerCell/lambda$1$Type",1627),D(1628,1,li,Ml),l.Mb=function(e){return TKe(u(e,212))},F(_2,"StripContainerCell/lambda$2$Type",1628),D(1629,1,{},ha),l.Fe=function(e){return u(e,212).Re()},F(_2,"StripContainerCell/lambda$3$Type",1629),D(462,22,{3:1,35:1,22:1,462:1},Met);var Ef,db,n1,wpe=jr(_2,"VerticalLabelAlignment",462,Hr,Sin,hJe),vpe;D(789,1,{},Sxt),l.c=0,l.d=0,l.k=0,l.s=0,l.t=0,l.v=!1,l.w=0,l.D=!1,F(Yq,"NodeContext",789),D(1471,1,Oi,bc),l.ue=function(e,n){return xUt(u(e,61),u(n,61))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(Yq,"NodeContext/0methodref$comparePortSides$Type",1471),D(1472,1,Oi,Cc),l.ue=function(e,n){return Q0n(u(e,111),u(n,111))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(Yq,"NodeContext/1methodref$comparePortContexts$Type",1472),D(159,22,{3:1,35:1,22:1,159:1},hh);var mpe,ype,xpe,kpe,Epe,Tpe,Cpe,_pe,Spe,Ape,Lpe,Mpe,Dpe,Ipe,Ope,Ppe,Fpe,Npe,Bpe,Rpe,jpe,Uut,$pe=jr(Yq,"NodeLabelLocation",159,Hr,lst,fJe),zpe;D(111,1,{111:1},tce),l.a=!1,F(Yq,"PortContext",111),D(1476,1,Un,pa),l.td=function(e){$Ht(u(e,306))},F(zI,Yfe,1476),D(1477,1,li,Da),l.Mb=function(e){return!!u(e,111).c},F(zI,Kfe,1477),D(1478,1,Un,Ha),l.td=function(e){$Ht(u(e,111).c)},F(zI,"LabelPlacer/lambda$2$Type",1478);var o7t;D(1475,1,Un,_c),l.td=function(e){$m(),rKe(u(e,111))},F(zI,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),D(790,1,Un,Ewt),l.td=function(e){pXe(this.b,this.c,this.a,u(e,181))},l.a=!1,l.c=!1,F(zI,"NodeLabelCellCreator/lambda$0$Type",790),D(1474,1,Un,vn),l.td=function(e){aKe(this.a,u(e,181))},F(zI,"PortContextCreator/lambda$0$Type",1474);var uV;D(1829,1,{},lw),F(HE,"GreedyRectangleStripOverlapRemover",1829),D(1830,1,Oi,Dl),l.ue=function(e,n){return WQe(u(e,222),u(n,222))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(HE,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),D(1786,1,{},vqt),l.a=5,l.e=0,F(HE,"RectangleStripOverlapRemover",1786),D(1787,1,Oi,ed),l.ue=function(e,n){return YQe(u(e,222),u(n,222))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(HE,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),D(1789,1,Oi,jd),l.ue=function(e,n){return vnn(u(e,222),u(n,222))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(HE,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),D(406,22,{3:1,35:1,22:1,406:1},ZR);var lO,Wut,Yut,hO,qpe=jr(HE,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Hr,_sn,dJe),Hpe;D(222,1,{222:1},Hnt),F(HE,"RectangleStripOverlapRemover/RectangleNode",222),D(1788,1,Un,gr),l.td=function(e){k1n(this.a,u(e,222))},F(HE,"RectangleStripOverlapRemover/lambda$1$Type",1788),D(1304,1,Oi,nd),l.ue=function(e,n){return A3n(u(e,167),u(n,167))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(kd,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),D(1307,1,{},$d),l.Kb=function(e){return u(e,324).a},F(kd,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),D(1308,1,li,A0),l.Mb=function(e){return u(e,323).a},F(kd,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),D(1309,1,li,Bi),l.Mb=function(e){return u(e,323).a},F(kd,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),D(1302,1,Oi,cn),l.ue=function(e,n){return cmn(u(e,167),u(n,167))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(kd,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),D(1305,1,{},eh),l.Kb=function(e){return u(e,324).a},F(kd,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),D(767,1,Oi,kr),l.ue=function(e,n){return lun(u(e,167),u(n,167))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(kd,"PolyominoCompactor/MinNumOfExtensionsComparator",767),D(1300,1,Oi,Ei),l.ue=function(e,n){return mcn(u(e,321),u(n,321))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(kd,"PolyominoCompactor/MinPerimeterComparator",1300),D(1301,1,Oi,Jo),l.ue=function(e,n){return Kfn(u(e,321),u(n,321))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(kd,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),D(1303,1,Oi,wc),l.ue=function(e,n){return Dmn(u(e,167),u(n,167))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(kd,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),D(1306,1,{},rf),l.Kb=function(e){return u(e,324).a},F(kd,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),D(777,1,{},Mbt),l.Ce=function(e,n){return ksn(this,u(e,46),u(n,167))},F(kd,"SuccessorCombination",777),D(644,1,{},Oc),l.Ce=function(e,n){var r;return hbn((r=u(e,46),u(n,167),r))},F(kd,"SuccessorJitter",644),D(643,1,{},sf),l.Ce=function(e,n){var r;return Jwn((r=u(e,46),u(n,167),r))},F(kd,"SuccessorLineByLine",643),D(568,1,{},af),l.Ce=function(e,n){var r;return f2n((r=u(e,46),u(n,167),r))},F(kd,"SuccessorManhattan",568),D(1356,1,{},Qi),l.Ce=function(e,n){var r;return Ewn((r=u(e,46),u(n,167),r))},F(kd,"SuccessorMaxNormWindingInMathPosSense",1356),D(400,1,{},fr),l.Ce=function(e,n){return vvt(this,e,n)},l.c=!1,l.d=!1,l.e=!1,l.f=!1,F(kd,"SuccessorQuadrantsGeneric",400),D(1357,1,{},Ts),l.Kb=function(e){return u(e,324).a},F(kd,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),D(323,22,{3:1,35:1,22:1,323:1},QR),l.a=!1;var fO,dO,gO,pO,Vpe=jr(Xq,i6t,323,Hr,Lsn,gJe),Gpe;D(1298,1,{}),l.Ib=function(){var e,n,r,s,o,h;for(r=" ",e=pe(0),o=0;o=0?"b"+e+"["+zrt(this.a)+"]":"b["+zrt(this.a)+"]"):"b_"+Pw(this)},F(HI,"FBendpoint",559),D(282,134,{3:1,282:1,94:1,134:1},eYt),l.Ib=function(){return zrt(this)},F(HI,"FEdge",282),D(231,134,{3:1,231:1,94:1,134:1},B$);var o6n=F(HI,"FGraph",231);D(447,357,{3:1,447:1,357:1,94:1,134:1},iJt),l.Ib=function(){return this.b==null||this.b.length==0?"l["+zrt(this.a)+"]":"l_"+this.b},F(HI,"FLabel",447),D(144,357,{3:1,144:1,357:1,94:1,134:1},gXt),l.Ib=function(){return Kvt(this)},l.b=0,F(HI,"FNode",144),D(2003,1,{}),l.bf=function(e){axt(this,e)},l.cf=function(){Bse(this)},l.d=0,F(g6t,"AbstractForceModel",2003),D(631,2003,{631:1},Wne),l.af=function(e,n){var r,s,o,h,d;return Ooe(this.f,e,n),o=ia(nc(n.d),e.d),d=b.Math.sqrt(o.a*o.a+o.b*o.b),s=b.Math.max(0,d-D9(e.e)/2-D9(n.e)/2),r=Ere(this.e,e,n),r>0?h=-pnn(s,this.c)*r:h=oZe(s,this.b)*u(Q(e,(Jf(),c7)),19).a,fd(o,h/d),o},l.bf=function(e){axt(this,e),this.a=u(Q(e,(Jf(),pV)),19).a,this.c=Xt(ye(Q(e,bV))),this.b=Xt(ye(Q(e,elt)))},l.df=function(e){return e0&&(h-=mKe(s,this.a)*r),fd(o,h*this.b/d),o},l.bf=function(e){var n,r,s,o,h,d,v;for(axt(this,e),this.b=Xt(ye(Q(e,(Jf(),nlt)))),this.c=this.b/u(Q(e,pV),19).a,s=e.e.c.length,h=0,o=0,v=new S(e.e);v.a0},l.a=0,l.b=0,l.c=0,F(g6t,"FruchtermanReingoldModel",632),D(849,1,Oh,HJ),l.Qe=function(e){an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Jq),""),"Force Model"),"Determines the model for force calculation."),b7t),(Ug(),us)),w7t),un((Qf(),qn))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,p6t),""),"Iterations"),"The number of iterations on the force model."),pe(300)),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,b6t),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),pe(0)),gc),ja),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,qot),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),Ed),Oo),la),un(qn)))),ca(e,qot,Jq,hbe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Hot),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),Oo),la),un(qn)))),ca(e,Hot,Jq,cbe),Phe((new bC,e))};var sbe,abe,b7t,obe,cbe,ube,lbe,hbe;F(B_,"ForceMetaDataProvider",849),D(424,22,{3:1,35:1,22:1,424:1},Pbt);var tlt,gV,w7t=jr(B_,"ForceModelStrategy",424,Hr,ein,wJe),fbe;D(988,1,Oh,bC),l.Qe=function(e){Phe(e)};var dbe,gbe,v7t,pV,m7t,pbe,bbe,wbe,y7t,vbe,x7t,k7t,mbe,c7,ybe,elt,E7t,xbe,kbe,bV,nlt;F(B_,"ForceOptions",988),D(989,1,{},V5),l.$e=function(){var e;return e=new Npt,e},l._e=function(e){},F(B_,"ForceOptions/ForceFactory",989);var vO,dS,I6,wV;D(850,1,Oh,VJ),l.Qe=function(e){an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,v6t),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(Nn(),!1)),(Ug(),La)),Rs),un((Qf(),ea))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,m6t),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),Oo),la),ji(qn,lt(ct(ip,1),oe,175,0,[Pd]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,y6t),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),T7t),us),D7t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,x6t),""),"Stress Epsilon"),"Termination criterion for the iterative process."),Ed),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,k6t),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),pe(wi)),gc),ja),un(qn)))),vhe((new GJ,e))};var Ebe,Tbe,T7t,Cbe,_be,Sbe;F(B_,"StressMetaDataProvider",850),D(992,1,Oh,GJ),l.Qe=function(e){vhe(e)};var vV,C7t,_7t,S7t,A7t,L7t,Abe,Lbe,Mbe,Dbe,M7t,Ibe;F(B_,"StressOptions",992),D(993,1,{},f1),l.$e=function(){var e;return e=new nYt,e},l._e=function(e){},F(B_,"StressOptions/StressFactory",993),D(1128,209,S2,nYt),l.Ze=function(e,n){var r,s,o,h,d;for(vr(n,o1e,1),je(Re(qe(e,(iI(),A7t))))?je(Re(qe(e,M7t)))||y$((r=new rr((Pm(),new Mm(e))),r)):jce(new Npt,e,Rc(n,1)),o=pre(e),s=Ale(this.a,o),d=s.Kc();d.Ob();)h=u(d.Pb(),231),!(h.e.c.length<=1)&&(_3n(this.b,h),i2n(this.b),xu(h.d,new rd));o=zhe(s),Rhe(o),or(n)},F(nH,"StressLayoutProvider",1128),D(1129,1,Un,rd),l.td=function(e){dxt(u(e,447))},F(nH,"StressLayoutProvider/lambda$0$Type",1129),D(990,1,{},hqt),l.c=0,l.e=0,l.g=0,F(nH,"StressMajorization",990),D(379,22,{3:1,35:1,22:1,379:1},Det);var rlt,ilt,slt,D7t=jr(nH,"StressMajorization/Dimension",379,Hr,Lin,vJe),Obe;D(991,1,Oi,Ci),l.ue=function(e,n){return YZe(this.a,u(e,144),u(n,144))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(nH,"StressMajorization/lambda$0$Type",991),D(1229,1,{},wZt),F(_6,"ElkLayered",1229),D(1230,1,Un,id),l.td=function(e){sbn(u(e,37))},F(_6,"ElkLayered/lambda$0$Type",1230),D(1231,1,Un,hi),l.td=function(e){KZe(this.a,u(e,37))},F(_6,"ElkLayered/lambda$1$Type",1231),D(1263,1,{},HUt);var Pbe,Fbe,Nbe;F(_6,"GraphConfigurator",1263),D(759,1,Un,gs),l.td=function(e){Gae(this.a,u(e,10))},F(_6,"GraphConfigurator/lambda$0$Type",759),D(760,1,{},G5),l.Kb=function(e){return l4t(),new Tn(null,new _n(u(e,29).a,16))},F(_6,"GraphConfigurator/lambda$1$Type",760),D(761,1,Un,qi),l.td=function(e){Gae(this.a,u(e,10))},F(_6,"GraphConfigurator/lambda$2$Type",761),D(1127,209,S2,gqt),l.Ze=function(e,n){var r;r=Wyn(new yqt,e),Vt(qe(e,(Te(),qy)))===Vt((G0(),sp))?Chn(this.a,r,n):xbn(this.a,r,n),Ohe(new WJ,r)},F(_6,"LayeredLayoutProvider",1127),D(356,22,{3:1,35:1,22:1,356:1},_M);var Dd,gb,cu,qc,Io,I7t=jr(_6,"LayeredPhases",356,Hr,fan,mJe),Bbe;D(1651,1,{},nne),l.i=0;var Rbe;F(UI,"ComponentsToCGraphTransformer",1651);var jbe;D(1652,1,{},fw),l.ef=function(e,n){return b.Math.min(e.a!=null?Xt(e.a):e.c.i,n.a!=null?Xt(n.a):n.c.i)},l.ff=function(e,n){return b.Math.min(e.a!=null?Xt(e.a):e.c.i,n.a!=null?Xt(n.a):n.c.i)},F(UI,"ComponentsToCGraphTransformer/1",1652),D(81,1,{81:1}),l.i=0,l.k=!0,l.o=Cs;var alt=F($_,"CNode",81);D(460,81,{460:1,81:1},F2t,N3t),l.Ib=function(){return""},F(UI,"ComponentsToCGraphTransformer/CRectNode",460),D(1623,1,{},U5);var olt,clt;F(UI,"OneDimensionalComponentsCompaction",1623),D(1624,1,{},mp),l.Kb=function(e){return yin(u(e,46))},l.Fb=function(e){return this===e},F(UI,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),D(1625,1,{},W5),l.Kb=function(e){return Ohn(u(e,46))},l.Fb=function(e){return this===e},F(UI,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),D(1654,1,{},dXt),F($_,"CGraph",1654),D(189,1,{189:1},ost),l.b=0,l.c=0,l.e=0,l.g=!0,l.i=Cs,F($_,"CGroup",189),D(1653,1,{},EL),l.ef=function(e,n){return b.Math.max(e.a!=null?Xt(e.a):e.c.i,n.a!=null?Xt(n.a):n.c.i)},l.ff=function(e,n){return b.Math.max(e.a!=null?Xt(e.a):e.c.i,n.a!=null?Xt(n.a):n.c.i)},F($_,Ffe,1653),D(1655,1,{},Uoe),l.d=!1;var $be,ult=F($_,Rfe,1655);D(1656,1,{},vl),l.Kb=function(e){return xbt(),Nn(),u(u(e,46).a,81).d.e!=0},l.Fb=function(e){return this===e},F($_,jfe,1656),D(823,1,{},Gwt),l.a=!1,l.b=!1,l.c=!1,l.d=!1,F($_,$fe,823),D(1825,1,{},DKt),F(rH,zfe,1825);var mO=Ki(L2,Ofe);D(1826,1,{369:1},cQt),l.Ke=function(e){gvn(this,u(e,466))},F(rH,qfe,1826),D(1827,1,Oi,iN),l.ue=function(e,n){return grn(u(e,81),u(n,81))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(rH,Hfe,1827),D(466,1,{466:1},Nbt),l.a=!1,F(rH,Vfe,466),D(1828,1,Oi,Sc),l.ue=function(e,n){return _dn(u(e,466),u(n,466))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(rH,Gfe,1828),D(140,1,{140:1},g8,$wt),l.Fb=function(e){var n;return e==null||c6n!=ol(e)?!1:(n=u(e,140),Fc(this.c,n.c)&&Fc(this.d,n.d))},l.Hb=function(){return Az(lt(ct(Qn,1),De,1,5,[this.c,this.d]))},l.Ib=function(){return"("+this.c+Ya+this.d+(this.a?"cx":"")+this.b+")"},l.a=!0,l.c=0,l.d=0;var c6n=F(L2,"Point",140);D(405,22,{3:1,35:1,22:1,405:1},JR);var Lv,Py,z4,Fy,zbe=jr(L2,"Point/Quadrant",405,Hr,Msn,yJe),qbe;D(1642,1,{},pqt),l.b=null,l.c=null,l.d=null,l.e=null,l.f=null;var Hbe,Vbe,Gbe,Ube,Wbe;F(L2,"RectilinearConvexHull",1642),D(574,1,{369:1},Yz),l.Ke=function(e){don(this,u(e,140))},l.b=0;var O7t;F(L2,"RectilinearConvexHull/MaximalElementsEventHandler",574),D(1644,1,Oi,wm),l.ue=function(e,n){return rrn(ye(e),ye(n))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(L2,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),D(1643,1,{369:1},Cee),l.Ke=function(e){Swn(this,u(e,140))},l.a=0,l.b=null,l.c=null,l.d=null,l.e=null,F(L2,"RectilinearConvexHull/RectangleEventHandler",1643),D(1645,1,Oi,xg),l.ue=function(e,n){return asn(u(e,140),u(n,140))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(L2,"RectilinearConvexHull/lambda$0$Type",1645),D(1646,1,Oi,T3),l.ue=function(e,n){return osn(u(e,140),u(n,140))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(L2,"RectilinearConvexHull/lambda$1$Type",1646),D(1647,1,Oi,cK),l.ue=function(e,n){return usn(u(e,140),u(n,140))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(L2,"RectilinearConvexHull/lambda$2$Type",1647),D(1648,1,Oi,Vb),l.ue=function(e,n){return csn(u(e,140),u(n,140))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(L2,"RectilinearConvexHull/lambda$3$Type",1648),D(1649,1,Oi,uK),l.ue=function(e,n){return hgn(u(e,140),u(n,140))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(L2,"RectilinearConvexHull/lambda$4$Type",1649),D(1650,1,{},jQt),F(L2,"Scanline",1650),D(2005,1,{}),F(Td,"AbstractGraphPlacer",2005),D(325,1,{325:1},DWt),l.mf=function(e){return this.nf(e)?(ln(this.b,u(Q(e,(ae(),By)),21),e),!0):!1},l.nf=function(e){var n,r,s,o;for(n=u(Q(e,(ae(),By)),21),o=u(Ai(Pi,n),21),s=o.Kc();s.Ob();)if(r=u(s.Pb(),21),!u(Ai(this.b,r),15).dc())return!1;return!0};var Pi;F(Td,"ComponentGroup",325),D(765,2005,{},$pt),l.of=function(e){var n,r;for(r=new S(this.a);r.aG&&(ue=0,_e+=H+o,H=0),gt=d.c,x_(d,ue+gt.a,_e+gt.b),Gf(gt),r=b.Math.max(r,ue+St.a),H=b.Math.max(H,St.b),ue+=St.a+o;if(n.f.a=r,n.f.b=_e+H,je(Re(Q(h,iG)))){for(s=new PT,Oxt(s,e,o),j=e.Kc();j.Ob();)M=u(j.Pb(),37),Li(Gf(M.c),s.e);Li(Gf(n.f),s.a)}Omt(n,e)},F(Td,"SimpleRowGraphPlacer",1291),D(1292,1,Oi,Rf),l.ue=function(e,n){return uun(u(e,37),u(n,37))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(Td,"SimpleRowGraphPlacer/1",1292);var Kbe;D(1262,1,xd,vm),l.Lb=function(e){var n;return n=u(Q(u(e,243).b,(Te(),So)),74),!!n&&n.b!=0},l.Fb=function(e){return this===e},l.Mb=function(e){var n;return n=u(Q(u(e,243).b,(Te(),So)),74),!!n&&n.b!=0},F(iH,"CompoundGraphPostprocessor/1",1262),D(1261,1,os,xqt),l.pf=function(e,n){yse(this,u(e,37),n)},F(iH,"CompoundGraphPreprocessor",1261),D(441,1,{441:1},oie),l.c=!1,F(iH,"CompoundGraphPreprocessor/ExternalPort",441),D(243,1,{243:1},Fj),l.Ib=function(){return bnt(this.c)+":"+qoe(this.b)},F(iH,"CrossHierarchyEdge",243),D(763,1,Oi,Si),l.ue=function(e,n){return Z1n(this,u(e,243),u(n,243))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(iH,"CrossHierarchyEdgeComparator",763),D(299,134,{3:1,299:1,94:1,134:1}),l.p=0,F(tu,"LGraphElement",299),D(17,299,{3:1,17:1,299:1,94:1,134:1},Vw),l.Ib=function(){return qoe(this)};var hlt=F(tu,"LEdge",17);D(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},eyt),l.Jc=function(e){va(this,e)},l.Kc=function(){return new S(this.b)},l.Ib=function(){return this.b.c.length==0?"G-unlayered"+eb(this.a):this.a.c.length==0?"G-layered"+eb(this.b):"G[layerless"+eb(this.a)+", layers"+eb(this.b)+"]"};var Xbe=F(tu,"LGraph",37),Qbe;D(657,1,{}),l.qf=function(){return this.e.n},l.We=function(e){return Q(this.e,e)},l.rf=function(){return this.e.o},l.sf=function(){return this.e.p},l.Xe=function(e){return Us(this.e,e)},l.tf=function(e){this.e.n.a=e.a,this.e.n.b=e.b},l.uf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},l.vf=function(e){this.e.p=e},F(tu,"LGraphAdapters/AbstractLShapeAdapter",657),D(577,1,{839:1},Ui),l.wf=function(){var e,n;if(!this.b)for(this.b=Ud(this.a.b.c.length),n=new S(this.a.b);n.a0&&Wre((Rr(n-1,e.length),e.charCodeAt(n-1)),d1e);)--n;if(h> ",e),iq(r)),Gr(hc((e.a+="[",e),r.i),"]")),e.a},l.c=!0,l.d=!1;var R7t,j7t,$7t,z7t,q7t,H7t,Jbe=F(tu,"LPort",11);D(397,1,r0,Qs),l.Jc=function(e){va(this,e)},l.Kc=function(){var e;return e=new S(this.a.e),new qs(e)},F(tu,"LPort/1",397),D(1290,1,sa,qs),l.Nb=function(e){ba(this,e)},l.Pb=function(){return u(J(this.a),17).c},l.Ob=function(){return Go(this.a)},l.Qb=function(){L9(this.a)},F(tu,"LPort/1/1",1290),D(359,1,r0,Tr),l.Jc=function(e){va(this,e)},l.Kc=function(){var e;return e=new S(this.a.g),new Qt(e)},F(tu,"LPort/2",359),D(762,1,sa,Qt),l.Nb=function(e){ba(this,e)},l.Pb=function(){return u(J(this.a),17).d},l.Ob=function(){return Go(this.a)},l.Qb=function(){L9(this.a)},F(tu,"LPort/2/1",762),D(1283,1,r0,cGt),l.Jc=function(e){va(this,e)},l.Kc=function(){return new L1(this)},F(tu,"LPort/CombineIter",1283),D(201,1,sa,L1),l.Nb=function(e){ba(this,e)},l.Qb=function(){IHt()},l.Ob=function(){return v9(this)},l.Pb=function(){return Go(this.a)?J(this.a):J(this.b)},F(tu,"LPort/CombineIter/1",201),D(1285,1,xd,yp),l.Lb=function(e){return HKt(e)},l.Fb=function(e){return this===e},l.Mb=function(e){return ju(),u(e,11).e.c.length!=0},F(tu,"LPort/lambda$0$Type",1285),D(1284,1,xd,mm),l.Lb=function(e){return VKt(e)},l.Fb=function(e){return this===e},l.Mb=function(e){return ju(),u(e,11).g.c.length!=0},F(tu,"LPort/lambda$1$Type",1284),D(1286,1,xd,hK),l.Lb=function(e){return ju(),u(e,11).j==(ve(),Pn)},l.Fb=function(e){return this===e},l.Mb=function(e){return ju(),u(e,11).j==(ve(),Pn)},F(tu,"LPort/lambda$2$Type",1286),D(1287,1,xd,Gb),l.Lb=function(e){return ju(),u(e,11).j==(ve(),Hn)},l.Fb=function(e){return this===e},l.Mb=function(e){return ju(),u(e,11).j==(ve(),Hn)},F(tu,"LPort/lambda$3$Type",1287),D(1288,1,xd,fK),l.Lb=function(e){return ju(),u(e,11).j==(ve(),mr)},l.Fb=function(e){return this===e},l.Mb=function(e){return ju(),u(e,11).j==(ve(),mr)},F(tu,"LPort/lambda$4$Type",1288),D(1289,1,xd,dK),l.Lb=function(e){return ju(),u(e,11).j==(ve(),Bn)},l.Fb=function(e){return this===e},l.Mb=function(e){return ju(),u(e,11).j==(ve(),Bn)},F(tu,"LPort/lambda$5$Type",1289),D(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},Sh),l.Jc=function(e){va(this,e)},l.Kc=function(){return new S(this.a)},l.Ib=function(){return"L_"+Ro(this.b.b,this,0)+eb(this.a)},F(tu,"Layer",29),D(1342,1,{},yqt),F(Kg,w1e,1342),D(1346,1,{},Y5),l.Kb=function(e){return Do(u(e,82))},F(Kg,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),D(1349,1,{},FT),l.Kb=function(e){return Do(u(e,82))},F(Kg,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),D(1343,1,Un,jn),l.td=function(e){nce(this.a,u(e,118))},F(Kg,v1e,1343),D(1344,1,Un,Sr),l.td=function(e){nce(this.a,u(e,118))},F(Kg,m1e,1344),D(1345,1,{},oN),l.Kb=function(e){return new Tn(null,new _n(Znn(u(e,79)),16))},F(Kg,y1e,1345),D(1347,1,li,ir),l.Mb=function(e){return JXe(this.a,u(e,33))},F(Kg,x1e,1347),D(1348,1,{},Tk),l.Kb=function(e){return new Tn(null,new _n(Jnn(u(e,79)),16))},F(Kg,"ElkGraphImporter/lambda$5$Type",1348),D(1350,1,li,sr),l.Mb=function(e){return tQe(this.a,u(e,33))},F(Kg,"ElkGraphImporter/lambda$7$Type",1350),D(1351,1,li,gK),l.Mb=function(e){return brn(u(e,79))},F(Kg,"ElkGraphImporter/lambda$8$Type",1351),D(1278,1,{},WJ);var t2e;F(Kg,"ElkGraphLayoutTransferrer",1278),D(1279,1,li,Ia),l.Mb=function(e){return qZe(this.a,u(e,17))},F(Kg,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),D(1280,1,Un,$r),l.td=function(e){kM(),le(this.a,u(e,17))},F(Kg,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),D(1281,1,li,Yi),l.Mb=function(e){return SZe(this.a,u(e,17))},F(Kg,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),D(1282,1,Un,Fo),l.td=function(e){kM(),le(this.a,u(e,17))},F(Kg,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),D(1485,1,os,Ck),l.pf=function(e,n){Lcn(u(e,37),n)},F($n,"CommentNodeMarginCalculator",1485),D(1486,1,{},pK),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"CommentNodeMarginCalculator/lambda$0$Type",1486),D(1487,1,Un,bK),l.td=function(e){u3n(u(e,10))},F($n,"CommentNodeMarginCalculator/lambda$1$Type",1487),D(1488,1,os,wK),l.pf=function(e,n){kvn(u(e,37),n)},F($n,"CommentPostprocessor",1488),D(1489,1,os,vK),l.pf=function(e,n){L5n(u(e,37),n)},F($n,"CommentPreprocessor",1489),D(1490,1,os,mK),l.pf=function(e,n){G2n(u(e,37),n)},F($n,"ConstraintsPostprocessor",1490),D(1491,1,os,yK),l.pf=function(e,n){Zcn(u(e,37),n)},F($n,"EdgeAndLayerConstraintEdgeReverser",1491),D(1492,1,os,xK),l.pf=function(e,n){$hn(u(e,37),n)},F($n,"EndLabelPostprocessor",1492),D(1493,1,{},kK),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"EndLabelPostprocessor/lambda$0$Type",1493),D(1494,1,li,EK),l.Mb=function(e){return Prn(u(e,10))},F($n,"EndLabelPostprocessor/lambda$1$Type",1494),D(1495,1,Un,TK),l.td=function(e){Sdn(u(e,10))},F($n,"EndLabelPostprocessor/lambda$2$Type",1495),D(1496,1,os,CK),l.pf=function(e,n){bpn(u(e,37),n)},F($n,"EndLabelPreprocessor",1496),D(1497,1,{},CL),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"EndLabelPreprocessor/lambda$0$Type",1497),D(1498,1,Un,PYt),l.td=function(e){bXe(this.a,this.b,this.c,u(e,10))},l.a=0,l.b=0,l.c=!1,F($n,"EndLabelPreprocessor/lambda$1$Type",1498),D(1499,1,li,_K),l.Mb=function(e){return Vt(Q(u(e,70),(Te(),Od)))===Vt((M1(),F7))},F($n,"EndLabelPreprocessor/lambda$2$Type",1499),D(1500,1,Un,Pc),l.td=function(e){ri(this.a,u(e,70))},F($n,"EndLabelPreprocessor/lambda$3$Type",1500),D(1501,1,li,SK),l.Mb=function(e){return Vt(Q(u(e,70),(Te(),Od)))===Vt((M1(),Zy))},F($n,"EndLabelPreprocessor/lambda$4$Type",1501),D(1502,1,Un,Za),l.td=function(e){ri(this.a,u(e,70))},F($n,"EndLabelPreprocessor/lambda$5$Type",1502),D(1551,1,os,UJ),l.pf=function(e,n){Yln(u(e,37),n)};var e2e;F($n,"EndLabelSorter",1551),D(1552,1,Oi,NT),l.ue=function(e,n){return Tfn(u(e,456),u(n,456))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"EndLabelSorter/1",1552),D(456,1,{456:1},tQt),F($n,"EndLabelSorter/LabelGroup",456),D(1553,1,{},cN),l.Kb=function(e){return EM(),new Tn(null,new _n(u(e,29).a,16))},F($n,"EndLabelSorter/lambda$0$Type",1553),D(1554,1,li,K5),l.Mb=function(e){return EM(),u(e,10).k==(Vn(),Os)},F($n,"EndLabelSorter/lambda$1$Type",1554),D(1555,1,Un,AK),l.td=function(e){Sgn(u(e,10))},F($n,"EndLabelSorter/lambda$2$Type",1555),D(1556,1,li,LK),l.Mb=function(e){return EM(),Vt(Q(u(e,70),(Te(),Od)))===Vt((M1(),Zy))},F($n,"EndLabelSorter/lambda$3$Type",1556),D(1557,1,li,MK),l.Mb=function(e){return EM(),Vt(Q(u(e,70),(Te(),Od)))===Vt((M1(),F7))},F($n,"EndLabelSorter/lambda$4$Type",1557),D(1503,1,os,DK),l.pf=function(e,n){y3n(this,u(e,37))},l.b=0,l.c=0,F($n,"FinalSplineBendpointsCalculator",1503),D(1504,1,{},IK),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),D(1505,1,{},BT),l.Kb=function(e){return new Tn(null,new jw(new ar(lr(Ds(u(e,10)).a.Kc(),new z))))},F($n,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),D(1506,1,li,_L),l.Mb=function(e){return!Ga(u(e,17))},F($n,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),D(1507,1,li,uN),l.Mb=function(e){return Us(u(e,17),(ae(),R2))},F($n,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),D(1508,1,Un,mc),l.td=function(e){Omn(this.a,u(e,128))},F($n,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),D(1509,1,Un,C3),l.td=function(e){Yst(u(e,17).a)},F($n,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),D(792,1,os,Ta),l.pf=function(e,n){d4n(this,u(e,37),n)},F($n,"GraphTransformer",792),D(511,22,{3:1,35:1,22:1,511:1},Fbt);var dlt,yO,n2e=jr($n,"GraphTransformer/Mode",511,Hr,nin,Ptn),r2e;D(1510,1,os,_3),l.pf=function(e,n){Hwn(u(e,37),n)},F($n,"HierarchicalNodeResizingProcessor",1510),D(1511,1,os,OK),l.pf=function(e,n){Tcn(u(e,37),n)},F($n,"HierarchicalPortConstraintProcessor",1511),D(1512,1,Oi,of),l.ue=function(e,n){return Ffn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"HierarchicalPortConstraintProcessor/NodeComparator",1512),D(1513,1,os,X5),l.pf=function(e,n){Vyn(u(e,37),n)},F($n,"HierarchicalPortDummySizeProcessor",1513),D(1514,1,os,PK),l.pf=function(e,n){zvn(this,u(e,37),n)},l.a=0,F($n,"HierarchicalPortOrthogonalEdgeRouter",1514),D(1515,1,Oi,_k),l.ue=function(e,n){return UQe(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"HierarchicalPortOrthogonalEdgeRouter/1",1515),D(1516,1,Oi,zd),l.ue=function(e,n){return aon(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"HierarchicalPortOrthogonalEdgeRouter/2",1516),D(1517,1,os,FK),l.pf=function(e,n){fgn(u(e,37),n)},F($n,"HierarchicalPortPositionProcessor",1517),D(1518,1,os,YJ),l.pf=function(e,n){oxn(this,u(e,37))},l.a=0,l.c=0;var mV,yV;F($n,"HighDegreeNodeLayeringProcessor",1518),D(571,1,{571:1},NK),l.b=-1,l.d=-1,F($n,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),D(1519,1,{},BK),l.Kb=function(e){return KM(),jo(u(e,10))},l.Fb=function(e){return this===e},F($n,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),D(1520,1,{},RK),l.Kb=function(e){return KM(),Ds(u(e,10))},l.Fb=function(e){return this===e},F($n,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),D(1526,1,os,RT),l.pf=function(e,n){vyn(this,u(e,37),n)},F($n,"HyperedgeDummyMerger",1526),D(793,1,{},Cwt),l.a=!1,l.b=!1,l.c=!1,F($n,"HyperedgeDummyMerger/MergeState",793),D(1527,1,{},SL),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"HyperedgeDummyMerger/lambda$0$Type",1527),D(1528,1,{},lN),l.Kb=function(e){return new Tn(null,new _n(u(e,10).j,16))},F($n,"HyperedgeDummyMerger/lambda$1$Type",1528),D(1529,1,Un,AL),l.td=function(e){u(e,11).p=-1},F($n,"HyperedgeDummyMerger/lambda$2$Type",1529),D(1530,1,os,Q5),l.pf=function(e,n){byn(u(e,37),n)},F($n,"HypernodesProcessor",1530),D(1531,1,os,jK),l.pf=function(e,n){wyn(u(e,37),n)},F($n,"InLayerConstraintProcessor",1531),D(1532,1,os,hN),l.pf=function(e,n){Wcn(u(e,37),n)},F($n,"InnermostNodeMarginCalculator",1532),D(1533,1,os,fN),l.pf=function(e,n){T5n(this,u(e,37))},l.a=Cs,l.b=Cs,l.c=as,l.d=as;var u6n=F($n,"InteractiveExternalPortPositioner",1533);D(1534,1,{},$K),l.Kb=function(e){return u(e,17).d.i},l.Fb=function(e){return this===e},F($n,"InteractiveExternalPortPositioner/lambda$0$Type",1534),D(1535,1,{},Ja),l.Kb=function(e){return KQe(this.a,ye(e))},l.Fb=function(e){return this===e},F($n,"InteractiveExternalPortPositioner/lambda$1$Type",1535),D(1536,1,{},zK),l.Kb=function(e){return u(e,17).c.i},l.Fb=function(e){return this===e},F($n,"InteractiveExternalPortPositioner/lambda$2$Type",1536),D(1537,1,{},ml),l.Kb=function(e){return XQe(this.a,ye(e))},l.Fb=function(e){return this===e},F($n,"InteractiveExternalPortPositioner/lambda$3$Type",1537),D(1538,1,{},qf),l.Kb=function(e){return jZe(this.a,ye(e))},l.Fb=function(e){return this===e},F($n,"InteractiveExternalPortPositioner/lambda$4$Type",1538),D(1539,1,{},Cp),l.Kb=function(e){return $Ze(this.a,ye(e))},l.Fb=function(e){return this===e},F($n,"InteractiveExternalPortPositioner/lambda$5$Type",1539),D(77,22,{3:1,35:1,22:1,77:1,234:1},ms),l.Kf=function(){switch(this.g){case 15:return new rQ;case 22:return new iQ;case 47:return new oQ;case 28:case 35:return new S3;case 32:return new Ck;case 42:return new wK;case 1:return new vK;case 41:return new mK;case 56:return new Ta((X8(),yO));case 0:return new Ta((X8(),dlt));case 2:return new yK;case 54:return new xK;case 33:return new CK;case 51:return new DK;case 55:return new _3;case 13:return new OK;case 38:return new X5;case 44:return new PK;case 40:return new FK;case 9:return new YJ;case 49:return new yWt;case 37:return new RT;case 43:return new Q5;case 27:return new jK;case 30:return new hN;case 3:return new fN;case 18:return new HK;case 29:return new VK;case 5:return new zB;case 50:return new qK;case 34:return new KJ;case 36:return new Sk;case 52:return new UJ;case 11:return new ym;case 7:return new QJ;case 39:return new Ak;case 45:return new YK;case 16:return new jT;case 10:return new sd;case 48:return new ML;case 21:return new Lk;case 23:return new det((ev(),FS));case 8:return new bN;case 12:return new IL;case 4:return new XK;case 19:return new wC;case 17:return new eX;case 53:return new nX;case 6:return new EN;case 25:return new Tqt;case 46:return new aX;case 31:return new iYt;case 14:return new PL;case 26:return new lQ;case 20:return new gX;case 24:return new det((ev(),TG));default:throw it(new Fn(Yot+(this.f!=null?this.f:""+this.g)))}};var V7t,G7t,U7t,W7t,Y7t,K7t,X7t,Q7t,Z7t,J7t,gS,xV,kV,tTt,eTt,nTt,rTt,iTt,sTt,aTt,pS,oTt,cTt,uTt,lTt,hTt,glt,EV,TV,fTt,CV,_V,SV,u7,l7,h7,dTt,AV,LV,gTt,MV,DV,pTt,bTt,wTt,vTt,IV,plt,xO,OV,PV,FV,NV,mTt,yTt,xTt,kTt,l6n=jr($n,T6t,77,Hr,Yce,Otn),i2e;D(1540,1,os,HK),l.pf=function(e,n){_5n(u(e,37),n)},F($n,"InvertedPortProcessor",1540),D(1541,1,os,VK),l.pf=function(e,n){_mn(u(e,37),n)},F($n,"LabelAndNodeSizeProcessor",1541),D(1542,1,li,GK),l.Mb=function(e){return u(e,10).k==(Vn(),Os)},F($n,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),D(1543,1,li,qd),l.Mb=function(e){return u(e,10).k==(Vn(),ks)},F($n,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),D(1544,1,Un,FYt),l.td=function(e){wXe(this.b,this.a,this.c,u(e,10))},l.a=!1,l.c=!1,F($n,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),D(1545,1,os,zB),l.pf=function(e,n){X4n(u(e,37),n)};var s2e;F($n,"LabelDummyInserter",1545),D(1546,1,xd,dw),l.Lb=function(e){return Vt(Q(u(e,70),(Te(),Od)))===Vt((M1(),P7))},l.Fb=function(e){return this===e},l.Mb=function(e){return Vt(Q(u(e,70),(Te(),Od)))===Vt((M1(),P7))},F($n,"LabelDummyInserter/1",1546),D(1547,1,os,qK),l.pf=function(e,n){Z3n(u(e,37),n)},F($n,"LabelDummyRemover",1547),D(1548,1,li,UK),l.Mb=function(e){return je(Re(Q(u(e,70),(Te(),rht))))},F($n,"LabelDummyRemover/lambda$0$Type",1548),D(1359,1,os,KJ),l.pf=function(e,n){S4n(this,u(e,37),n)},l.a=null;var blt;F($n,"LabelDummySwitcher",1359),D(286,1,{286:1},Uue),l.c=0,l.d=null,l.f=0,F($n,"LabelDummySwitcher/LabelDummyInfo",286),D(1360,1,{},dN),l.Kb=function(e){return r6(),new Tn(null,new _n(u(e,29).a,16))},F($n,"LabelDummySwitcher/lambda$0$Type",1360),D(1361,1,li,gN),l.Mb=function(e){return r6(),u(e,10).k==(Vn(),Ll)},F($n,"LabelDummySwitcher/lambda$1$Type",1361),D(1362,1,{},_g),l.Kb=function(e){return AZe(this.a,u(e,10))},F($n,"LabelDummySwitcher/lambda$2$Type",1362),D(1363,1,Un,cd),l.td=function(e){Snn(this.a,u(e,286))},F($n,"LabelDummySwitcher/lambda$3$Type",1363),D(1364,1,Oi,WK),l.ue=function(e,n){return enn(u(e,286),u(n,286))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"LabelDummySwitcher/lambda$4$Type",1364),D(791,1,os,S3),l.pf=function(e,n){Ran(u(e,37),n)},F($n,"LabelManagementProcessor",791),D(1549,1,os,Sk),l.pf=function(e,n){uvn(u(e,37),n)},F($n,"LabelSideSelector",1549),D(1550,1,li,LL),l.Mb=function(e){return je(Re(Q(u(e,70),(Te(),rht))))},F($n,"LabelSideSelector/lambda$0$Type",1550),D(1558,1,os,ym),l.pf=function(e,n){Gyn(u(e,37),n)},F($n,"LayerConstraintPostprocessor",1558),D(1559,1,os,QJ),l.pf=function(e,n){s2n(u(e,37),n)};var ETt;F($n,"LayerConstraintPreprocessor",1559),D(360,22,{3:1,35:1,22:1,360:1},tj);var kO,BV,RV,wlt,a2e=jr($n,"LayerConstraintPreprocessor/HiddenNodeConnections",360,Hr,Dsn,TJe),o2e;D(1560,1,os,Ak),l.pf=function(e,n){K3n(u(e,37),n)},F($n,"LayerSizeAndGraphHeightCalculator",1560),D(1561,1,os,YK),l.pf=function(e,n){Z2n(u(e,37),n)},F($n,"LongEdgeJoiner",1561),D(1562,1,os,jT),l.pf=function(e,n){M3n(u(e,37),n)},F($n,"LongEdgeSplitter",1562),D(1563,1,os,sd),l.pf=function(e,n){M4n(this,u(e,37),n)},l.d=0,l.e=0,l.i=0,l.j=0,l.k=0,l.n=0,F($n,"NodePromotion",1563),D(1564,1,{},pN),l.Kb=function(e){return u(e,46),Nn(),!0},l.Fb=function(e){return this===e},F($n,"NodePromotion/lambda$0$Type",1564),D(1565,1,{},_p),l.Kb=function(e){return Ynn(this.a,u(e,46))},l.Fb=function(e){return this===e},l.a=0,F($n,"NodePromotion/lambda$1$Type",1565),D(1566,1,{},Hf),l.Kb=function(e){return Knn(this.a,u(e,46))},l.Fb=function(e){return this===e},l.a=0,F($n,"NodePromotion/lambda$2$Type",1566),D(1567,1,os,ML),l.pf=function(e,n){txn(u(e,37),n)},F($n,"NorthSouthPortPostprocessor",1567),D(1568,1,os,Lk),l.pf=function(e,n){j5n(u(e,37),n)},F($n,"NorthSouthPortPreprocessor",1568),D(1569,1,Oi,DL),l.ue=function(e,n){return gun(u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"NorthSouthPortPreprocessor/lambda$0$Type",1569),D(1570,1,os,bN),l.pf=function(e,n){nyn(u(e,37),n)},F($n,"PartitionMidprocessor",1570),D(1571,1,li,KK),l.Mb=function(e){return Us(u(e,10),(Te(),T7))},F($n,"PartitionMidprocessor/lambda$0$Type",1571),D(1572,1,Un,mw),l.td=function(e){wrn(this.a,u(e,10))},F($n,"PartitionMidprocessor/lambda$1$Type",1572),D(1573,1,os,IL),l.pf=function(e,n){vwn(u(e,37),n)},F($n,"PartitionPostprocessor",1573),D(1574,1,os,XK),l.pf=function(e,n){Abn(u(e,37),n)},F($n,"PartitionPreprocessor",1574),D(1575,1,li,QK),l.Mb=function(e){return Us(u(e,10),(Te(),T7))},F($n,"PartitionPreprocessor/lambda$0$Type",1575),D(1576,1,{},wN),l.Kb=function(e){return new Tn(null,new jw(new ar(lr(Ds(u(e,10)).a.Kc(),new z))))},F($n,"PartitionPreprocessor/lambda$1$Type",1576),D(1577,1,li,Z5),l.Mb=function(e){return xfn(u(e,17))},F($n,"PartitionPreprocessor/lambda$2$Type",1577),D(1578,1,Un,vN),l.td=function(e){Tun(u(e,17))},F($n,"PartitionPreprocessor/lambda$3$Type",1578),D(1579,1,os,wC),l.pf=function(e,n){$mn(u(e,37),n)};var TTt,c2e,u2e,l2e,CTt,_Tt;F($n,"PortListSorter",1579),D(1580,1,{},J5),l.Kb=function(e){return oE(),u(e,11).e},F($n,"PortListSorter/lambda$0$Type",1580),D(1581,1,{},ZK),l.Kb=function(e){return oE(),u(e,11).g},F($n,"PortListSorter/lambda$1$Type",1581),D(1582,1,Oi,OL),l.ue=function(e,n){return aJt(u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"PortListSorter/lambda$2$Type",1582),D(1583,1,Oi,JK),l.ue=function(e,n){return G1n(u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"PortListSorter/lambda$3$Type",1583),D(1584,1,Oi,tX),l.ue=function(e,n){return ple(u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"PortListSorter/lambda$4$Type",1584),D(1585,1,os,eX),l.pf=function(e,n){Jbn(u(e,37),n)},F($n,"PortSideProcessor",1585),D(1586,1,os,nX),l.pf=function(e,n){tmn(u(e,37),n)},F($n,"ReversedEdgeRestorer",1586),D(1591,1,os,Tqt),l.pf=function(e,n){L1n(this,u(e,37),n)},F($n,"SelfLoopPortRestorer",1591),D(1592,1,{},mN),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"SelfLoopPortRestorer/lambda$0$Type",1592),D(1593,1,li,rX),l.Mb=function(e){return u(e,10).k==(Vn(),Os)},F($n,"SelfLoopPortRestorer/lambda$1$Type",1593),D(1594,1,li,iX),l.Mb=function(e){return Us(u(e,10),(ae(),x7))},F($n,"SelfLoopPortRestorer/lambda$2$Type",1594),D(1595,1,{},sX),l.Kb=function(e){return u(Q(u(e,10),(ae(),x7)),403)},F($n,"SelfLoopPortRestorer/lambda$3$Type",1595),D(1596,1,Un,Lm),l.td=function(e){Rgn(this.a,u(e,403))},F($n,"SelfLoopPortRestorer/lambda$4$Type",1596),D(794,1,Un,yN),l.td=function(e){Jgn(u(e,101))},F($n,"SelfLoopPortRestorer/lambda$5$Type",794),D(1597,1,os,aX),l.pf=function(e,n){Rfn(u(e,37),n)},F($n,"SelfLoopPostProcessor",1597),D(1598,1,{},oX),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"SelfLoopPostProcessor/lambda$0$Type",1598),D(1599,1,li,cX),l.Mb=function(e){return u(e,10).k==(Vn(),Os)},F($n,"SelfLoopPostProcessor/lambda$1$Type",1599),D(1600,1,li,xN),l.Mb=function(e){return Us(u(e,10),(ae(),x7))},F($n,"SelfLoopPostProcessor/lambda$2$Type",1600),D(1601,1,Un,uX),l.td=function(e){Gdn(u(e,10))},F($n,"SelfLoopPostProcessor/lambda$3$Type",1601),D(1602,1,{},lX),l.Kb=function(e){return new Tn(null,new _n(u(e,101).f,1))},F($n,"SelfLoopPostProcessor/lambda$4$Type",1602),D(1603,1,Un,xx),l.td=function(e){Psn(this.a,u(e,409))},F($n,"SelfLoopPostProcessor/lambda$5$Type",1603),D(1604,1,li,kN),l.Mb=function(e){return!!u(e,101).i},F($n,"SelfLoopPostProcessor/lambda$6$Type",1604),D(1605,1,Un,F3),l.td=function(e){vKe(this.a,u(e,101))},F($n,"SelfLoopPostProcessor/lambda$7$Type",1605),D(1587,1,os,EN),l.pf=function(e,n){D2n(u(e,37),n)},F($n,"SelfLoopPreProcessor",1587),D(1588,1,{},TN),l.Kb=function(e){return new Tn(null,new _n(u(e,101).f,1))},F($n,"SelfLoopPreProcessor/lambda$0$Type",1588),D(1589,1,{},hX),l.Kb=function(e){return u(e,409).a},F($n,"SelfLoopPreProcessor/lambda$1$Type",1589),D(1590,1,Un,fX),l.td=function(e){EQe(u(e,17))},F($n,"SelfLoopPreProcessor/lambda$2$Type",1590),D(1606,1,os,iYt),l.pf=function(e,n){Agn(this,u(e,37),n)},F($n,"SelfLoopRouter",1606),D(1607,1,{},Mk),l.Kb=function(e){return new Tn(null,new _n(u(e,29).a,16))},F($n,"SelfLoopRouter/lambda$0$Type",1607),D(1608,1,li,tx),l.Mb=function(e){return u(e,10).k==(Vn(),Os)},F($n,"SelfLoopRouter/lambda$1$Type",1608),D(1609,1,li,$T),l.Mb=function(e){return Us(u(e,10),(ae(),x7))},F($n,"SelfLoopRouter/lambda$2$Type",1609),D(1610,1,{},dX),l.Kb=function(e){return u(Q(u(e,10),(ae(),x7)),403)},F($n,"SelfLoopRouter/lambda$3$Type",1610),D(1611,1,Un,tGt),l.td=function(e){crn(this.a,this.b,u(e,403))},F($n,"SelfLoopRouter/lambda$4$Type",1611),D(1612,1,os,PL),l.pf=function(e,n){Qwn(u(e,37),n)},F($n,"SemiInteractiveCrossMinProcessor",1612),D(1613,1,li,zT),l.Mb=function(e){return u(e,10).k==(Vn(),Os)},F($n,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),D(1614,1,li,FL),l.Mb=function(e){return yKt(u(e,10))._b((Te(),Uy))},F($n,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),D(1615,1,Oi,CN),l.ue=function(e,n){return _cn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F($n,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),D(1616,1,{},_N),l.Ce=function(e,n){return Crn(u(e,10),u(n,10))},F($n,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),D(1618,1,os,gX),l.pf=function(e,n){Uyn(u(e,37),n)},F($n,"SortByInputModelProcessor",1618),D(1619,1,li,pX),l.Mb=function(e){return u(e,11).g.c.length!=0},F($n,"SortByInputModelProcessor/lambda$0$Type",1619),D(1620,1,Un,kx),l.td=function(e){ipn(this.a,u(e,11))},F($n,"SortByInputModelProcessor/lambda$1$Type",1620),D(1693,803,{},pne),l.Me=function(e){var n,r,s,o;switch(this.c=e,this.a.g){case 2:n=new he,ls(Ri(new Tn(null,new _n(this.c.a.b,16)),new MN),new sGt(this,n)),hI(this,new AN),xu(n,new wX),n.c=Nt(Qn,De,1,0,5,1),ls(Ri(new Tn(null,new _n(this.c.a.b,16)),new vX),new N3(n)),hI(this,new mX),xu(n,new yX),n.c=Nt(Qn,De,1,0,5,1),r=RUt(Ane(l$(new Tn(null,new _n(this.c.a.b,16)),new Hd(this))),new xX),ls(new Tn(null,new _n(this.c.a.a,16)),new nGt(r,n)),hI(this,new kX),xu(n,new bX),n.c=Nt(Qn,De,1,0,5,1);break;case 3:s=new he,hI(this,new SN),o=RUt(Ane(l$(new Tn(null,new _n(this.c.a.b,16)),new SC(this))),new LN),ls(Ri(new Tn(null,new _n(this.c.a.b,16)),new EX),new iGt(o,s)),hI(this,new TX),xu(s,new CX),s.c=Nt(Qn,De,1,0,5,1);break;default:throw it(new uqt)}},l.b=0,F(_s,"EdgeAwareScanlineConstraintCalculation",1693),D(1694,1,xd,SN),l.Lb=function(e){return _t(u(e,57).g,145)},l.Fb=function(e){return this===e},l.Mb=function(e){return _t(u(e,57).g,145)},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),D(1695,1,{},SC),l.Fe=function(e){return Bpn(this.a,u(e,57))},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),D(1703,1,Vq,eGt),l.Vd=function(){h_(this.a,this.b,-1)},l.b=0,F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),D(1705,1,xd,AN),l.Lb=function(e){return _t(u(e,57).g,145)},l.Fb=function(e){return this===e},l.Mb=function(e){return _t(u(e,57).g,145)},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),D(1706,1,Un,wX),l.td=function(e){u(e,365).Vd()},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),D(1707,1,li,vX),l.Mb=function(e){return _t(u(e,57).g,10)},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),D(1709,1,Un,N3),l.td=function(e){lhn(this.a,u(e,57))},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),D(1708,1,Vq,uGt),l.Vd=function(){h_(this.b,this.a,-1)},l.a=0,F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),D(1710,1,xd,mX),l.Lb=function(e){return _t(u(e,57).g,10)},l.Fb=function(e){return this===e},l.Mb=function(e){return _t(u(e,57).g,10)},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),D(1711,1,Un,yX),l.td=function(e){u(e,365).Vd()},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),D(1712,1,{},Hd),l.Fe=function(e){return Rpn(this.a,u(e,57))},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),D(1713,1,{},xX),l.De=function(){return 0},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),D(1696,1,{},LN),l.De=function(){return 0},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),D(1715,1,Un,nGt),l.td=function(e){Gen(this.a,this.b,u(e,307))},l.a=0,F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),D(1714,1,Vq,rGt),l.Vd=function(){Cce(this.a,this.b,-1)},l.b=0,F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),D(1716,1,xd,kX),l.Lb=function(e){return u(e,57),!0},l.Fb=function(e){return this===e},l.Mb=function(e){return u(e,57),!0},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),D(1717,1,Un,bX),l.td=function(e){u(e,365).Vd()},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),D(1697,1,li,EX),l.Mb=function(e){return _t(u(e,57).g,10)},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),D(1699,1,Un,iGt),l.td=function(e){Uen(this.a,this.b,u(e,57))},l.a=0,F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),D(1698,1,Vq,lGt),l.Vd=function(){h_(this.b,this.a,-1)},l.a=0,F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),D(1700,1,xd,TX),l.Lb=function(e){return u(e,57),!0},l.Fb=function(e){return this===e},l.Mb=function(e){return u(e,57),!0},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),D(1701,1,Un,CX),l.td=function(e){u(e,365).Vd()},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),D(1702,1,li,MN),l.Mb=function(e){return _t(u(e,57).g,145)},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),D(1704,1,Un,sGt),l.td=function(e){Hon(this.a,this.b,u(e,57))},F(_s,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),D(1521,1,os,yWt),l.pf=function(e,n){B3n(this,u(e,37),n)};var h2e;F(_s,"HorizontalGraphCompactor",1521),D(1522,1,{},y1),l.Oe=function(e,n){var r,s,o;return qmt(e,n)||(r=t4(e),s=t4(n),r&&r.k==(Vn(),ks)||s&&s.k==(Vn(),ks))?0:(o=u(Q(this.a.a,(ae(),Q4)),304),QQe(o,r?r.k:(Vn(),ta),s?s.k:(Vn(),ta)))},l.Pe=function(e,n){var r,s,o;return qmt(e,n)?1:(r=t4(e),s=t4(n),o=u(Q(this.a.a,(ae(),Q4)),304),B2t(o,r?r.k:(Vn(),ta),s?s.k:(Vn(),ta)))},F(_s,"HorizontalGraphCompactor/1",1522),D(1523,1,{},qT),l.Ne=function(e,n){return GC(),e.a.i==0},F(_s,"HorizontalGraphCompactor/lambda$0$Type",1523),D(1524,1,{},Vd),l.Ne=function(e,n){return xrn(this.a,e,n)},F(_s,"HorizontalGraphCompactor/lambda$1$Type",1524),D(1664,1,{},tee);var f2e,d2e;F(_s,"LGraphToCGraphTransformer",1664),D(1672,1,li,_X),l.Mb=function(e){return e!=null},F(_s,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),D(1665,1,{},SX),l.Kb=function(e){return df(),$o(Q(u(u(e,57).g,10),(ae(),_i)))},F(_s,"LGraphToCGraphTransformer/lambda$0$Type",1665),D(1666,1,{},DN),l.Kb=function(e){return df(),rie(u(u(e,57).g,145))},F(_s,"LGraphToCGraphTransformer/lambda$1$Type",1666),D(1675,1,li,AX),l.Mb=function(e){return df(),_t(u(e,57).g,10)},F(_s,"LGraphToCGraphTransformer/lambda$10$Type",1675),D(1676,1,Un,LX),l.td=function(e){yrn(u(e,57))},F(_s,"LGraphToCGraphTransformer/lambda$11$Type",1676),D(1677,1,li,MX),l.Mb=function(e){return df(),_t(u(e,57).g,145)},F(_s,"LGraphToCGraphTransformer/lambda$12$Type",1677),D(1681,1,Un,DX),l.td=function(e){Cln(u(e,57))},F(_s,"LGraphToCGraphTransformer/lambda$13$Type",1681),D(1678,1,Un,AC),l.td=function(e){KXe(this.a,u(e,8))},l.a=0,F(_s,"LGraphToCGraphTransformer/lambda$14$Type",1678),D(1679,1,Un,Yb),l.td=function(e){QXe(this.a,u(e,110))},l.a=0,F(_s,"LGraphToCGraphTransformer/lambda$15$Type",1679),D(1680,1,Un,dR),l.td=function(e){XXe(this.a,u(e,8))},l.a=0,F(_s,"LGraphToCGraphTransformer/lambda$16$Type",1680),D(1682,1,{},IX),l.Kb=function(e){return df(),new Tn(null,new jw(new ar(lr(Ds(u(e,10)).a.Kc(),new z))))},F(_s,"LGraphToCGraphTransformer/lambda$17$Type",1682),D(1683,1,li,OX),l.Mb=function(e){return df(),Ga(u(e,17))},F(_s,"LGraphToCGraphTransformer/lambda$18$Type",1683),D(1684,1,Un,Htt),l.td=function(e){Don(this.a,u(e,17))},F(_s,"LGraphToCGraphTransformer/lambda$19$Type",1684),D(1668,1,Un,Vtt),l.td=function(e){hsn(this.a,u(e,145))},F(_s,"LGraphToCGraphTransformer/lambda$2$Type",1668),D(1685,1,{},IN),l.Kb=function(e){return df(),new Tn(null,new _n(u(e,29).a,16))},F(_s,"LGraphToCGraphTransformer/lambda$20$Type",1685),D(1686,1,{},PX),l.Kb=function(e){return df(),new Tn(null,new jw(new ar(lr(Ds(u(e,10)).a.Kc(),new z))))},F(_s,"LGraphToCGraphTransformer/lambda$21$Type",1686),D(1687,1,{},ON),l.Kb=function(e){return df(),u(Q(u(e,17),(ae(),R2)),15)},F(_s,"LGraphToCGraphTransformer/lambda$22$Type",1687),D(1688,1,li,FX),l.Mb=function(e){return JQe(u(e,15))},F(_s,"LGraphToCGraphTransformer/lambda$23$Type",1688),D(1689,1,Un,Gtt),l.td=function(e){Apn(this.a,u(e,15))},F(_s,"LGraphToCGraphTransformer/lambda$24$Type",1689),D(1667,1,Un,aGt),l.td=function(e){Zsn(this.a,this.b,u(e,145))},F(_s,"LGraphToCGraphTransformer/lambda$3$Type",1667),D(1669,1,{},NX),l.Kb=function(e){return df(),new Tn(null,new _n(u(e,29).a,16))},F(_s,"LGraphToCGraphTransformer/lambda$4$Type",1669),D(1670,1,{},BX),l.Kb=function(e){return df(),new Tn(null,new jw(new ar(lr(Ds(u(e,10)).a.Kc(),new z))))},F(_s,"LGraphToCGraphTransformer/lambda$5$Type",1670),D(1671,1,{},HT),l.Kb=function(e){return df(),u(Q(u(e,17),(ae(),R2)),15)},F(_s,"LGraphToCGraphTransformer/lambda$6$Type",1671),D(1673,1,Un,Utt),l.td=function(e){abn(this.a,u(e,15))},F(_s,"LGraphToCGraphTransformer/lambda$8$Type",1673),D(1674,1,Un,oGt),l.td=function(e){mQe(this.a,this.b,u(e,145))},F(_s,"LGraphToCGraphTransformer/lambda$9$Type",1674),D(1663,1,{},RX),l.Le=function(e){var n,r,s,o,h;for(this.a=e,this.d=new eet,this.c=Nt(a7t,De,121,this.a.a.a.c.length,0,1),this.b=0,r=new S(this.a.a.a);r.a=tt&&(le(h,pe(M)),St=b.Math.max(St,Rt[M-1]-j),v+=K,gt+=Rt[M-1]-gt,j=Rt[M-1],K=k[M]),K=b.Math.max(K,k[M]),++M;v+=K}G=b.Math.min(1/St,1/n.b/v),G>s&&(s=G,r=h)}return r},l.Wf=function(){return!1},F(Cd,"MSDCutIndexHeuristic",802),D(1617,1,os,lQ),l.pf=function(e,n){Ryn(u(e,37),n)},F(Cd,"SingleEdgeGraphWrapper",1617),D(227,22,{3:1,35:1,22:1,227:1},ZC);var V4,g7,p7,Ny,bS,G4,b7=jr(kc,"CenterEdgeLabelPlacementStrategy",227,Hr,Kan,SJe),C2e;D(422,22,{3:1,35:1,22:1,422:1},Bbt);var ATt,Alt,LTt=jr(kc,"ConstraintCalculationStrategy",422,Hr,jrn,AJe),_2e;D(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Pet),l.Kf=function(){return Noe(this)},l.Xf=function(){return Noe(this)};var EO,P6,MTt,DTt=jr(kc,"CrossingMinimizationStrategy",314,Hr,Din,LJe),S2e;D(337,22,{3:1,35:1,22:1,337:1},Fet);var ITt,Llt,VV,OTt=jr(kc,"CuttingStrategy",337,Hr,Iin,IJe),A2e;D(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},AM),l.Kf=function(){return kce(this)},l.Xf=function(){return kce(this)};var PTt,Mlt,wS,Dlt,vS,FTt=jr(kc,"CycleBreakingStrategy",335,Hr,xan,OJe),L2e;D(419,22,{3:1,35:1,22:1,419:1},Rbt);var GV,NTt,BTt=jr(kc,"DirectionCongruency",419,Hr,Rrn,PJe),M2e;D(450,22,{3:1,35:1,22:1,450:1},Net);var w7,Ilt,U4,D2e=jr(kc,"EdgeConstraint",450,Hr,Oin,FJe),I2e;D(276,22,{3:1,35:1,22:1,276:1},JC);var Olt,Plt,Flt,Nlt,UV,Blt,RTt=jr(kc,"EdgeLabelSideSelection",276,Hr,Jan,NJe),O2e;D(479,22,{3:1,35:1,22:1,479:1},jbt);var WV,jTt,$Tt=jr(kc,"EdgeStraighteningStrategy",479,Hr,Brn,BJe),P2e;D(274,22,{3:1,35:1,22:1,274:1},t9);var Rlt,zTt,qTt,YV,HTt,VTt,GTt=jr(kc,"FixedAlignment",274,Hr,Qan,RJe),F2e;D(275,22,{3:1,35:1,22:1,275:1},e9);var UTt,WTt,YTt,KTt,mS,XTt,QTt=jr(kc,"GraphCompactionStrategy",275,Hr,Xan,jJe),N2e;D(256,22,{3:1,35:1,22:1,256:1},Fm);var v7,KV,m7,vh,yS,XV,y7,W4,QV,xS,jlt=jr(kc,"GraphProperties",256,Hr,Rcn,$Je),B2e;D(292,22,{3:1,35:1,22:1,292:1},Bet);var TO,$lt,zlt,qlt=jr(kc,"GreedySwitchType",292,Hr,Nin,zJe),R2e;D(303,22,{3:1,35:1,22:1,303:1},Ret);var F6,CO,Y4,j2e=jr(kc,"InLayerConstraint",303,Hr,Fin,qJe),$2e;D(420,22,{3:1,35:1,22:1,420:1},$bt);var Hlt,ZTt,JTt=jr(kc,"InteractiveReferencePoint",420,Hr,$rn,HJe),z2e,tCt,N6,Iv,ZV,eCt,nCt,JV,rCt,_O,tG,kS,B6,By,Vlt,eG,oc,iCt,Ov,Vc,Glt,Ult,SO,B2,Pv,R6,sCt,j6,AO,Ry,r1,$h,Wlt,K4,Tc,_i,aCt,oCt,cCt,uCt,lCt,Ylt,nG,Ju,Fv,Klt,$6,LO,q1,X4,x7,Q4,Z4,k7,R2,hCt,Xlt,Qlt,z6;D(163,22,{3:1,35:1,22:1,163:1},MM);var ES,bb,TS,jy,MO,fCt=jr(kc,"LayerConstraint",163,Hr,Tan,VJe),q2e;D(848,1,Oh,rtt),l.Qe=function(e){an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,C6t),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),kCt),(Ug(),us)),BTt),un((Qf(),qn))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,_6t),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(Nn(),!1)),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,sH),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),ACt),us),JTt),un(qn)))),ca(e,sH,Qot,Owe),ca(e,sH,H_,Iwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,S6t),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,A6t),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),La),Rs),un(qn)))),an(e,new Xe(XKe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,L6t),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),La),Rs),un(V2)),lt(ct(Ae,1),ee,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,M6t),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),NCt),us),V9t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,D6t),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),pe(7)),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,I6t),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,O6t),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Qot),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),xCt),us),FTt),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,KI),xct),"Node Layering Strategy"),"Strategy for node layering."),DCt),us),I9t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,P6t),xct),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),LCt),us),fCt),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,F6t),xct),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),pe(-1)),gc),ja),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,N6t),xct),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),pe(-1)),gc),ja),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Zot),I1e),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),pe(4)),gc),ja),un(qn)))),ca(e,Zot,KI,$we),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Jot),I1e),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),pe(2)),gc),ja),un(qn)))),ca(e,Jot,KI,qwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,tct),O1e),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),MCt),us),z9t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,ect),O1e),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),pe(0)),gc),ja),un(qn)))),ca(e,ect,tct,null),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,nct),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),pe(wi)),gc),ja),un(qn)))),ca(e,nct,KI,Fwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,H_),XI),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),yCt),us),DTt),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,B6t),XI),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,rct),XI),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),Oo),la),un(qn)))),ca(e,rct,vH,owe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,ict),XI),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),La),Rs),un(qn)))),ca(e,ict,H_,hwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,R6t),XI),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),pe(-1)),gc),ja),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,j6t),XI),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),pe(-1)),gc),ja),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,$6t),P1e),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),pe(40)),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,sct),P1e),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),mCt),us),qlt),un(qn)))),ca(e,sct,H_,swe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,aH),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),vCt),us),qlt),un(qn)))),ca(e,aH,H_,nwe),ca(e,aH,vH,rwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,I4),F1e),"Node Placement Strategy"),"Strategy for node placement."),FCt),us),N9t),un(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,oH),F1e),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),La),Rs),un(qn)))),ca(e,oH,I4,Jwe),ca(e,oH,I4,tve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,act),N1e),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),ICt),us),$Tt),un(qn)))),ca(e,act,I4,Kwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,oct),N1e),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),OCt),us),GTt),un(qn)))),ca(e,oct,I4,Qwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,cct),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),Oo),la),un(qn)))),ca(e,cct,I4,nve),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,uct),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),us),yht),un(ea)))),ca(e,uct,I4,ave),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,lct),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),PCt),us),yht),un(qn)))),ca(e,lct,I4,sve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,z6t),B1e),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),CCt),us),W9t),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,q6t),B1e),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),_Ct),us),Y9t),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,cH),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),SCt),us),X9t),un(qn)))),ca(e,cH,QI,kwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,uH),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),Oo),la),un(qn)))),ca(e,uH,QI,Twe),ca(e,uH,cH,Cwe),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,hct),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),Oo),la),un(qn)))),ca(e,hct,QI,vwe),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,H6t),R1),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,V6t),R1),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,G6t),R1),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,U6t),R1),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,W6t),nkt),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),pe(0)),gc),ja),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Y6t),nkt),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),pe(0)),gc),ja),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,K6t),nkt),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),pe(0)),gc),ja),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,fct),rkt),Jfe),"Tries to further compact components (disconnected sub-graphs)."),!1),La),Rs),un(qn)))),ca(e,fct,R_,!0),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,X6t),R1e),"Post Compaction Strategy"),j1e),gCt),us),QTt),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Q6t),R1e),"Post Compaction Constraint Calculation"),j1e),dCt),us),LTt),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,lH),ikt),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,dct),ikt),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),pe(16)),gc),ja),un(qn)))),ca(e,dct,lH,!0),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,gct),ikt),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),pe(5)),gc),ja),un(qn)))),ca(e,gct,lH,!0),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,tg),skt),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),jCt),us),t_t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,hH),skt),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),Oo),la),un(qn)))),ca(e,hH,tg,mve),ca(e,hH,tg,yve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,fH),skt),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),Oo),la),un(qn)))),ca(e,fH,tg,kve),ca(e,fH,tg,Eve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,V_),$1e),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),RCt),us),OTt),un(qn)))),ca(e,V_,tg,Lve),ca(e,V_,tg,Mve),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,pct),$1e),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),V1),wh),un(qn)))),ca(e,pct,V_,Cve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,bct),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),BCt),gc),ja),un(qn)))),ca(e,bct,V_,Sve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,dH),z1e),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),$Ct),us),J9t),un(qn)))),ca(e,dH,tg,qve),ca(e,dH,tg,Hve),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,gH),z1e),"Valid Indices for Wrapping"),null),V1),wh),un(qn)))),ca(e,gH,tg,jve),ca(e,gH,tg,$ve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,pH),akt),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),La),Rs),un(qn)))),ca(e,pH,tg,Pve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,bH),akt),"Distance Penalty When Improving Cuts"),null),2),Oo),la),un(qn)))),ca(e,bH,tg,Ive),ca(e,bH,pH,!0),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,wct),akt),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),La),Rs),un(qn)))),ca(e,wct,tg,Nve),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Z6t),kct),"Edge Label Side Selection"),"Method to decide on edge label sides."),TCt),us),RTt),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,J6t),kct),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),ECt),us),b7),ji(qn,lt(ct(ip,1),oe,175,0,[rp]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,wH),ZI),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),wCt),us),H9t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,tkt),ZI),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),La),Rs),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,vct),ZI),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),pCt),us),F7t),un(qn)))),ca(e,vct,R_,null),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,ekt),ZI),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),bCt),us),P9t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,mct),ZI),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),Oo),la),un(qn)))),ca(e,mct,wH,null),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,yct),ZI),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),Oo),la),un(qn)))),ca(e,yct,wH,null),ife((new HB,e))};var H2e,V2e,G2e,dCt,U2e,gCt,W2e,pCt,Y2e,K2e,X2e,bCt,Q2e,Z2e,wCt,J2e,twe,ewe,vCt,nwe,rwe,iwe,mCt,swe,awe,owe,cwe,uwe,lwe,hwe,fwe,yCt,dwe,xCt,gwe,kCt,pwe,ECt,bwe,TCt,wwe,vwe,mwe,CCt,ywe,_Ct,xwe,SCt,kwe,Ewe,Twe,Cwe,_we,Swe,Awe,Lwe,Mwe,Dwe,ACt,Iwe,Owe,Pwe,Fwe,Nwe,Bwe,LCt,Rwe,jwe,$we,zwe,qwe,Hwe,Vwe,MCt,Gwe,DCt,Uwe,Wwe,Ywe,ICt,Kwe,Xwe,OCt,Qwe,Zwe,Jwe,tve,eve,nve,rve,ive,PCt,sve,ave,ove,FCt,cve,NCt,uve,lve,hve,fve,dve,gve,pve,bve,wve,vve,mve,yve,xve,kve,Eve,Tve,Cve,_ve,BCt,Sve,Ave,RCt,Lve,Mve,Dve,Ive,Ove,Pve,Fve,Nve,Bve,jCt,Rve,jve,$ve,zve,$Ct,qve,Hve;F(kc,"LayeredMetaDataProvider",848),D(986,1,Oh,HB),l.Qe=function(e){ife(e)};var Id,Zlt,rG,CS,iG,zCt,sG,q6,aG,qCt,HCt,Jlt,wb,tht,$y,VCt,DO,eht,GCt,Vve,oG,nht,_S,zy,Gve,Wl,UCt,WCt,cG,rht,Od,uG,eg,YCt,KCt,XCt,iht,sht,QCt,Jg,aht,ZCt,qy,JCt,t9t,e9t,lG,Hy,j2,n9t,r9t,So,i9t,Uve,uu,hG,s9t,a9t,o9t,oht,c9t,fG,u9t,l9t,dG,Nv,h9t,cht,SS,f9t,Bv,AS,gG,$2,uht,E7,pG,z2,d9t,g9t,p9t,T7,b9t,Wve,Yve,Kve,Xve,Rv,Vy,cs,tp,Qve,Gy,w9t,C7,v9t,Uy,Zve,_7,m9t,H6,Jve,tme,IO,lht,y9t,OO,Tf,J4,V6,jv,q2,bG,Wy,hht,S7,A7,$v,t5,fht,PO,LS,MS,dht,x9t,k9t,E9t,T9t,ght,C9t,_9t,S9t,A9t,pht,wG;F(kc,"LayeredOptions",986),D(987,1,{},fQ),l.$e=function(){var e;return e=new gqt,e},l._e=function(e){},F(kc,"LayeredOptions/LayeredFactory",987),D(1372,1,{}),l.a=0;var eme;F(Ec,"ElkSpacings/AbstractSpacingsBuilder",1372),D(779,1372,{},w3t);var vG,nme;F(kc,"LayeredSpacings/LayeredSpacingsBuilder",779),D(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},n9),l.Kf=function(){return Bce(this)},l.Xf=function(){return Bce(this)};var bht,L9t,M9t,mG,wht,D9t,I9t=jr(kc,"LayeringStrategy",313,Hr,Zan,GJe),rme;D(378,22,{3:1,35:1,22:1,378:1},jet);var vht,O9t,yG,P9t=jr(kc,"LongEdgeOrderingStrategy",378,Hr,Min,UJe),ime;D(197,22,{3:1,35:1,22:1,197:1},nj);var e5,n5,xG,mht,yht=jr(kc,"NodeFlexibility",197,Hr,Bsn,WJe),sme;D(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},LM),l.Kf=function(){return xce(this)},l.Xf=function(){return xce(this)};var DS,xht,kht,IS,F9t,N9t=jr(kc,"NodePlacementStrategy",315,Hr,yan,JJe),ame;D(260,22,{3:1,35:1,22:1,260:1},Ix);var B9t,FO,R9t,j9t,NO,$9t,kG,EG,z9t=jr(kc,"NodePromotionStrategy",260,Hr,Qon,KJe),ome;D(339,22,{3:1,35:1,22:1,339:1},$et);var q9t,vb,Eht,H9t=jr(kc,"OrderingStrategy",339,Hr,Rin,XJe),cme;D(421,22,{3:1,35:1,22:1,421:1},zbt);var Tht,Cht,V9t=jr(kc,"PortSortingStrategy",421,Hr,zrn,QJe),ume;D(452,22,{3:1,35:1,22:1,452:1},zet);var tl,nu,OS,lme=jr(kc,"PortType",452,Hr,Bin,YJe),hme;D(375,22,{3:1,35:1,22:1,375:1},qet);var G9t,_ht,U9t,W9t=jr(kc,"SelfLoopDistributionStrategy",375,Hr,jin,ZJe),fme;D(376,22,{3:1,35:1,22:1,376:1},qbt);var BO,Sht,Y9t=jr(kc,"SelfLoopOrderingStrategy",376,Hr,Nrn,ttn),dme;D(304,1,{304:1},ahe),F(kc,"Spacings",304),D(336,22,{3:1,35:1,22:1,336:1},Het);var Aht,K9t,PS,X9t=jr(kc,"SplineRoutingMode",336,Hr,zin,etn),gme;D(338,22,{3:1,35:1,22:1,338:1},Vet);var Lht,Q9t,Z9t,J9t=jr(kc,"ValidifyStrategy",338,Hr,qin,ntn),pme;D(377,22,{3:1,35:1,22:1,377:1},Get);var Yy,Mht,L7,t_t=jr(kc,"WrappingStrategy",377,Hr,$in,rtn),bme;D(1383,1,zc,att),l.Yf=function(e){return u(e,37),wme},l.pf=function(e,n){I3n(this,u(e,37),n)};var wme;F(xH,"DepthFirstCycleBreaker",1383),D(782,1,zc,evt),l.Yf=function(e){return u(e,37),vme},l.pf=function(e,n){Mxn(this,u(e,37),n)},l.Zf=function(e){return u(Ne(e,Zz(this.d,e.c.length)),10)};var vme;F(xH,"GreedyCycleBreaker",782),D(1386,782,zc,WGt),l.Zf=function(e){var n,r,s,o;for(o=null,n=wi,s=new S(e);s.a1&&(je(Re(Q(Na((An(0,e.c.length),u(e.c[0],10))),(Te(),$y))))?Dce(e,this.d,u(this,660)):(wn(),Zs(e,this.d)),Qne(this.e,e))},l.Sf=function(e,n,r,s){var o,h,d,v,k,C,M;for(n!=kKt(r,e.length)&&(h=e[n-(r?1:-1)],_mt(this.f,h,r?(so(),nu):(so(),tl))),o=e[n][0],M=!s||o.k==(Vn(),ks),C=A1(e[n]),this.ag(C,M,!1,r),d=0,k=new S(C);k.a"),e0?Crt(this.a,e[n-1],e[n]):!r&&n1&&(je(Re(Q(Na((An(0,e.c.length),u(e.c[0],10))),(Te(),$y))))?Dce(e,this.d,this):(wn(),Zs(e,this.d)),je(Re(Q(Na((An(0,e.c.length),u(e.c[0],10))),$y)))||Qne(this.e,e))},F(qu,"ModelOrderBarycenterHeuristic",660),D(1803,1,Oi,D$t),l.ue=function(e,n){return Ugn(this.a,u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(qu,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),D(1403,1,zc,ltt),l.Yf=function(e){var n;return u(e,37),n=pj(Dme),bi(n,(Wa(),cu),(ro(),IV)),n},l.pf=function(e,n){Drn((u(e,37),n))};var Dme;F(qu,"NoCrossingMinimizer",1403),D(796,402,qkt,hbt),l.$f=function(e,n,r){var s,o,h,d,v,k,C,M,j,H,G;switch(j=this.g,r.g){case 1:{for(o=0,h=0,M=new S(e.j);M.a1&&(o.j==(ve(),Hn)?this.b[e]=!0:o.j==Bn&&e>0&&(this.b[e-1]=!0))},l.f=0,F(c0,"AllCrossingsCounter",1798),D(587,1,{},gz),l.b=0,l.d=0,F(c0,"BinaryIndexedTree",587),D(524,1,{},YM);var r_t,CG;F(c0,"CrossingsCounter",524),D(1906,1,Oi,I$t),l.ue=function(e,n){return Pen(this.a,u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(c0,"CrossingsCounter/lambda$0$Type",1906),D(1907,1,Oi,O$t),l.ue=function(e,n){return Fen(this.a,u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(c0,"CrossingsCounter/lambda$1$Type",1907),D(1908,1,Oi,P$t),l.ue=function(e,n){return Nen(this.a,u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(c0,"CrossingsCounter/lambda$2$Type",1908),D(1909,1,Oi,F$t),l.ue=function(e,n){return Ben(this.a,u(e,11),u(n,11))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(c0,"CrossingsCounter/lambda$3$Type",1909),D(1910,1,Un,N$t),l.td=function(e){von(this.a,u(e,11))},F(c0,"CrossingsCounter/lambda$4$Type",1910),D(1911,1,li,B$t),l.Mb=function(e){return IXe(this.a,u(e,11))},F(c0,"CrossingsCounter/lambda$5$Type",1911),D(1912,1,Un,R$t),l.td=function(e){HGt(this,e)},F(c0,"CrossingsCounter/lambda$6$Type",1912),D(1913,1,Un,pGt),l.td=function(e){var n;k8(),Up(this.b,(n=this.a,u(e,11),n))},F(c0,"CrossingsCounter/lambda$7$Type",1913),D(826,1,xd,YN),l.Lb=function(e){return k8(),Us(u(e,11),(ae(),Ju))},l.Fb=function(e){return this===e},l.Mb=function(e){return k8(),Us(u(e,11),(ae(),Ju))},F(c0,"CrossingsCounter/lambda$8$Type",826),D(1905,1,{},j$t),F(c0,"HyperedgeCrossingsCounter",1905),D(467,1,{35:1,467:1},sYt),l.wd=function(e){return pfn(this,u(e,467))},l.b=0,l.c=0,l.e=0,l.f=0;var h6n=F(c0,"HyperedgeCrossingsCounter/Hyperedge",467);D(362,1,{35:1,362:1},f$),l.wd=function(e){return d2n(this,u(e,362))},l.b=0,l.c=0;var Ime=F(c0,"HyperedgeCrossingsCounter/HyperedgeCorner",362);D(523,22,{3:1,35:1,22:1,523:1},Hbt);var NS,BS,Ome=jr(c0,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,Hr,qrn,stn),Pme;D(1405,1,zc,stt),l.Yf=function(e){return u(Q(u(e,37),(ae(),Vc)),21).Hc((oo(),vh))?Fme:null},l.pf=function(e,n){Pdn(this,u(e,37),n)};var Fme;F(uo,"InteractiveNodePlacer",1405),D(1406,1,zc,itt),l.Yf=function(e){return u(Q(u(e,37),(ae(),Vc)),21).Hc((oo(),vh))?Nme:null},l.pf=function(e,n){v1n(this,u(e,37),n)};var Nme,_G,SG;F(uo,"LinearSegmentsNodePlacer",1406),D(257,1,{35:1,257:1},zpt),l.wd=function(e){return VKe(this,u(e,257))},l.Fb=function(e){var n;return _t(e,257)?(n=u(e,257),this.b==n.b):!1},l.Hb=function(){return this.b},l.Ib=function(){return"ls"+eb(this.e)},l.a=0,l.b=0,l.c=-1,l.d=-1,l.g=0;var Bme=F(uo,"LinearSegmentsNodePlacer/LinearSegment",257);D(1408,1,zc,IKt),l.Yf=function(e){return u(Q(u(e,37),(ae(),Vc)),21).Hc((oo(),vh))?Rme:null},l.pf=function(e,n){kxn(this,u(e,37),n)},l.b=0,l.g=0;var Rme;F(uo,"NetworkSimplexPlacer",1408),D(1427,1,Oi,wQ),l.ue=function(e,n){return pu(u(e,19).a,u(n,19).a)},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(uo,"NetworkSimplexPlacer/0methodref$compare$Type",1427),D(1429,1,Oi,vQ),l.ue=function(e,n){return pu(u(e,19).a,u(n,19).a)},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(uo,"NetworkSimplexPlacer/1methodref$compare$Type",1429),D(649,1,{649:1},bGt);var f6n=F(uo,"NetworkSimplexPlacer/EdgeRep",649);D(401,1,{401:1},Ovt),l.b=!1;var d6n=F(uo,"NetworkSimplexPlacer/NodeRep",401);D(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},Cqt),F(uo,"NetworkSimplexPlacer/Path",508),D(1409,1,{},mQ),l.Kb=function(e){return u(e,17).d.i.k},F(uo,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),D(1410,1,li,yQ),l.Mb=function(e){return u(e,267)==(Vn(),ta)},F(uo,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),D(1411,1,{},xQ),l.Kb=function(e){return u(e,17).d.i},F(uo,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),D(1412,1,li,$$t),l.Mb=function(e){return HWt(Aie(u(e,10)))},F(uo,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),D(1413,1,li,kQ),l.Mb=function(e){return Een(u(e,11))},F(uo,"NetworkSimplexPlacer/lambda$0$Type",1413),D(1414,1,Un,wGt),l.td=function(e){yQe(this.a,this.b,u(e,11))},F(uo,"NetworkSimplexPlacer/lambda$1$Type",1414),D(1423,1,Un,z$t),l.td=function(e){$pn(this.a,u(e,17))},F(uo,"NetworkSimplexPlacer/lambda$10$Type",1423),D(1424,1,{},EQ),l.Kb=function(e){return Fl(),new Tn(null,new _n(u(e,29).a,16))},F(uo,"NetworkSimplexPlacer/lambda$11$Type",1424),D(1425,1,Un,q$t),l.td=function(e){Nvn(this.a,u(e,10))},F(uo,"NetworkSimplexPlacer/lambda$12$Type",1425),D(1426,1,{},TQ),l.Kb=function(e){return Fl(),pe(u(e,121).e)},F(uo,"NetworkSimplexPlacer/lambda$13$Type",1426),D(1428,1,{},CQ),l.Kb=function(e){return Fl(),pe(u(e,121).e)},F(uo,"NetworkSimplexPlacer/lambda$15$Type",1428),D(1430,1,li,_Q),l.Mb=function(e){return Fl(),u(e,401).c.k==(Vn(),Os)},F(uo,"NetworkSimplexPlacer/lambda$17$Type",1430),D(1431,1,li,SQ),l.Mb=function(e){return Fl(),u(e,401).c.j.c.length>1},F(uo,"NetworkSimplexPlacer/lambda$18$Type",1431),D(1432,1,Un,jXt),l.td=function(e){_hn(this.c,this.b,this.d,this.a,u(e,401))},l.c=0,l.d=0,F(uo,"NetworkSimplexPlacer/lambda$19$Type",1432),D(1415,1,{},AQ),l.Kb=function(e){return Fl(),new Tn(null,new _n(u(e,29).a,16))},F(uo,"NetworkSimplexPlacer/lambda$2$Type",1415),D(1433,1,Un,H$t),l.td=function(e){vQe(this.a,u(e,11))},l.a=0,F(uo,"NetworkSimplexPlacer/lambda$20$Type",1433),D(1434,1,{},nx),l.Kb=function(e){return Fl(),new Tn(null,new _n(u(e,29).a,16))},F(uo,"NetworkSimplexPlacer/lambda$21$Type",1434),D(1435,1,Un,V$t),l.td=function(e){OQe(this.a,u(e,10))},F(uo,"NetworkSimplexPlacer/lambda$22$Type",1435),D(1436,1,li,KN),l.Mb=function(e){return HWt(e)},F(uo,"NetworkSimplexPlacer/lambda$23$Type",1436),D(1437,1,{},LQ),l.Kb=function(e){return Fl(),new Tn(null,new _n(u(e,29).a,16))},F(uo,"NetworkSimplexPlacer/lambda$24$Type",1437),D(1438,1,li,G$t),l.Mb=function(e){return jXe(this.a,u(e,10))},F(uo,"NetworkSimplexPlacer/lambda$25$Type",1438),D(1439,1,Un,vGt),l.td=function(e){cpn(this.a,this.b,u(e,10))},F(uo,"NetworkSimplexPlacer/lambda$26$Type",1439),D(1440,1,li,MQ),l.Mb=function(e){return Fl(),!Ga(u(e,17))},F(uo,"NetworkSimplexPlacer/lambda$27$Type",1440),D(1441,1,li,DQ),l.Mb=function(e){return Fl(),!Ga(u(e,17))},F(uo,"NetworkSimplexPlacer/lambda$28$Type",1441),D(1442,1,{},U$t),l.Ce=function(e,n){return MQe(this.a,u(e,29),u(n,29))},F(uo,"NetworkSimplexPlacer/lambda$29$Type",1442),D(1416,1,{},XN),l.Kb=function(e){return Fl(),new Tn(null,new jw(new ar(lr(Ds(u(e,10)).a.Kc(),new z))))},F(uo,"NetworkSimplexPlacer/lambda$3$Type",1416),D(1417,1,li,IQ),l.Mb=function(e){return Fl(),wsn(u(e,17))},F(uo,"NetworkSimplexPlacer/lambda$4$Type",1417),D(1418,1,Un,W$t),l.td=function(e){Fyn(this.a,u(e,17))},F(uo,"NetworkSimplexPlacer/lambda$5$Type",1418),D(1419,1,{},WT),l.Kb=function(e){return Fl(),new Tn(null,new _n(u(e,29).a,16))},F(uo,"NetworkSimplexPlacer/lambda$6$Type",1419),D(1420,1,li,OQ),l.Mb=function(e){return Fl(),u(e,10).k==(Vn(),Os)},F(uo,"NetworkSimplexPlacer/lambda$7$Type",1420),D(1421,1,{},PQ),l.Kb=function(e){return Fl(),new Tn(null,new jw(new ar(lr(U0(u(e,10)).a.Kc(),new z))))},F(uo,"NetworkSimplexPlacer/lambda$8$Type",1421),D(1422,1,li,FQ),l.Mb=function(e){return Fl(),wen(u(e,17))},F(uo,"NetworkSimplexPlacer/lambda$9$Type",1422),D(1404,1,zc,vC),l.Yf=function(e){return u(Q(u(e,37),(ae(),Vc)),21).Hc((oo(),vh))?jme:null},l.pf=function(e,n){b3n(u(e,37),n)};var jme;F(uo,"SimpleNodePlacer",1404),D(180,1,{180:1},E4),l.Ib=function(){var e;return e="",this.c==(bd(),zv)?e+=x6:this.c==ep&&(e+=y6),this.o==(C1(),H2)?e+=Dot:this.o==H1?e+="UP":e+="BALANCED",e},F(ub,"BKAlignedLayout",180),D(516,22,{3:1,35:1,22:1,516:1},Gbt);var ep,zv,$me=jr(ub,"BKAlignedLayout/HDirection",516,Hr,Vrn,atn),zme;D(515,22,{3:1,35:1,22:1,515:1},Vbt);var H2,H1,qme=jr(ub,"BKAlignedLayout/VDirection",515,Hr,Grn,otn),Hme;D(1634,1,{},mGt),F(ub,"BKAligner",1634),D(1637,1,{},Zse),F(ub,"BKCompactor",1637),D(654,1,{654:1},NQ),l.a=0,F(ub,"BKCompactor/ClassEdge",654),D(458,1,{458:1},Eqt),l.a=null,l.b=0,F(ub,"BKCompactor/ClassNode",458),D(1407,1,zc,GGt),l.Yf=function(e){return u(Q(u(e,37),(ae(),Vc)),21).Hc((oo(),vh))?Vme:null},l.pf=function(e,n){Bxn(this,u(e,37),n)},l.d=!1;var Vme;F(ub,"BKNodePlacer",1407),D(1635,1,{},BQ),l.d=0,F(ub,"NeighborhoodInformation",1635),D(1636,1,Oi,Y$t),l.ue=function(e,n){return Von(this,u(e,46),u(n,46))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(ub,"NeighborhoodInformation/NeighborComparator",1636),D(808,1,{}),F(ub,"ThresholdStrategy",808),D(1763,808,{},Aqt),l.bg=function(e,n,r){return this.a.o==(C1(),H1)?as:Cs},l.cg=function(){},F(ub,"ThresholdStrategy/NullThresholdStrategy",1763),D(579,1,{579:1},yGt),l.c=!1,l.d=!1,F(ub,"ThresholdStrategy/Postprocessable",579),D(1764,808,{},Lqt),l.bg=function(e,n,r){var s,o,h;return o=n==r,s=this.a.a[r.p]==n,o||s?(h=e,this.a.c==(bd(),zv)?(o&&(h=Dat(this,n,!0)),!isNaN(h)&&!isFinite(h)&&s&&(h=Dat(this,r,!1))):(o&&(h=Dat(this,n,!0)),!isNaN(h)&&!isFinite(h)&&s&&(h=Dat(this,r,!1))),h):e},l.cg=function(){for(var e,n,r,s,o;this.d.b!=0;)o=u(oin(this.d),579),s=mle(this,o),s.a&&(e=s.a,r=je(this.a.f[this.a.g[o.b.p].p]),!(!r&&!Ga(e)&&e.c.i.c==e.d.i.c)&&(n=_ce(this,o),n||WXe(this.e,o)));for(;this.e.a.c.length!=0;)_ce(this,u(Nre(this.e),579))},F(ub,"ThresholdStrategy/SimpleThresholdStrategy",1764),D(635,1,{635:1,246:1,234:1},RQ),l.Kf=function(){return Une(this)},l.Xf=function(){return Une(this)};var Dht;F(Sct,"EdgeRouterFactory",635),D(1458,1,zc,od),l.Yf=function(e){return pvn(u(e,37))},l.pf=function(e,n){E3n(u(e,37),n)};var Gme,Ume,Wme,Yme,Kme,i_t,Xme,Qme;F(Sct,"OrthogonalEdgeRouter",1458),D(1451,1,zc,UGt),l.Yf=function(e){return jdn(u(e,37))},l.pf=function(e,n){H5n(this,u(e,37),n)};var Zme,Jme,tye,eye,jO,nye;F(Sct,"PolylineEdgeRouter",1451),D(1452,1,xd,jQ),l.Lb=function(e){return yyt(u(e,10))},l.Fb=function(e){return this===e},l.Mb=function(e){return yyt(u(e,10))},F(Sct,"PolylineEdgeRouter/1",1452),D(1809,1,li,$Q),l.Mb=function(e){return u(e,129).c==(Uf(),mb)},F(t1,"HyperEdgeCycleDetector/lambda$0$Type",1809),D(1810,1,{},zQ),l.Ge=function(e){return u(e,129).d},F(t1,"HyperEdgeCycleDetector/lambda$1$Type",1810),D(1811,1,li,qQ),l.Mb=function(e){return u(e,129).c==(Uf(),mb)},F(t1,"HyperEdgeCycleDetector/lambda$2$Type",1811),D(1812,1,{},rx),l.Ge=function(e){return u(e,129).d},F(t1,"HyperEdgeCycleDetector/lambda$3$Type",1812),D(1813,1,{},HQ),l.Ge=function(e){return u(e,129).d},F(t1,"HyperEdgeCycleDetector/lambda$4$Type",1813),D(1814,1,{},VQ),l.Ge=function(e){return u(e,129).d},F(t1,"HyperEdgeCycleDetector/lambda$5$Type",1814),D(112,1,{35:1,112:1},PD),l.wd=function(e){return GKe(this,u(e,112))},l.Fb=function(e){var n;return _t(e,112)?(n=u(e,112),this.g==n.g):!1},l.Hb=function(){return this.g},l.Ib=function(){var e,n,r,s;for(e=new Ol("{"),s=new S(this.n);s.a"+this.b+" ("+nZe(this.c)+")"},l.d=0,F(t1,"HyperEdgeSegmentDependency",129),D(520,22,{3:1,35:1,22:1,520:1},Ubt);var mb,Ky,rye=jr(t1,"HyperEdgeSegmentDependency/DependencyType",520,Hr,Hrn,ctn),iye;D(1815,1,{},K$t),F(t1,"HyperEdgeSegmentSplitter",1815),D(1816,1,{},_Ht),l.a=0,l.b=0,F(t1,"HyperEdgeSegmentSplitter/AreaRating",1816),D(329,1,{329:1},Dnt),l.a=0,l.b=0,l.c=0,F(t1,"HyperEdgeSegmentSplitter/FreeArea",329),D(1817,1,Oi,QQ),l.ue=function(e,n){return ZZe(u(e,112),u(n,112))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(t1,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),D(1818,1,Un,$Xt),l.td=function(e){ran(this.a,this.d,this.c,this.b,u(e,112))},l.b=0,F(t1,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),D(1819,1,{},ZQ),l.Kb=function(e){return new Tn(null,new _n(u(e,112).e,16))},F(t1,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),D(1820,1,{},JQ),l.Kb=function(e){return new Tn(null,new _n(u(e,112).j,16))},F(t1,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),D(1821,1,{},tZ),l.Fe=function(e){return Xt(ye(e))},F(t1,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),D(655,1,{},ert),l.a=0,l.b=0,l.c=0,F(t1,"OrthogonalRoutingGenerator",655),D(1638,1,{},eZ),l.Kb=function(e){return new Tn(null,new _n(u(e,112).e,16))},F(t1,"OrthogonalRoutingGenerator/lambda$0$Type",1638),D(1639,1,{},nZ),l.Kb=function(e){return new Tn(null,new _n(u(e,112).j,16))},F(t1,"OrthogonalRoutingGenerator/lambda$1$Type",1639),D(661,1,{}),F(Act,"BaseRoutingDirectionStrategy",661),D(1807,661,{},Mqt),l.dg=function(e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt;if(!(e.r&&!e.q))for(M=n+e.o*r,C=new S(e.n);C.aEd&&(h=M,o=e,s=new $e(j,h),ri(d.a,s),pv(this,d,o,s,!1),H=e.r,H&&(G=Xt(ye(Zf(H.e,0))),s=new $e(G,h),ri(d.a,s),pv(this,d,o,s,!1),h=n+H.o*r,o=H,s=new $e(G,h),ri(d.a,s),pv(this,d,o,s,!1)),s=new $e(tt,h),ri(d.a,s),pv(this,d,o,s,!1)))},l.eg=function(e){return e.i.n.a+e.n.a+e.a.a},l.fg=function(){return ve(),mr},l.gg=function(){return ve(),Pn},F(Act,"NorthToSouthRoutingStrategy",1807),D(1808,661,{},Dqt),l.dg=function(e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt;if(!(e.r&&!e.q))for(M=n-e.o*r,C=new S(e.n);C.aEd&&(h=M,o=e,s=new $e(j,h),ri(d.a,s),pv(this,d,o,s,!1),H=e.r,H&&(G=Xt(ye(Zf(H.e,0))),s=new $e(G,h),ri(d.a,s),pv(this,d,o,s,!1),h=n-H.o*r,o=H,s=new $e(G,h),ri(d.a,s),pv(this,d,o,s,!1)),s=new $e(tt,h),ri(d.a,s),pv(this,d,o,s,!1)))},l.eg=function(e){return e.i.n.a+e.n.a+e.a.a},l.fg=function(){return ve(),Pn},l.gg=function(){return ve(),mr},F(Act,"SouthToNorthRoutingStrategy",1808),D(1806,661,{},Iqt),l.dg=function(e,n,r){var s,o,h,d,v,k,C,M,j,H,G,K,tt;if(!(e.r&&!e.q))for(M=n+e.o*r,C=new S(e.n);C.aEd&&(h=M,o=e,s=new $e(h,j),ri(d.a,s),pv(this,d,o,s,!0),H=e.r,H&&(G=Xt(ye(Zf(H.e,0))),s=new $e(h,G),ri(d.a,s),pv(this,d,o,s,!0),h=n+H.o*r,o=H,s=new $e(h,G),ri(d.a,s),pv(this,d,o,s,!0)),s=new $e(h,tt),ri(d.a,s),pv(this,d,o,s,!0)))},l.eg=function(e){return e.i.n.b+e.n.b+e.a.b},l.fg=function(){return ve(),Hn},l.gg=function(){return ve(),Bn},F(Act,"WestToEastRoutingStrategy",1806),D(813,1,{},fxt),l.Ib=function(){return eb(this.a)},l.b=0,l.c=!1,l.d=!1,l.f=0,F(Sy,"NubSpline",813),D(407,1,{407:1},eue,yQt),F(Sy,"NubSpline/PolarCP",407),D(1453,1,zc,Vse),l.Yf=function(e){return A0n(u(e,37))},l.pf=function(e,n){cxn(this,u(e,37),n)};var sye,aye,oye,cye,uye;F(Sy,"SplineEdgeRouter",1453),D(268,1,{268:1},R$),l.Ib=function(){return this.a+" ->("+this.c+") "+this.b},l.c=0,F(Sy,"SplineEdgeRouter/Dependency",268),D(455,22,{3:1,35:1,22:1,455:1},Wbt);var yb,r5,lye=jr(Sy,"SplineEdgeRouter/SideToProcess",455,Hr,Urn,utn),hye;D(1454,1,li,XQ),l.Mb=function(e){return m_(),!u(e,128).o},F(Sy,"SplineEdgeRouter/lambda$0$Type",1454),D(1455,1,{},KQ),l.Ge=function(e){return m_(),u(e,128).v+1},F(Sy,"SplineEdgeRouter/lambda$1$Type",1455),D(1456,1,Un,xGt),l.td=function(e){men(this.a,this.b,u(e,46))},F(Sy,"SplineEdgeRouter/lambda$2$Type",1456),D(1457,1,Un,kGt),l.td=function(e){yen(this.a,this.b,u(e,46))},F(Sy,"SplineEdgeRouter/lambda$3$Type",1457),D(128,1,{35:1,128:1},voe,vxt),l.wd=function(e){return UKe(this,u(e,128))},l.b=0,l.e=!1,l.f=0,l.g=0,l.j=!1,l.k=!1,l.n=0,l.o=!1,l.p=!1,l.q=!1,l.s=0,l.u=0,l.v=0,l.F=0,F(Sy,"SplineSegment",128),D(459,1,{459:1},YT),l.a=0,l.b=!1,l.c=!1,l.d=!1,l.e=!1,l.f=0,F(Sy,"SplineSegment/EdgeInformation",459),D(1234,1,{},GQ),F(G_,d6t,1234),D(1235,1,Oi,UQ),l.ue=function(e,n){return nbn(u(e,135),u(n,135))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(G_,n1e,1235),D(1233,1,{},qHt),F(G_,"MrTree",1233),D(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},rj),l.Kf=function(){return Hoe(this)},l.Xf=function(){return Hoe(this)};var AG,RS,$O,jS,s_t=jr(G_,"TreeLayoutPhases",393,Hr,Rsn,ltn),fye;D(1130,209,S2,cYt),l.Ze=function(e,n){var r,s,o,h,d,v,k;for(je(Re(qe(e,(gv(),h_t))))||y$((r=new rr((Pm(),new Mm(e))),r)),d=(v=new j$,Mo(v,e),Jt(v,(fc(),qS),e),k=new _r,Wmn(e,v,k),lyn(e,v,k),v),h=ryn(this.a,d),o=new S(h);o.a"+S$(this.c):"e_"+Hi(this)},F(U_,"TEdge",188),D(135,134,{3:1,135:1,94:1,134:1},j$),l.Ib=function(){var e,n,r,s,o;for(o=null,s=ei(this.b,0);s.b!=s.d.c;)r=u(ti(s),86),o+=(r.c==null||r.c.length==0?"n_"+r.g:"n_"+r.c)+` -`;for(n=ei(this.a,0);n.b!=n.d.c;)e=u(ti(n),188),o+=(e.b&&e.c?S$(e.b)+"->"+S$(e.c):"e_"+Hi(e))+` -`;return o};var g6n=F(U_,"TGraph",135);D(633,502,{3:1,502:1,633:1,94:1,134:1}),F(U_,"TShape",633),D(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},Dit),l.Ib=function(){return S$(this)};var p6n=F(U_,"TNode",86);D(255,1,r0,Lp),l.Jc=function(e){va(this,e)},l.Kc=function(){var e;return e=ei(this.a.d,0),new Ex(e)},F(U_,"TNode/2",255),D(358,1,sa,Ex),l.Nb=function(e){ba(this,e)},l.Pb=function(){return u(ti(this.a),188).c},l.Ob=function(){return OR(this.a)},l.Qb=function(){tz(this.a)},F(U_,"TNode/2/1",358),D(1840,1,os,oYt),l.pf=function(e,n){_yn(this,u(e,135),n)},F(A6,"FanProcessor",1840),D(327,22,{3:1,35:1,22:1,327:1,234:1},r9),l.Kf=function(){switch(this.g){case 0:return new Wqt;case 1:return new oYt;case 2:return new ix;case 3:return new rZ;case 4:return new sZ;case 5:return new RL;default:throw it(new Fn(Yot+(this.f!=null?this.f:""+this.g)))}};var Iht,Oht,Pht,Fht,Nht,LG,dye=jr(A6,T6t,327,Hr,ton,htn),gye;D(1843,1,os,rZ),l.pf=function(e,n){c2n(this,u(e,135),n)},l.a=0,F(A6,"LevelHeightProcessor",1843),D(1844,1,r0,iZ),l.Jc=function(e){va(this,e)},l.Kc=function(){return wn(),h8(),a7},F(A6,"LevelHeightProcessor/1",1844),D(1841,1,os,ix),l.pf=function(e,n){ppn(this,u(e,135),n)},l.a=0,F(A6,"NeighborsProcessor",1841),D(1842,1,r0,QN),l.Jc=function(e){va(this,e)},l.Kc=function(){return wn(),h8(),a7},F(A6,"NeighborsProcessor/1",1842),D(1845,1,os,sZ),l.pf=function(e,n){o2n(this,u(e,135),n)},l.a=0,F(A6,"NodePositionProcessor",1845),D(1839,1,os,Wqt),l.pf=function(e,n){O3n(this,u(e,135))},F(A6,"RootProcessor",1839),D(1846,1,os,RL),l.pf=function(e,n){qln(u(e,135))},F(A6,"Untreeifyer",1846);var zO,$S,pye,Bht,MG,zS,Rht,DG,IG,M7,qS,OG,np,a_t,bye,jht,Xy,$ht,o_t;D(851,1,Oh,D3),l.Qe=function(e){an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Hkt),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),u_t),(Ug(),us)),b_t),un((Qf(),qn))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Vkt),""),"Search Order"),"Which search order to use when computing a spanning tree."),c_t),us),v_t),un(qn)))),phe((new JL,e))};var wye,c_t,vye,u_t;F(EH,"MrTreeMetaDataProvider",851),D(994,1,Oh,JL),l.Qe=function(e){phe(e)};var mye,l_t,yye,xye,kye,Eye,h_t,Tye,f_t,Cye,PG,d_t,_ye,g_t,Sye;F(EH,"MrTreeOptions",994),D(995,1,{},aZ),l.$e=function(){var e;return e=new cYt,e},l._e=function(e){},F(EH,"MrTreeOptions/MrtreeFactory",995),D(480,22,{3:1,35:1,22:1,480:1},Ybt);var zht,p_t,b_t=jr(EH,"OrderWeighting",480,Hr,Yrn,ftn),Aye;D(425,22,{3:1,35:1,22:1,425:1},Kbt);var w_t,qht,v_t=jr(EH,"TreeifyingOrder",425,Hr,Wrn,gtn),Lye;D(1459,1,zc,ZL),l.Yf=function(e){return u(e,135),Mye},l.pf=function(e,n){zcn(this,u(e,135),n)};var Mye;F("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),D(1460,1,zc,ctt),l.Yf=function(e){return u(e,135),Dye},l.pf=function(e,n){Cpn(this,u(e,135),n)};var Dye;F("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),D(1461,1,zc,ott),l.Yf=function(e){return u(e,135),Iye},l.pf=function(e,n){qvn(this,u(e,135),n)},l.a=0;var Iye;F("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),D(1462,1,zc,GB),l.Yf=function(e){return u(e,135),Oye},l.pf=function(e,n){gdn(u(e,135),n)};var Oye;F("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462);var HS;D(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},Xbt),l.Kf=function(){return xie(this)},l.Xf=function(){return xie(this)};var FG,D7,m_t=jr(Gkt,"RadialLayoutPhases",495,Hr,Krn,dtn),Pye;D(1131,209,S2,zHt),l.Ze=function(e,n){var r,s,o,h,d,v;if(r=Toe(this,e),vr(n,"Radial layout",r.c.length),je(Re(qe(e,(uy(),L_t))))||y$((s=new rr((Pm(),new Mm(e))),s)),v=D0n(e),wo(e,(m9(),HS),v),!v)throw it(new Fn("The given graph is not a tree!"));for(o=Xt(ye(qe(e,RG))),o==0&&(o=Roe(e)),wo(e,RG,o),d=new S(Toe(this,e));d.a0&&Ure((Rr(n-1,e.length),e.charCodeAt(n-1)),d1e);)--n;if(s>=n)throw it(new Fn("The given string does not contain any numbers."));if(o=vy(e.substr(s,n-s),`,|;|\r| -`),o.length!=2)throw it(new Fn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=dy(fy(o[0])),this.b=dy(fy(o[1]))}catch(h){throw h=Wi(h),_t(h,127)?(r=h,it(new Fn(g1e+r))):it(h)}},l.Ib=function(){return"("+this.a+","+this.b+")"},l.a=0,l.b=0;var Ws=F(WI,"KVector",8);D(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},Pu,DR,MWt),l.Pc=function(){return tln(this)},l.Jf=function(e){var n,r,s,o,h,d;s=vy(e,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | -`),Ah(this);try{for(r=0,h=0,o=0,d=0;r0&&(h%2==0?o=dy(s[r]):d=dy(s[r]),h>0&&h%2!=0&&ri(this,new $e(o,d)),++h),++r}catch(v){throw v=Wi(v),_t(v,127)?(n=v,it(new Fn("The given string does not match the expected format for vectors."+n))):it(v)}},l.Ib=function(){var e,n,r;for(e=new Ol("("),n=ei(this,0);n.b!=n.d.c;)r=u(ti(n),8),Gr(e,r.a+","+r.b),n.b!=n.d.c&&(e.a+="; ");return(e.a+=")",e).a};var ASt=F(WI,"KVectorChain",74);D(248,22,{3:1,35:1,22:1,248:1},i9);var uft,GG,UG,GO,UO,WG,LSt=jr(Fh,"Alignment",248,Hr,Yan,Dtn),J3e;D(979,1,Oh,htt),l.Qe=function(e){lle(e)};var MSt,lft,t4e,DSt,ISt,e4e,OSt,n4e,r4e,PSt,FSt,i4e;F(Fh,"BoxLayouterOptions",979),D(980,1,{},qZ),l.$e=function(){var e;return e=new YZ,e},l._e=function(e){},F(Fh,"BoxLayouterOptions/BoxFactory",980),D(291,22,{3:1,35:1,22:1,291:1},s9);var WO,hft,YO,KO,XO,fft,dft=jr(Fh,"ContentAlignment",291,Hr,Wan,Itn),s4e;D(684,1,Oh,Tp),l.Qe=function(e){an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,ude),""),"Layout Algorithm"),"Select a specific layout algorithm."),(Ug(),I7)),Ae),un((Qf(),qn))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,lde),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),V1),v6n),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,xkt),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),NSt),us),LSt),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,E6),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,p8t),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),V1),ASt),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,mH),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),RSt),U6),dft),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,JI),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Nn(),!1)),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Tkt),""),i6t),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),jSt),us),XS),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,QI),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),qSt),us),_ft),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,CH),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,vH),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),USt),us),DAt),ji(qn,lt(ct(ip,1),oe,175,0,[ea]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,xv),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),nAt),V1),B7t),ji(qn,lt(ct(ip,1),oe,175,0,[ea]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,GI),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,_ct),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,j_),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Got),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oAt),us),PAt),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,yH),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),V1),Ws),ji(ea,lt(ct(ip,1),oe,175,0,[V2,rp]))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,VI),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),gc),ja),ji(ea,lt(ct(ip,1),oe,175,0,[Pd]))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,tH),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,R_),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Okt),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),YSt),V1),ASt),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Nkt),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),La),Rs),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Bkt),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),La),Rs),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Uxn),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),V1),E6n),ji(qn,lt(ct(ip,1),oe,175,0,[rp]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,jkt),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),KSt),V1),N7t),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,mkt),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),La),Rs),ji(ea,lt(ct(ip,1),oe,175,0,[Pd,V2,rp]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,hde),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),Oo),la),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,fde),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,dde),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),pe(100)),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,gde),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,pde),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),pe(4e3)),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,bde),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),pe(400)),gc),ja),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,wde),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,vde),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,mde),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,yde),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,g8t),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),BSt),us),$At),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,okt),R1),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,ckt),R1),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,jot),R1),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,ukt),R1),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Vot),R1),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,lkt),R1),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,hkt),R1),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,gkt),R1),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,fkt),R1),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,dkt),R1),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Cy),R1),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,pkt),R1),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),Oo),la),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,bkt),R1),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),Oo),la),ji(qn,lt(ct(ip,1),oe,175,0,[ea]))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,wkt),R1),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),V1),$4e),ji(ea,lt(ct(ip,1),oe,175,0,[Pd,V2,rp]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,$kt),R1),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),wAt),V1),N7t),un(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Cct),Ede),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),gc),ja),ji(qn,lt(ct(ip,1),oe,175,0,[ea]))))),ca(e,Cct,Tct,d4e),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Tct),Ede),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),rAt),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Ckt),Tde),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),QSt),V1),B7t),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,UE),Tde),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),ZSt),U6),lo),ji(ea,lt(ct(ip,1),oe,175,0,[rp]))))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Akt),SH),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),sAt),us),tA),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Lkt),SH),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),us),tA),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Mkt),SH),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),us),tA),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Dkt),SH),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),us),tA),un(ea)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Ikt),SH),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),us),tA),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,D4),Gct),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),JSt),U6),rA),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,T6),Gct),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),eAt),U6),NAt),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,C6),Gct),"Node Size Minimum"),"The minimal size to which a node can be reduced."),tAt),V1),Ws),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Ect),Gct),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),La),Rs),un(qn)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Pkt),kct),"Edge Label Placement"),"Gives a hint on where to put edge labels."),$St),us),mAt),un(rp)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,eH),kct),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),La),Rs),un(rp)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Wxn),"font"),"Font Name"),"Font name used for a label."),I7),Ae),un(rp)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,xde),"font"),"Font Size"),"Font size used for a label."),gc),ja),un(rp)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Rkt),Uct),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),V1),Ws),un(V2)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,Fkt),Uct),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),gc),ja),un(V2)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,ykt),Uct),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),lAt),us),Xa),un(V2)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,vkt),Uct),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),Oo),la),un(V2)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,WE),b8t),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),cAt),U6),eU),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,_kt),b8t),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),La),Rs),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Skt),b8t),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),La),Rs),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,kkt),Cde),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),La),Rs),un(ea)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,Ekt),Cde),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),La),Rs),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,$ot),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),Oo),la),un(Pd)))),an(e,new Xe(rn(nn(sn(kn(Ze(en(Je(tn(new Ue,kde),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),VSt),us),CAt),un(Pd)))),WC(e,new Yx(zC(o8(a8(new xm,Gn),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),WC(e,new Yx(zC(o8(a8(new xm,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),WC(e,new Yx(zC(o8(a8(new xm,Vl),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),WC(e,new Yx(zC(o8(a8(new xm,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),WC(e,new Yx(zC(o8(a8(new xm,K1e),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),WC(e,new Yx(zC(o8(a8(new xm,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),WC(e,new Yx(zC(o8(a8(new xm,Sd),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),Kue((new QB,e)),lle((new htt,e)),Cue((new ZB,e))};var YS,a4e,NSt,W6,o4e,c4e,BSt,u4e,YG,RSt,QO,qv,jSt,gft,pft,$St,zSt,qSt,HSt,VSt,GSt,s5,USt,l4e,ZO,bft,KG,WSt,a5,YSt,JO,KSt,XSt,QSt,o5,ZSt,G2,JSt,XG,c5,tAt,xb,eAt,QG,tP,U2,nAt,h4e,rAt,f4e,d4e,iAt,sAt,wft,vft,mft,yft,aAt,dl,KS,oAt,xft,kft,Qy,cAt,uAt,u5,lAt,Y6,ZG,Eft,O7,g4e,Tft,p4e,b4e,hAt,w4e,fAt,v4e,K6,dAt,JG,gAt,pAt,W2,m4e,bAt,wAt,vAt;F(Fh,"CoreOptions",684),D(103,22,{3:1,35:1,22:1,103:1},PM);var ng,zh,Cf,h0,rg,XS=jr(Fh,i6t,103,Hr,ban,Ftn),y4e;D(272,22,{3:1,35:1,22:1,272:1},Zet);var P7,Zy,F7,mAt=jr(Fh,"EdgeLabelPlacement",272,Hr,Xin,Ntn),x4e;D(218,22,{3:1,35:1,22:1,218:1},sj);var N7,eP,X6,Cft,_ft=jr(Fh,"EdgeRouting",218,Hr,qsn,Btn),k4e;D(312,22,{3:1,35:1,22:1,312:1},a9);var yAt,xAt,kAt,EAt,Sft,TAt,CAt=jr(Fh,"EdgeType",312,Hr,non,Rtn),E4e;D(977,1,Oh,QB),l.Qe=function(e){Kue(e)};var _At,SAt,AAt,LAt,T4e,MAt,QS;F(Fh,"FixedLayouterOptions",977),D(978,1,{},qL),l.$e=function(){var e;return e=new UZ,e},l._e=function(e){},F(Fh,"FixedLayouterOptions/FixedFactory",978),D(334,22,{3:1,35:1,22:1,334:1},Jet);var sp,tU,ZS,DAt=jr(Fh,"HierarchyHandling",334,Hr,Kin,jtn),C4e;D(285,22,{3:1,35:1,22:1,285:1},aj);var f0,kb,nP,rP,_4e=jr(Fh,"LabelSide",285,Hr,zsn,$tn),S4e;D(93,22,{3:1,35:1,22:1,93:1},q3);var ig,_f,qh,Sf,Yl,Af,Hh,d0,Lf,lo=jr(Fh,"NodeLabelPlacement",93,Hr,scn,ztn),A4e;D(249,22,{3:1,35:1,22:1,249:1},FM);var IAt,JS,Eb,OAt,iP,tA=jr(Fh,"PortAlignment",249,Hr,wan,qtn),L4e;D(98,22,{3:1,35:1,22:1,98:1},o9);var Y2,Gc,g0,B7,G1,Tb,PAt=jr(Fh,"PortConstraints",98,Hr,jan,Htn),M4e;D(273,22,{3:1,35:1,22:1,273:1},c9);var eA,nA,sg,sP,Cb,Q6,eU=jr(Fh,"PortLabelPlacement",273,Hr,eon,Vtn),D4e;D(61,22,{3:1,35:1,22:1,61:1},NM);var Hn,Pn,mh,yh,Su,lu,U1,Mf,el,Vu,Uc,nl,Au,Lu,Df,Kl,Xl,Vh,mr,Zo,Bn,Xa=jr(Fh,"PortSide",61,Hr,dan,Wtn),I4e;D(981,1,Oh,ZB),l.Qe=function(e){Cue(e)};var O4e,P4e,FAt,F4e,N4e;F(Fh,"RandomLayouterOptions",981),D(982,1,{},ZZ),l.$e=function(){var e;return e=new tJ,e},l._e=function(e){},F(Fh,"RandomLayouterOptions/RandomFactory",982),D(374,22,{3:1,35:1,22:1,374:1},oj);var Jy,aP,oP,K2,rA=jr(Fh,"SizeConstraint",374,Hr,$sn,Gtn),B4e;D(259,22,{3:1,35:1,22:1,259:1},H3);var cP,nU,R7,Aft,uP,iA,rU,iU,sU,NAt=jr(Fh,"SizeOptions",259,Hr,fcn,Utn),R4e;D(370,1,{1949:1},r8),l.b=!1,l.c=0,l.d=-1,l.e=null,l.f=null,l.g=-1,l.j=!1,l.k=!1,l.n=!1,l.o=0,l.q=0,l.r=0,F(Ec,"BasicProgressMonitor",370),D(972,209,S2,YZ),l.Ze=function(e,n){var r,s,o,h,d,v,k,C,M;switch(vr(n,"Box layout",2),o=pM(ye(qe(e,(fq(),i4e)))),h=u(qe(e,r4e),116),r=je(Re(qe(e,DSt))),s=je(Re(qe(e,ISt))),u(qe(e,lft),311).g){case 0:d=(v=new Bu((!e.a&&(e.a=new fe(rs,e,10,11)),e.a)),wn(),Zs(v,new ozt(s)),v),k=Q4t(e),C=ye(qe(e,MSt)),(C==null||(On(C),C<=0))&&(C=1.3),M=Q5n(d,o,h,k.a,k.b,r,(On(C),C)),wv(e,M.a,M.b,!1,!0);break;default:W3n(e,o,h,r)}or(n)},F(Ec,"BoxLayoutProvider",972),D(973,1,Oi,ozt),l.ue=function(e,n){return pwn(this,u(e,33),u(n,33))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},l.a=!1,F(Ec,"BoxLayoutProvider/1",973),D(157,1,{157:1},rz,LWt),l.Ib=function(){return this.c?X5t(this.c):eb(this.b)},F(Ec,"BoxLayoutProvider/Group",157),D(311,22,{3:1,35:1,22:1,311:1},cj);var BAt,RAt,jAt,Lft,$At=jr(Ec,"BoxLayoutProvider/PackingMode",311,Hr,Hsn,Ytn),j4e;D(974,1,Oi,KZ),l.ue=function(e,n){return vrn(u(e,157),u(n,157))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(Ec,"BoxLayoutProvider/lambda$0$Type",974),D(975,1,Oi,sB),l.ue=function(e,n){return hrn(u(e,157),u(n,157))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(Ec,"BoxLayoutProvider/lambda$1$Type",975),D(976,1,Oi,XZ),l.ue=function(e,n){return frn(u(e,157),u(n,157))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(Ec,"BoxLayoutProvider/lambda$2$Type",976),D(1365,1,{831:1},QZ),l.qg=function(e,n){return HR(),!_t(n,160)||jHt((i6(),u(e,160)),n)},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),D(1366,1,Un,czt),l.td=function(e){nln(this.a,u(e,146))},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),D(1367,1,Un,WZ),l.td=function(e){u(e,94),HR()},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),D(1371,1,Un,uzt),l.td=function(e){Scn(this.a,u(e,94))},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),D(1369,1,li,CGt),l.Mb=function(e){return qun(this.a,this.b,u(e,146))},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),D(1368,1,li,_Gt),l.Mb=function(e){return sZe(this.a,this.b,u(e,831))},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),D(1370,1,Un,SGt),l.td=function(e){snn(this.a,this.b,u(e,146))},F(Ec,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),D(935,1,{},GZ),l.Kb=function(e){return SUt(e)},l.Fb=function(e){return this===e},F(Ec,"ElkUtil/lambda$0$Type",935),D(936,1,Un,AGt),l.td=function(e){wbn(this.a,this.b,u(e,79))},l.a=0,l.b=0,F(Ec,"ElkUtil/lambda$1$Type",936),D(937,1,Un,LGt),l.td=function(e){wKe(this.a,this.b,u(e,202))},l.a=0,l.b=0,F(Ec,"ElkUtil/lambda$2$Type",937),D(938,1,Un,MGt),l.td=function(e){cQe(this.a,this.b,u(e,137))},l.a=0,l.b=0,F(Ec,"ElkUtil/lambda$3$Type",938),D(939,1,Un,lzt),l.td=function(e){xen(this.a,u(e,469))},F(Ec,"ElkUtil/lambda$4$Type",939),D(342,1,{35:1,342:1},WYe),l.wd=function(e){return NQe(this,u(e,236))},l.Fb=function(e){var n;return _t(e,342)?(n=u(e,342),this.a==n.a):!1},l.Hb=function(){return ps(this.a)},l.Ib=function(){return this.a+" (exclusive)"},l.a=0,F(Ec,"ExclusiveBounds/ExclusiveLowerBound",342),D(1138,209,S2,UZ),l.Ze=function(e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt,St,Rt,Kt,ue,_e,We,Qe;for(vr(n,"Fixed Layout",1),h=u(qe(e,(ui(),zSt)),218),j=0,H=0,St=new nr((!e.a&&(e.a=new fe(rs,e,10,11)),e.a));St.e!=St.i.gc();){for(gt=u(dr(St),33),Qe=u(qe(gt,(Sz(),QS)),8),Qe&&(x1(gt,Qe.a,Qe.b),u(qe(gt,SAt),174).Hc((Al(),Jy))&&(G=u(qe(gt,LAt),8),G.a>0&&G.b>0&&wv(gt,G.a,G.b,!0,!0))),j=b.Math.max(j,gt.i+gt.g),H=b.Math.max(H,gt.j+gt.f),C=new nr((!gt.n&&(gt.n=new fe(qo,gt,1,7)),gt.n));C.e!=C.i.gc();)v=u(dr(C),137),Qe=u(qe(v,QS),8),Qe&&x1(v,Qe.a,Qe.b),j=b.Math.max(j,gt.i+v.i+v.g),H=b.Math.max(H,gt.j+v.j+v.f);for(ue=new nr((!gt.c&&(gt.c=new fe(gl,gt,9,9)),gt.c));ue.e!=ue.i.gc();)for(Kt=u(dr(ue),118),Qe=u(qe(Kt,QS),8),Qe&&x1(Kt,Qe.a,Qe.b),_e=gt.i+Kt.i,We=gt.j+Kt.j,j=b.Math.max(j,_e+Kt.g),H=b.Math.max(H,We+Kt.f),k=new nr((!Kt.n&&(Kt.n=new fe(qo,Kt,1,7)),Kt.n));k.e!=k.i.gc();)v=u(dr(k),137),Qe=u(qe(v,QS),8),Qe&&x1(v,Qe.a,Qe.b),j=b.Math.max(j,_e+v.i+v.g),H=b.Math.max(H,We+v.j+v.f);for(o=new ar(lr(K0(gt).a.Kc(),new z));zr(o);)r=u(Mr(o),79),M=$he(r),j=b.Math.max(j,M.a),H=b.Math.max(H,M.b);for(s=new ar(lr(wI(gt).a.Kc(),new z));zr(s);)r=u(Mr(s),79),es(e0(r))!=e&&(M=$he(r),j=b.Math.max(j,M.a),H=b.Math.max(H,M.b))}if(h==(W0(),N7))for(Mt=new nr((!e.a&&(e.a=new fe(rs,e,10,11)),e.a));Mt.e!=Mt.i.gc();)for(gt=u(dr(Mt),33),s=new ar(lr(K0(gt).a.Kc(),new z));zr(s);)r=u(Mr(s),79),d=gyn(r),d.b==0?wo(r,a5,null):wo(r,a5,d);je(Re(qe(e,(Sz(),AAt))))||(Rt=u(qe(e,T4e),116),tt=j+Rt.b+Rt.c,K=H+Rt.d+Rt.a,wv(e,tt,K,!0,!0)),or(n)},F(Ec,"FixedLayoutProvider",1138),D(373,134,{3:1,414:1,373:1,94:1,134:1},Yu,ree),l.Jf=function(e){var n,r,s,o,h,d,v,k,C;if(e)try{for(k=vy(e,";,;"),h=k,d=0,v=h.length;d>16&ys|n^s<<16},l.Kc=function(){return new hzt(this)},l.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+$o(this.b)+")":this.b==null?"pair("+$o(this.a)+",null)":"pair("+$o(this.a)+","+$o(this.b)+")"},F(Ec,"Pair",46),D(983,1,sa,hzt),l.Nb=function(e){ba(this,e)},l.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},l.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw it(new lc)},l.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),it(new Ou)},l.b=!1,l.c=!1,F(Ec,"Pair/1",983),D(448,1,{448:1},zXt),l.Fb=function(e){return Fc(this.a,u(e,448).a)&&Fc(this.c,u(e,448).c)&&Fc(this.d,u(e,448).d)&&Fc(this.b,u(e,448).b)},l.Hb=function(){return Az(lt(ct(Qn,1),De,1,5,[this.a,this.c,this.d,this.b]))},l.Ib=function(){return"("+this.a+Ya+this.c+Ya+this.d+Ya+this.b+")"},F(Ec,"Quadruple",448),D(1126,209,S2,tJ),l.Ze=function(e,n){var r,s,o,h,d;if(vr(n,"Random Layout",1),(!e.a&&(e.a=new fe(rs,e,10,11)),e.a).i==0){or(n);return}h=u(qe(e,(S3t(),F4e)),19),h&&h.a!=0?o=new F$(h.a):o=new Zit,r=pM(ye(qe(e,O4e))),d=pM(ye(qe(e,N4e))),s=u(qe(e,P4e),116),A5n(e,o,r,d,s),or(n)},F(Ec,"RandomLayoutProvider",1126);var H4e;D(553,1,{}),l.qf=function(){return new $e(this.f.i,this.f.j)},l.We=function(e){return dQt(e,(ui(),dl))?qe(this.f,V4e):qe(this.f,e)},l.rf=function(){return new $e(this.f.g,this.f.f)},l.sf=function(){return this.g},l.Xe=function(e){return o2(this.f,e)},l.tf=function(e){ku(this.f,e.a),Eu(this.f,e.b)},l.uf=function(e){tv(this.f,e.a),Jw(this.f,e.b)},l.vf=function(e){this.g=e},l.g=0;var V4e;F(K_,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),D(554,1,{839:1},wR),l.wf=function(){var e,n;if(!this.b)for(this.b=D$(u$(this.a).i),n=new nr(u$(this.a));n.e!=n.i.gc();)e=u(dr(n),137),le(this.b,new get(e));return this.b},l.b=null,F(K_,"ElkGraphAdapters/ElkEdgeAdapter",554),D(301,553,{},Mm),l.xf=function(){return zse(this)},l.a=null,F(K_,"ElkGraphAdapters/ElkGraphAdapter",301),D(630,553,{181:1},get),F(K_,"ElkGraphAdapters/ElkLabelAdapter",630),D(629,553,{680:1},gnt),l.wf=function(){return M1n(this)},l.Af=function(){var e;return e=u(qe(this.f,(ui(),JO)),142),!e&&(e=new OC),e},l.Cf=function(){return D1n(this)},l.Ef=function(e){var n;n=new Lnt(e),wo(this.f,(ui(),JO),n)},l.Ff=function(e){wo(this.f,(ui(),U2),new kwt(e))},l.yf=function(){return this.d},l.zf=function(){var e,n;if(!this.a)for(this.a=new he,n=new ar(lr(wI(u(this.f,33)).a.Kc(),new z));zr(n);)e=u(Mr(n),79),le(this.a,new wR(e));return this.a},l.Bf=function(){var e,n;if(!this.c)for(this.c=new he,n=new ar(lr(K0(u(this.f,33)).a.Kc(),new z));zr(n);)e=u(Mr(n),79),le(this.c,new wR(e));return this.c},l.Df=function(){return p$(u(this.f,33)).i!=0||je(Re(u(this.f,33).We((ui(),ZO))))},l.Gf=function(){xon(this,(Pm(),H4e))},l.a=null,l.b=null,l.c=null,l.d=null,l.e=null,F(K_,"ElkGraphAdapters/ElkNodeAdapter",629),D(1266,553,{838:1},$zt),l.wf=function(){return j1n(this)},l.zf=function(){var e,n;if(!this.a)for(this.a=Ud(u(this.f,118).xg().i),n=new nr(u(this.f,118).xg());n.e!=n.i.gc();)e=u(dr(n),79),le(this.a,new wR(e));return this.a},l.Bf=function(){var e,n;if(!this.c)for(this.c=Ud(u(this.f,118).yg().i),n=new nr(u(this.f,118).yg());n.e!=n.i.gc();)e=u(dr(n),79),le(this.c,new wR(e));return this.c},l.Hf=function(){return u(u(this.f,118).We((ui(),u5)),61)},l.If=function(){var e,n,r,s,o,h,d,v;for(s=T1(u(this.f,118)),r=new nr(u(this.f,118).yg());r.e!=r.i.gc();)for(e=u(dr(r),79),v=new nr((!e.c&&(e.c=new Cn(br,e,5,8)),e.c));v.e!=v.i.gc();){if(d=u(dr(v),82),ey(Do(d),s))return!0;if(Do(d)==s&&je(Re(qe(e,(ui(),bft)))))return!0}for(n=new nr(u(this.f,118).xg());n.e!=n.i.gc();)for(e=u(dr(n),79),h=new nr((!e.b&&(e.b=new Cn(br,e,4,7)),e.b));h.e!=h.i.gc();)if(o=u(dr(h),82),ey(Do(o),s))return!0;return!1},l.a=null,l.b=null,l.c=null,F(K_,"ElkGraphAdapters/ElkPortAdapter",1266),D(1267,1,Oi,eJ),l.ue=function(e,n){return omn(u(e,118),u(n,118))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(K_,"ElkGraphAdapters/PortComparator",1267);var _b=Ki(ph,"EObject"),j7=Ki(F4,Ade),Gh=Ki(F4,Lde),lP=Ki(F4,Mde),hP=Ki(F4,"ElkShape"),br=Ki(F4,Dde),Ys=Ki(F4,w8t),Ji=Ki(F4,Ide),fP=Ki(ph,Ode),sA=Ki(ph,"EFactory"),G4e,Mft=Ki(ph,Pde),i1=Ki(ph,"EPackage"),na,U4e,W4e,VAt,aU,Y4e,GAt,UAt,WAt,Sb,K4e,X4e,qo=Ki(F4,v8t),rs=Ki(F4,m8t),gl=Ki(F4,y8t);D(90,1,Fde),l.Jg=function(){return this.Kg(),null},l.Kg=function(){return null},l.Lg=function(){return this.Kg(),!1},l.Mg=function(){return!1},l.Ng=function(e){mi(this,e)},F(L6,"BasicNotifierImpl",90),D(97,90,jde),l.nh=function(){return xl(this)},l.Og=function(e,n){return e},l.Pg=function(){throw it(new Or)},l.Qg=function(e){var n;return n=no(u(yn(this.Tg(),this.Vg()),18)),this.eh().ih(this,n.n,n.f,e)},l.Rg=function(e,n){throw it(new Or)},l.Sg=function(e,n,r){return Hl(this,e,n,r)},l.Tg=function(){var e;return this.Pg()&&(e=this.Pg().ck(),e)?e:this.zh()},l.Ug=function(){return eat(this)},l.Vg=function(){throw it(new Or)},l.Wg=function(){var e,n;return n=this.ph().dk(),!n&&this.Pg().ik(n=(YC(),e=jvt(vd(this.Tg())),e==null?Rft:new jM(this,e))),n},l.Xg=function(e,n){return e},l.Yg=function(e){var n;return n=e.Gj(),n?e.aj():Gi(this.Tg(),e)},l.Zg=function(){var e;return e=this.Pg(),e?e.fk():null},l.$g=function(){return this.Pg()?this.Pg().ck():null},l._g=function(e,n,r){return Xz(this,e,n,r)},l.ah=function(e){return j8(this,e)},l.bh=function(e,n){return Urt(this,e,n)},l.dh=function(){var e;return e=this.Pg(),!!e&&e.gk()},l.eh=function(){throw it(new Or)},l.fh=function(){return Hz(this)},l.gh=function(e,n,r,s){return c6(this,e,n,s)},l.hh=function(e,n,r){var s;return s=u(yn(this.Tg(),n),66),s.Nj().Qj(this,this.yh(),n-this.Ah(),e,r)},l.ih=function(e,n,r,s){return m$(this,e,n,s)},l.jh=function(e,n,r){var s;return s=u(yn(this.Tg(),n),66),s.Nj().Rj(this,this.yh(),n-this.Ah(),e,r)},l.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},l.lh=function(e){return fst(this,e)},l.mh=function(e){return MQt(this,e)},l.oh=function(e){return ehe(this,e)},l.ph=function(){throw it(new Or)},l.qh=function(){return this.Pg()?this.Pg().ek():null},l.rh=function(){return Hz(this)},l.sh=function(e,n){Xst(this,e,n)},l.th=function(e){this.ph().hk(e)},l.uh=function(e){this.ph().kk(e)},l.vh=function(e){this.ph().jk(e)},l.wh=function(e,n){var r,s,o,h;return h=this.Zg(),h&&e&&(n=Ba(h.Vk(),this,n),h.Zk(this)),s=this.eh(),s&&(wat(this,this.eh(),this.Vg()).Bb&Ka?(o=s.fh(),o&&(e?!h&&o.Zk(this):o.Yk(this))):(n=(r=this.Vg(),r>=0?this.Qg(n):this.eh().ih(this,-1-r,null,n)),n=this.Sg(null,-1,n))),this.uh(e),n},l.xh=function(e){var n,r,s,o,h,d,v,k;if(r=this.Tg(),h=Gi(r,e),n=this.Ah(),h>=n)return u(e,66).Nj().Uj(this,this.yh(),h-n);if(h<=-1)if(d=C4(($u(),ya),r,e),d){if(to(),u(d,66).Oj()||(d=Kx(To(ya,d))),o=(s=this.Yg(d),u(s>=0?this._g(s,!0,!0):dv(this,d,!0),153)),k=d.Zj(),k>1||k==-1)return u(u(o,215).hl(e,!1),76)}else throw it(new Fn(lb+e.ne()+Wct));else if(e.$j())return s=this.Yg(e),u(s>=0?this._g(s,!1,!0):dv(this,e,!1),76);return v=new XGt(this,e),v},l.yh=function(){return $mt(this)},l.zh=function(){return(Hp(),Ln).S},l.Ah=function(){return Jn(this.zh())},l.Bh=function(e){Gst(this,e)},l.Ib=function(){return mf(this)},F(Mn,"BasicEObjectImpl",97);var Q4e;D(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),l.Ch=function(e){var n;return n=zmt(this),n[e]},l.Dh=function(e,n){var r;r=zmt(this),ts(r,e,n)},l.Eh=function(e){var n;n=zmt(this),ts(n,e,null)},l.Jg=function(){return u(Dn(this,4),126)},l.Kg=function(){throw it(new Or)},l.Lg=function(){return(this.Db&4)!=0},l.Pg=function(){throw it(new Or)},l.Fh=function(e){o6(this,2,e)},l.Rg=function(e,n){this.Db=n<<16|this.Db&255,this.Fh(e)},l.Tg=function(){return vu(this)},l.Vg=function(){return this.Db>>16},l.Wg=function(){var e,n;return YC(),n=jvt(vd((e=u(Dn(this,16),26),e||this.zh()))),n==null?Rft:new jM(this,n)},l.Mg=function(){return(this.Db&1)==0},l.Zg=function(){return u(Dn(this,128),1935)},l.$g=function(){return u(Dn(this,16),26)},l.dh=function(){return(this.Db&32)!=0},l.eh=function(){return u(Dn(this,2),49)},l.kh=function(){return(this.Db&64)!=0},l.ph=function(){throw it(new Or)},l.qh=function(){return u(Dn(this,64),281)},l.th=function(e){o6(this,16,e)},l.uh=function(e){o6(this,128,e)},l.vh=function(e){o6(this,64,e)},l.yh=function(){return su(this)},l.Db=0,F(Mn,"MinimalEObjectImpl",114),D(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),l.Fh=function(e){this.Cb=e},l.eh=function(){return this.Cb},F(Mn,"MinimalEObjectImpl/Container",115),D(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),l._g=function(e,n,r){return Z3t(this,e,n,r)},l.jh=function(e,n,r){return $4t(this,e,n,r)},l.lh=function(e){return Qvt(this,e)},l.sh=function(e,n){Byt(this,e,n)},l.zh=function(){return Jc(),X4e},l.Bh=function(e){_yt(this,e)},l.Ve=function(){return cse(this)},l.We=function(e){return qe(this,e)},l.Xe=function(e){return o2(this,e)},l.Ye=function(e,n){return wo(this,e,n)},F(M2,"EMapPropertyHolderImpl",1985),D(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xp),l._g=function(e,n,r){switch(e){case 0:return this.a;case 1:return this.b}return Xz(this,e,n,r)},l.lh=function(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return fst(this,e)},l.sh=function(e,n){switch(e){case 0:iz(this,Xt(ye(n)));return;case 1:sz(this,Xt(ye(n)));return}Xst(this,e,n)},l.zh=function(){return Jc(),U4e},l.Bh=function(e){switch(e){case 0:iz(this,0);return;case 1:sz(this,0);return}Gst(this,e)},l.Ib=function(){var e;return this.Db&64?mf(this):(e=new _h(mf(this)),e.a+=" (x: ",$3(e,this.a),e.a+=", y: ",$3(e,this.b),e.a+=")",e.a)},l.a=0,l.b=0,F(M2,"ElkBendPointImpl",567),D(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),l._g=function(e,n,r){return n3t(this,e,n,r)},l.hh=function(e,n,r){return jst(this,e,n,r)},l.jh=function(e,n,r){return Eit(this,e,n,r)},l.lh=function(e){return vyt(this,e)},l.sh=function(e,n){w4t(this,e,n)},l.zh=function(){return Jc(),Y4e},l.Bh=function(e){Zyt(this,e)},l.zg=function(){return this.k},l.Ag=function(){return u$(this)},l.Ib=function(){return Xit(this)},l.k=null,F(M2,"ElkGraphElementImpl",723),D(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),l._g=function(e,n,r){return f3t(this,e,n,r)},l.lh=function(e){return m3t(this,e)},l.sh=function(e,n){v4t(this,e,n)},l.zh=function(){return Jc(),K4e},l.Bh=function(e){T3t(this,e)},l.Bg=function(){return this.f},l.Cg=function(){return this.g},l.Dg=function(){return this.i},l.Eg=function(){return this.j},l.Fg=function(e,n){bj(this,e,n)},l.Gg=function(e,n){x1(this,e,n)},l.Hg=function(e){ku(this,e)},l.Ig=function(e){Eu(this,e)},l.Ib=function(){return Vst(this)},l.f=0,l.g=0,l.i=0,l.j=0,F(M2,"ElkShapeImpl",724),D(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),l._g=function(e,n,r){return U3t(this,e,n,r)},l.hh=function(e,n,r){return h4t(this,e,n,r)},l.jh=function(e,n,r){return f4t(this,e,n,r)},l.lh=function(e){return Fyt(this,e)},l.sh=function(e,n){x5t(this,e,n)},l.zh=function(){return Jc(),W4e},l.Bh=function(e){R3t(this,e)},l.xg=function(){return!this.d&&(this.d=new Cn(Ys,this,8,5)),this.d},l.yg=function(){return!this.e&&(this.e=new Cn(Ys,this,7,4)),this.e},F(M2,"ElkConnectableShapeImpl",725),D(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},pw),l.Qg=function(e){return o4t(this,e)},l._g=function(e,n,r){switch(e){case 3:return cD(this);case 4:return!this.b&&(this.b=new Cn(br,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Cn(br,this,5,8)),this.c;case 6:return!this.a&&(this.a=new fe(Ji,this,6,6)),this.a;case 7:return Nn(),!this.b&&(this.b=new Cn(br,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Cn(br,this,5,8)),this.c.i<=1));case 8:return Nn(),!!w_(this);case 9:return Nn(),!!fv(this);case 10:return Nn(),!this.b&&(this.b=new Cn(br,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Cn(br,this,5,8)),this.c.i!=0)}return n3t(this,e,n,r)},l.hh=function(e,n,r){var s;switch(n){case 3:return this.Cb&&(r=(s=this.Db>>16,s>=0?o4t(this,r):this.Cb.ih(this,-1-s,null,r))),twt(this,u(e,33),r);case 4:return!this.b&&(this.b=new Cn(br,this,4,7)),Zc(this.b,e,r);case 5:return!this.c&&(this.c=new Cn(br,this,5,8)),Zc(this.c,e,r);case 6:return!this.a&&(this.a=new fe(Ji,this,6,6)),Zc(this.a,e,r)}return jst(this,e,n,r)},l.jh=function(e,n,r){switch(n){case 3:return twt(this,null,r);case 4:return!this.b&&(this.b=new Cn(br,this,4,7)),Ba(this.b,e,r);case 5:return!this.c&&(this.c=new Cn(br,this,5,8)),Ba(this.c,e,r);case 6:return!this.a&&(this.a=new fe(Ji,this,6,6)),Ba(this.a,e,r)}return Eit(this,e,n,r)},l.lh=function(e){switch(e){case 3:return!!cD(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Cn(br,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Cn(br,this,5,8)),this.c.i<=1));case 8:return w_(this);case 9:return fv(this);case 10:return!this.b&&(this.b=new Cn(br,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Cn(br,this,5,8)),this.c.i!=0)}return vyt(this,e)},l.sh=function(e,n){switch(e){case 3:oat(this,u(n,33));return;case 4:!this.b&&(this.b=new Cn(br,this,4,7)),xr(this.b),!this.b&&(this.b=new Cn(br,this,4,7)),is(this.b,u(n,14));return;case 5:!this.c&&(this.c=new Cn(br,this,5,8)),xr(this.c),!this.c&&(this.c=new Cn(br,this,5,8)),is(this.c,u(n,14));return;case 6:!this.a&&(this.a=new fe(Ji,this,6,6)),xr(this.a),!this.a&&(this.a=new fe(Ji,this,6,6)),is(this.a,u(n,14));return}w4t(this,e,n)},l.zh=function(){return Jc(),VAt},l.Bh=function(e){switch(e){case 3:oat(this,null);return;case 4:!this.b&&(this.b=new Cn(br,this,4,7)),xr(this.b);return;case 5:!this.c&&(this.c=new Cn(br,this,5,8)),xr(this.c);return;case 6:!this.a&&(this.a=new fe(Ji,this,6,6)),xr(this.a);return}Zyt(this,e)},l.Ib=function(){return $le(this)},F(M2,"ElkEdgeImpl",352),D(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ad),l.Qg=function(e){return r4t(this,e)},l._g=function(e,n,r){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new As(Gh,this,5)),this.a;case 6:return SQt(this);case 7:return n?wst(this):this.i;case 8:return n?bst(this):this.f;case 9:return!this.g&&(this.g=new Cn(Ji,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Cn(Ji,this,10,9)),this.e;case 11:return this.d}return Z3t(this,e,n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?r4t(this,r):this.Cb.ih(this,-1-o,null,r))),ewt(this,u(e,79),r);case 9:return!this.g&&(this.g=new Cn(Ji,this,9,10)),Zc(this.g,e,r);case 10:return!this.e&&(this.e=new Cn(Ji,this,10,9)),Zc(this.e,e,r)}return h=u(yn((s=u(Dn(this,16),26),s||(Jc(),aU)),n),66),h.Nj().Qj(this,su(this),n-Jn((Jc(),aU)),e,r)},l.jh=function(e,n,r){switch(n){case 5:return!this.a&&(this.a=new As(Gh,this,5)),Ba(this.a,e,r);case 6:return ewt(this,null,r);case 9:return!this.g&&(this.g=new Cn(Ji,this,9,10)),Ba(this.g,e,r);case 10:return!this.e&&(this.e=new Cn(Ji,this,10,9)),Ba(this.e,e,r)}return $4t(this,e,n,r)},l.lh=function(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!SQt(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return Qvt(this,e)},l.sh=function(e,n){switch(e){case 1:G8(this,Xt(ye(n)));return;case 2:W8(this,Xt(ye(n)));return;case 3:V8(this,Xt(ye(n)));return;case 4:U8(this,Xt(ye(n)));return;case 5:!this.a&&(this.a=new As(Gh,this,5)),xr(this.a),!this.a&&(this.a=new As(Gh,this,5)),is(this.a,u(n,14));return;case 6:zce(this,u(n,79));return;case 7:lz(this,u(n,82));return;case 8:uz(this,u(n,82));return;case 9:!this.g&&(this.g=new Cn(Ji,this,9,10)),xr(this.g),!this.g&&(this.g=new Cn(Ji,this,9,10)),is(this.g,u(n,14));return;case 10:!this.e&&(this.e=new Cn(Ji,this,10,9)),xr(this.e),!this.e&&(this.e=new Cn(Ji,this,10,9)),is(this.e,u(n,14));return;case 11:uyt(this,Br(n));return}Byt(this,e,n)},l.zh=function(){return Jc(),aU},l.Bh=function(e){switch(e){case 1:G8(this,0);return;case 2:W8(this,0);return;case 3:V8(this,0);return;case 4:U8(this,0);return;case 5:!this.a&&(this.a=new As(Gh,this,5)),xr(this.a);return;case 6:zce(this,null);return;case 7:lz(this,null);return;case 8:uz(this,null);return;case 9:!this.g&&(this.g=new Cn(Ji,this,9,10)),xr(this.g);return;case 10:!this.e&&(this.e=new Cn(Ji,this,10,9)),xr(this.e);return;case 11:uyt(this,null);return}_yt(this,e)},l.Ib=function(){return sce(this)},l.b=0,l.c=0,l.d=null,l.j=0,l.k=0,F(M2,"ElkEdgeSectionImpl",439),D(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),l._g=function(e,n,r){var s;return e==0?(!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab):uh(this,e-Jn(this.zh()),yn((s=u(Dn(this,16),26),s||this.zh()),e),n,r)},l.hh=function(e,n,r){var s,o;return n==0?(!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r)):(o=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),o.Nj().Qj(this,su(this),n-Jn(this.zh()),e,r))},l.jh=function(e,n,r){var s,o;return n==0?(!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r)):(o=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),o.Nj().Rj(this,su(this),n-Jn(this.zh()),e,r))},l.lh=function(e){var n;return e==0?!!this.Ab&&this.Ab.i!=0:oh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.oh=function(e){return Lxt(this,e)},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return}gh(this,e-Jn(this.zh()),yn((r=u(Dn(this,16),26),r||this.zh()),e),n)},l.uh=function(e){o6(this,128,e)},l.zh=function(){return dn(),p5e},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return}fh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.Gh=function(){this.Bb|=1},l.Hh=function(e){return k_(this,e)},l.Bb=0,F(Mn,"EModelElementImpl",150),D(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},JB),l.Ih=function(e,n){return bhe(this,e,n)},l.Jh=function(e){var n,r,s,o,h;if(this.a!=Rl(e)||e.Bb&256)throw it(new Fn(Kct+e.zb+Cv));for(s=Ao(e);Lc(s.a).i!=0;){if(r=u(AI(s,0,(n=u(At(Lc(s.a),0),87),h=n.c,_t(h,88)?u(h,26):(dn(),Kh))),26),hv(r))return o=Rl(r).Nh().Jh(r),u(o,49).th(e),o;s=Ao(r)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new hKt(e):new zwt(e)},l.Kh=function(e,n){return vv(this,e,n)},l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.a}return uh(this,e-Jn((dn(),Db)),yn((s=u(Dn(this,16),26),s||Db),e),n,r)},l.hh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 1:return this.a&&(r=u(this.a,49).ih(this,4,i1,r)),Xyt(this,u(e,235),r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),Db)),n),66),o.Nj().Qj(this,su(this),n-Jn((dn(),Db)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 1:return Xyt(this,null,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),Db)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),Db)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return oh(this,e-Jn((dn(),Db)),yn((n=u(Dn(this,16),26),n||Db),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:zae(this,u(n,235));return}gh(this,e-Jn((dn(),Db)),yn((r=u(Dn(this,16),26),r||Db),e),n)},l.zh=function(){return dn(),Db},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:zae(this,null);return}fh(this,e-Jn((dn(),Db)),yn((n=u(Dn(this,16),26),n||Db),e))};var aA,YAt,Z4e;F(Mn,"EFactoryImpl",704),D(xf,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},ax),l.Ih=function(e,n){switch(e.yj()){case 12:return u(n,146).tg();case 13:return $o(n);default:throw it(new Fn(QE+e.ne()+Cv))}},l.Jh=function(e){var n,r,s,o,h,d,v,k;switch(e.G==-1&&(e.G=(n=Rl(e),n?Hg(n.Mh(),e):-1)),e.G){case 4:return h=new ZT,h;case 6:return d=new Vpt,d;case 7:return v=new Gpt,v;case 8:return s=new pw,s;case 9:return r=new xp,r;case 10:return o=new ad,o;case 11:return k=new aB,k;default:throw it(new Fn(Kct+e.zb+Cv))}},l.Kh=function(e,n){switch(e.yj()){case 13:case 12:return null;default:throw it(new Fn(QE+e.ne()+Cv))}},F(M2,"ElkGraphFactoryImpl",xf),D(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),l.Wg=function(){var e,n;return n=(e=u(Dn(this,16),26),jvt(vd(e||this.zh()))),n==null?(YC(),YC(),Rft):new IWt(this,n)},l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.ne()}return uh(this,e-Jn(this.zh()),yn((s=u(Dn(this,16),26),s||this.zh()),e),n,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return oh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:this.Lh(Br(n));return}gh(this,e-Jn(this.zh()),yn((r=u(Dn(this,16),26),r||this.zh()),e),n)},l.zh=function(){return dn(),b5e},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:this.Lh(null);return}fh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.ne=function(){return this.zb},l.Lh=function(e){Qc(this,e)},l.Ib=function(){return J9(this)},l.zb=null,F(Mn,"ENamedElementImpl",438),D(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},fQt),l.Qg=function(e){return eae(this,e)},l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Gm(this,s1,this)),this.rb;case 6:return!this.vb&&(this.vb=new Rx(i1,this,6,7)),this.vb;case 7:return n?this.Db>>16==7?u(this.Cb,235):null:AQt(this)}return uh(this,e-Jn((dn(),up)),yn((s=u(Dn(this,16),26),s||up),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 4:return this.sb&&(r=u(this.sb,49).ih(this,1,sA,r)),t3t(this,u(e,471),r);case 5:return!this.rb&&(this.rb=new Gm(this,s1,this)),Zc(this.rb,e,r);case 6:return!this.vb&&(this.vb=new Rx(i1,this,6,7)),Zc(this.vb,e,r);case 7:return this.Cb&&(r=(o=this.Db>>16,o>=0?eae(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,7,r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),up)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),up)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 4:return t3t(this,null,r);case 5:return!this.rb&&(this.rb=new Gm(this,s1,this)),Ba(this.rb,e,r);case 6:return!this.vb&&(this.vb=new Rx(i1,this,6,7)),Ba(this.vb,e,r);case 7:return Hl(this,null,7,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),up)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),up)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!AQt(this)}return oh(this,e-Jn((dn(),up)),yn((n=u(Dn(this,16),26),n||up),e))},l.oh=function(e){var n;return n=Lwn(this,e),n||Lxt(this,e)},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Qc(this,Br(n));return;case 2:wz(this,Br(n));return;case 3:bz(this,Br(n));return;case 4:Hst(this,u(n,471));return;case 5:!this.rb&&(this.rb=new Gm(this,s1,this)),xr(this.rb),!this.rb&&(this.rb=new Gm(this,s1,this)),is(this.rb,u(n,14));return;case 6:!this.vb&&(this.vb=new Rx(i1,this,6,7)),xr(this.vb),!this.vb&&(this.vb=new Rx(i1,this,6,7)),is(this.vb,u(n,14));return}gh(this,e-Jn((dn(),up)),yn((r=u(Dn(this,16),26),r||up),e),n)},l.vh=function(e){var n,r;if(e&&this.rb)for(r=new nr(this.rb);r.e!=r.i.gc();)n=dr(r),_t(n,351)&&(u(n,351).w=null);o6(this,64,e)},l.zh=function(){return dn(),up},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:Qc(this,null);return;case 2:wz(this,null);return;case 3:bz(this,null);return;case 4:Hst(this,null);return;case 5:!this.rb&&(this.rb=new Gm(this,s1,this)),xr(this.rb);return;case 6:!this.vb&&(this.vb=new Rx(i1,this,6,7)),xr(this.vb);return}fh(this,e-Jn((dn(),up)),yn((n=u(Dn(this,16),26),n||up),e))},l.Gh=function(){Mst(this)},l.Mh=function(){return!this.rb&&(this.rb=new Gm(this,s1,this)),this.rb},l.Nh=function(){return this.sb},l.Oh=function(){return this.ub},l.Ph=function(){return this.xb},l.Qh=function(){return this.yb},l.Rh=function(e){this.ub=e},l.Ib=function(){var e;return this.Db&64?J9(this):(e=new _h(J9(this)),e.a+=" (nsURI: ",go(e,this.yb),e.a+=", nsPrefix: ",go(e,this.xb),e.a+=")",e.a)},l.xb=null,l.yb=null,F(Mn,"EPackageImpl",179),D(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},gce),l.q=!1,l.r=!1;var J4e=!1;F(M2,"ElkGraphPackageImpl",555),D(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ZT),l.Qg=function(e){return i4t(this,e)},l._g=function(e,n,r){switch(e){case 7:return LQt(this);case 8:return this.a}return f3t(this,e,n,r)},l.hh=function(e,n,r){var s;switch(n){case 7:return this.Cb&&(r=(s=this.Db>>16,s>=0?i4t(this,r):this.Cb.ih(this,-1-s,null,r))),nvt(this,u(e,160),r)}return jst(this,e,n,r)},l.jh=function(e,n,r){return n==7?nvt(this,null,r):Eit(this,e,n,r)},l.lh=function(e){switch(e){case 7:return!!LQt(this);case 8:return!hn("",this.a)}return m3t(this,e)},l.sh=function(e,n){switch(e){case 7:F5t(this,u(n,160));return;case 8:nyt(this,Br(n));return}v4t(this,e,n)},l.zh=function(){return Jc(),GAt},l.Bh=function(e){switch(e){case 7:F5t(this,null);return;case 8:nyt(this,"");return}T3t(this,e)},l.Ib=function(){return eoe(this)},l.a="",F(M2,"ElkLabelImpl",354),D(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Vpt),l.Qg=function(e){return c4t(this,e)},l._g=function(e,n,r){switch(e){case 9:return!this.c&&(this.c=new fe(gl,this,9,9)),this.c;case 10:return!this.a&&(this.a=new fe(rs,this,10,11)),this.a;case 11:return es(this);case 12:return!this.b&&(this.b=new fe(Ys,this,12,3)),this.b;case 13:return Nn(),!this.a&&(this.a=new fe(rs,this,10,11)),this.a.i>0}return U3t(this,e,n,r)},l.hh=function(e,n,r){var s;switch(n){case 9:return!this.c&&(this.c=new fe(gl,this,9,9)),Zc(this.c,e,r);case 10:return!this.a&&(this.a=new fe(rs,this,10,11)),Zc(this.a,e,r);case 11:return this.Cb&&(r=(s=this.Db>>16,s>=0?c4t(this,r):this.Cb.ih(this,-1-s,null,r))),lwt(this,u(e,33),r);case 12:return!this.b&&(this.b=new fe(Ys,this,12,3)),Zc(this.b,e,r)}return h4t(this,e,n,r)},l.jh=function(e,n,r){switch(n){case 9:return!this.c&&(this.c=new fe(gl,this,9,9)),Ba(this.c,e,r);case 10:return!this.a&&(this.a=new fe(rs,this,10,11)),Ba(this.a,e,r);case 11:return lwt(this,null,r);case 12:return!this.b&&(this.b=new fe(Ys,this,12,3)),Ba(this.b,e,r)}return f4t(this,e,n,r)},l.lh=function(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!es(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new fe(rs,this,10,11)),this.a.i>0}return Fyt(this,e)},l.sh=function(e,n){switch(e){case 9:!this.c&&(this.c=new fe(gl,this,9,9)),xr(this.c),!this.c&&(this.c=new fe(gl,this,9,9)),is(this.c,u(n,14));return;case 10:!this.a&&(this.a=new fe(rs,this,10,11)),xr(this.a),!this.a&&(this.a=new fe(rs,this,10,11)),is(this.a,u(n,14));return;case 11:I5t(this,u(n,33));return;case 12:!this.b&&(this.b=new fe(Ys,this,12,3)),xr(this.b),!this.b&&(this.b=new fe(Ys,this,12,3)),is(this.b,u(n,14));return}x5t(this,e,n)},l.zh=function(){return Jc(),UAt},l.Bh=function(e){switch(e){case 9:!this.c&&(this.c=new fe(gl,this,9,9)),xr(this.c);return;case 10:!this.a&&(this.a=new fe(rs,this,10,11)),xr(this.a);return;case 11:I5t(this,null);return;case 12:!this.b&&(this.b=new fe(Ys,this,12,3)),xr(this.b);return}R3t(this,e)},l.Ib=function(){return X5t(this)},F(M2,"ElkNodeImpl",239),D(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Gpt),l.Qg=function(e){return s4t(this,e)},l._g=function(e,n,r){return e==9?T1(this):U3t(this,e,n,r)},l.hh=function(e,n,r){var s;switch(n){case 9:return this.Cb&&(r=(s=this.Db>>16,s>=0?s4t(this,r):this.Cb.ih(this,-1-s,null,r))),nwt(this,u(e,33),r)}return h4t(this,e,n,r)},l.jh=function(e,n,r){return n==9?nwt(this,null,r):f4t(this,e,n,r)},l.lh=function(e){return e==9?!!T1(this):Fyt(this,e)},l.sh=function(e,n){switch(e){case 9:D5t(this,u(n,33));return}x5t(this,e,n)},l.zh=function(){return Jc(),WAt},l.Bh=function(e){switch(e){case 9:D5t(this,null);return}R3t(this,e)},l.Ib=function(){return zue(this)},F(M2,"ElkPortImpl",186);var t5e=Ki(Ra,"BasicEMap/Entry");D(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},aB),l.Fb=function(e){return this===e},l.cd=function(){return this.b},l.Hb=function(){return Pw(this)},l.Uh=function(e){ryt(this,u(e,146))},l._g=function(e,n,r){switch(e){case 0:return this.b;case 1:return this.c}return Xz(this,e,n,r)},l.lh=function(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return fst(this,e)},l.sh=function(e,n){switch(e){case 0:ryt(this,u(n,146));return;case 1:ayt(this,n);return}Xst(this,e,n)},l.zh=function(){return Jc(),Sb},l.Bh=function(e){switch(e){case 0:ryt(this,null);return;case 1:ayt(this,null);return}Gst(this,e)},l.Sh=function(){var e;return this.a==-1&&(e=this.b,this.a=e?Hi(e):0),this.a},l.dd=function(){return this.c},l.Th=function(e){this.a=e},l.ed=function(e){var n;return n=this.c,ayt(this,e),n},l.Ib=function(){var e;return this.Db&64?mf(this):(e=new Mp,Gr(Gr(Gr(e,this.b?this.b.tg():_u),Uot),b9(this.c)),e.a)},l.a=-1,l.c=null;var Hv=F(M2,"ElkPropertyToValueMapEntryImpl",1092);D(984,1,{},oB),F(ma,"JsonAdapter",984),D(210,60,Q0,ud),F(ma,"JsonImportException",210),D(857,1,{},nae),F(ma,"JsonImporter",857),D(891,1,{},DGt),F(ma,"JsonImporter/lambda$0$Type",891),D(892,1,{},IGt),F(ma,"JsonImporter/lambda$1$Type",892),D(900,1,{},fzt),F(ma,"JsonImporter/lambda$10$Type",900),D(902,1,{},OGt),F(ma,"JsonImporter/lambda$11$Type",902),D(903,1,{},PGt),F(ma,"JsonImporter/lambda$12$Type",903),D(909,1,{},UXt),F(ma,"JsonImporter/lambda$13$Type",909),D(908,1,{},GXt),F(ma,"JsonImporter/lambda$14$Type",908),D(904,1,{},FGt),F(ma,"JsonImporter/lambda$15$Type",904),D(905,1,{},NGt),F(ma,"JsonImporter/lambda$16$Type",905),D(906,1,{},BGt),F(ma,"JsonImporter/lambda$17$Type",906),D(907,1,{},RGt),F(ma,"JsonImporter/lambda$18$Type",907),D(912,1,{},dzt),F(ma,"JsonImporter/lambda$19$Type",912),D(893,1,{},gzt),F(ma,"JsonImporter/lambda$2$Type",893),D(910,1,{},pzt),F(ma,"JsonImporter/lambda$20$Type",910),D(911,1,{},bzt),F(ma,"JsonImporter/lambda$21$Type",911),D(915,1,{},wzt),F(ma,"JsonImporter/lambda$22$Type",915),D(913,1,{},vzt),F(ma,"JsonImporter/lambda$23$Type",913),D(914,1,{},mzt),F(ma,"JsonImporter/lambda$24$Type",914),D(917,1,{},yzt),F(ma,"JsonImporter/lambda$25$Type",917),D(916,1,{},xzt),F(ma,"JsonImporter/lambda$26$Type",916),D(918,1,Un,jGt),l.td=function(e){ion(this.b,this.a,Br(e))},F(ma,"JsonImporter/lambda$27$Type",918),D(919,1,Un,$Gt),l.td=function(e){son(this.b,this.a,Br(e))},F(ma,"JsonImporter/lambda$28$Type",919),D(920,1,{},zGt),F(ma,"JsonImporter/lambda$29$Type",920),D(896,1,{},kzt),F(ma,"JsonImporter/lambda$3$Type",896),D(921,1,{},qGt),F(ma,"JsonImporter/lambda$30$Type",921),D(922,1,{},Ezt),F(ma,"JsonImporter/lambda$31$Type",922),D(923,1,{},Tzt),F(ma,"JsonImporter/lambda$32$Type",923),D(924,1,{},Czt),F(ma,"JsonImporter/lambda$33$Type",924),D(925,1,{},_zt),F(ma,"JsonImporter/lambda$34$Type",925),D(859,1,{},Szt),F(ma,"JsonImporter/lambda$35$Type",859),D(929,1,{},BYt),F(ma,"JsonImporter/lambda$36$Type",929),D(926,1,Un,Azt),l.td=function(e){can(this.a,u(e,469))},F(ma,"JsonImporter/lambda$37$Type",926),D(927,1,Un,YGt),l.td=function(e){NXe(this.a,this.b,u(e,202))},F(ma,"JsonImporter/lambda$38$Type",927),D(928,1,Un,KGt),l.td=function(e){BXe(this.a,this.b,u(e,202))},F(ma,"JsonImporter/lambda$39$Type",928),D(894,1,{},Lzt),F(ma,"JsonImporter/lambda$4$Type",894),D(930,1,Un,Mzt),l.td=function(e){uan(this.a,u(e,8))},F(ma,"JsonImporter/lambda$40$Type",930),D(895,1,{},Dzt),F(ma,"JsonImporter/lambda$5$Type",895),D(899,1,{},Izt),F(ma,"JsonImporter/lambda$6$Type",899),D(897,1,{},Ozt),F(ma,"JsonImporter/lambda$7$Type",897),D(898,1,{},Pzt),F(ma,"JsonImporter/lambda$8$Type",898),D(901,1,{},Fzt),F(ma,"JsonImporter/lambda$9$Type",901),D(948,1,Un,Nzt),l.td=function(e){Vx(this.a,new Um(Br(e)))},F(ma,"JsonMetaDataConverter/lambda$0$Type",948),D(949,1,Un,Bzt),l.td=function(e){Cnn(this.a,u(e,237))},F(ma,"JsonMetaDataConverter/lambda$1$Type",949),D(950,1,Un,Rzt),l.td=function(e){kin(this.a,u(e,149))},F(ma,"JsonMetaDataConverter/lambda$2$Type",950),D(951,1,Un,jzt),l.td=function(e){_nn(this.a,u(e,175))},F(ma,"JsonMetaDataConverter/lambda$3$Type",951),D(237,22,{3:1,35:1,22:1,237:1},Px);var oU,cU,Dft,uU,lU,hU,Ift,Oft,fU=jr(qI,"GraphFeature",237,Hr,Yon,Xtn),e5e;D(13,1,{35:1,146:1},Vi,Ps,mn,eo),l.wd=function(e){return FQe(this,u(e,146))},l.Fb=function(e){return dQt(this,e)},l.wg=function(){return Ie(this)},l.tg=function(){return this.b},l.Hb=function(){return Vg(this.b)},l.Ib=function(){return this.b},F(qI,"Property",13),D(818,1,Oi,Ept),l.ue=function(e,n){return Jln(this,u(e,94),u(n,94))},l.Fb=function(e){return this===e},l.ve=function(){return new dt(this)},F(qI,"PropertyHolderComparator",818),D(695,1,sa,Tpt),l.Nb=function(e){ba(this,e)},l.Pb=function(){return uon(this)},l.Qb=function(){IHt()},l.Ob=function(){return!!this.a},F(DH,"ElkGraphUtil/AncestorIterator",695);var KAt=Ki(Ra,"EList");D(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),l.Vc=function(e,n){n_(this,e,n)},l.Fc=function(e){return Dr(this,e)},l.Wc=function(e,n){return Syt(this,e,n)},l.Gc=function(e){return is(this,e)},l.Zh=function(){return new Bx(this)},l.$h=function(){return new $M(this)},l._h=function(e){return DD(this,e)},l.ai=function(){return!0},l.bi=function(e,n){},l.ci=function(){},l.di=function(e,n){Yrt(this,e,n)},l.ei=function(e,n,r){},l.fi=function(e,n){},l.gi=function(e,n,r){},l.Fb=function(e){return Sue(this,e)},l.Hb=function(){return kyt(this)},l.hi=function(){return!1},l.Kc=function(){return new nr(this)},l.Yc=function(){return new Nx(this)},l.Zc=function(e){var n;if(n=this.gc(),e<0||e>n)throw it(new qm(e,n));return new Jnt(this,e)},l.ji=function(e,n){this.ii(e,this.Xc(n))},l.Mc=function(e){return X$(this,e)},l.li=function(e,n){return n},l._c=function(e,n){return h4(this,e,n)},l.Ib=function(){return g3t(this)},l.ni=function(){return!0},l.oi=function(e,n){return sE(this,n)},F(Ra,"AbstractEList",67),D(63,67,Ld,ox,Qw,gyt),l.Vh=function(e,n){return $st(this,e,n)},l.Wh=function(e){return Lse(this,e)},l.Xh=function(e,n){UD(this,e,n)},l.Yh=function(e){gD(this,e)},l.pi=function(e){return Fmt(this,e)},l.$b=function(){z9(this)},l.Hc=function(e){return yE(this,e)},l.Xb=function(e){return At(this,e)},l.qi=function(e){var n,r,s;++this.j,r=this.g==null?0:this.g.length,e>r&&(s=this.g,n=r+(r/2|0)+4,n=0?(this.$c(n),!0):!1},l.mi=function(e,n){return this.Ui(e,this.oi(e,n))},l.gc=function(){return this.Vi()},l.Pc=function(){return this.Wi()},l.Qc=function(e){return this.Xi(e)},l.Ib=function(){return this.Yi()},F(Ra,"DelegatingEList",1995),D(1996,1995,E0e),l.Vh=function(e,n){return sxt(this,e,n)},l.Wh=function(e){return this.Vh(this.Vi(),e)},l.Xh=function(e,n){fce(this,e,n)},l.Yh=function(e){rce(this,e)},l.ai=function(){return!this.bj()},l.$b=function(){A_(this)},l.Zi=function(e,n,r,s,o){return new pQt(this,e,n,r,s,o)},l.$i=function(e){mi(this.Ai(),e)},l._i=function(){return null},l.aj=function(){return-1},l.Ai=function(){return null},l.bj=function(){return!1},l.cj=function(e,n){return n},l.dj=function(e,n){return n},l.ej=function(){return!1},l.fj=function(){return!this.Ri()},l.ii=function(e,n){var r,s;return this.ej()?(s=this.fj(),r=B4t(this,e,n),this.$i(this.Zi(7,pe(n),r,e,s)),r):B4t(this,e,n)},l.$c=function(e){var n,r,s,o;return this.ej()?(r=null,s=this.fj(),n=this.Zi(4,o=Hj(this,e),null,e,s),this.bj()&&o?(r=this.dj(o,r),r?(r.Ei(n),r.Fi()):this.$i(n)):r?(r.Ei(n),r.Fi()):this.$i(n),o):(o=Hj(this,e),this.bj()&&o&&(r=this.dj(o,null),r&&r.Fi()),o)},l.mi=function(e,n){return yle(this,e,n)},F(L6,"DelegatingNotifyingListImpl",1996),D(143,1,nO),l.Ei=function(e){return T4t(this,e)},l.Fi=function(){rit(this)},l.xi=function(){return this.d},l._i=function(){return null},l.gj=function(){return null},l.yi=function(e){return-1},l.zi=function(){return aue(this)},l.Ai=function(){return null},l.Bi=function(){return $5t(this)},l.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},l.hj=function(){return!1},l.Di=function(e){var n,r,s,o,h,d,v,k,C,M,j;switch(this.d){case 1:case 2:switch(o=e.xi(),o){case 1:case 2:if(h=e.Ai(),Vt(h)===Vt(this.Ai())&&this.yi(null)==e.yi(null))return this.g=e.zi(),e.xi()==1&&(this.d=1),!0}case 4:{switch(o=e.xi(),o){case 4:{if(h=e.Ai(),Vt(h)===Vt(this.Ai())&&this.yi(null)==e.yi(null))return C=kxt(this),k=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,d=e.Ci(),this.d=6,j=new Qw(2),k<=d?(Dr(j,this.n),Dr(j,e.Bi()),this.g=lt(ct(Cr,1),Xr,25,15,[this.o=k,d+1])):(Dr(j,e.Bi()),Dr(j,this.n),this.g=lt(ct(Cr,1),Xr,25,15,[this.o=d,k])),this.n=j,C||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(o=e.xi(),o){case 4:{if(h=e.Ai(),Vt(h)===Vt(this.Ai())&&this.yi(null)==e.yi(null)){for(C=kxt(this),d=e.Ci(),M=u(this.g,48),s=Nt(Cr,Xr,25,M.length+1,15,1),n=0;n>>0,n.toString(16))),s.a+=" (eventType: ",this.d){case 1:{s.a+="SET";break}case 2:{s.a+="UNSET";break}case 3:{s.a+="ADD";break}case 5:{s.a+="ADD_MANY";break}case 4:{s.a+="REMOVE";break}case 6:{s.a+="REMOVE_MANY";break}case 7:{s.a+="MOVE";break}case 8:{s.a+="REMOVING_ADAPTER";break}case 9:{s.a+="RESOLVE";break}default:{xet(s,this.d);break}}if(Yue(this)&&(s.a+=", touch: true"),s.a+=", position: ",xet(s,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),s.a+=", notifier: ",l9(s,this.Ai()),s.a+=", feature: ",l9(s,this._i()),s.a+=", oldValue: ",l9(s,$5t(this)),s.a+=", newValue: ",this.d==6&&_t(this.g,48)){for(r=u(this.g,48),s.a+="[",e=0;e10?((!this.b||this.c.j!=this.a)&&(this.b=new E9(this),this.a=this.j),I0(this.b,e)):yE(this,e)},l.ni=function(){return!0},l.a=0,F(Ra,"AbstractEList/1",953),D(295,73,bot,qm),F(Ra,"AbstractEList/BasicIndexOutOfBoundsException",295),D(40,1,sa,nr),l.Nb=function(e){ba(this,e)},l.mj=function(){if(this.i.j!=this.f)throw it(new rh)},l.nj=function(){return dr(this)},l.Ob=function(){return this.e!=this.i.gc()},l.Pb=function(){return this.nj()},l.Qb=function(){f_(this)},l.e=0,l.f=0,l.g=-1,F(Ra,"AbstractEList/EIterator",40),D(278,40,n0,Nx,Jnt),l.Qb=function(){f_(this)},l.Rb=function(e){Die(this,e)},l.oj=function(){var e;try{return e=this.d.Xb(--this.e),this.mj(),this.g=this.e,e}catch(n){throw n=Wi(n),_t(n,73)?(this.mj(),it(new lc)):it(n)}},l.pj=function(e){Ise(this,e)},l.Sb=function(){return this.e!=0},l.Tb=function(){return this.e},l.Ub=function(){return this.oj()},l.Vb=function(){return this.e-1},l.Wb=function(e){this.pj(e)},F(Ra,"AbstractEList/EListIterator",278),D(341,40,sa,Bx),l.nj=function(){return dst(this)},l.Qb=function(){throw it(new Or)},F(Ra,"AbstractEList/NonResolvingEIterator",341),D(385,278,n0,$M,wwt),l.Rb=function(e){throw it(new Or)},l.nj=function(){var e;try{return e=this.c.ki(this.e),this.mj(),this.g=this.e++,e}catch(n){throw n=Wi(n),_t(n,73)?(this.mj(),it(new lc)):it(n)}},l.oj=function(){var e;try{return e=this.c.ki(--this.e),this.mj(),this.g=this.e,e}catch(n){throw n=Wi(n),_t(n,73)?(this.mj(),it(new lc)):it(n)}},l.Qb=function(){throw it(new Or)},l.Wb=function(e){throw it(new Or)},F(Ra,"AbstractEList/NonResolvingEListIterator",385),D(1982,67,T0e),l.Vh=function(e,n){var r,s,o,h,d,v,k,C,M,j,H;if(o=n.gc(),o!=0){for(C=u(Dn(this.a,4),126),M=C==null?0:C.length,H=M+o,s=Fit(this,H),j=M-e,j>0&&Dc(C,e,s,e+o,j),k=n.Kc(),d=0;dr)throw it(new qm(e,r));return new _Xt(this,e)},l.$b=function(){var e,n;++this.j,e=u(Dn(this.a,4),126),n=e==null?0:e.length,bE(this,null),Yrt(this,n,e)},l.Hc=function(e){var n,r,s,o,h;if(n=u(Dn(this.a,4),126),n!=null){if(e!=null){for(s=n,o=0,h=s.length;o=r)throw it(new qm(e,r));return n[e]},l.Xc=function(e){var n,r,s;if(n=u(Dn(this.a,4),126),n!=null){if(e!=null){for(r=0,s=n.length;rr)throw it(new qm(e,r));return new CXt(this,e)},l.ii=function(e,n){var r,s,o;if(r=jie(this),o=r==null?0:r.length,e>=o)throw it(new yo(iut+e+D2+o));if(n>=o)throw it(new yo(sut+n+D2+o));return s=r[n],e!=n&&(e0&&Dc(e,0,n,0,r),n},l.Qc=function(e){var n,r,s;return n=u(Dn(this.a,4),126),s=n==null?0:n.length,s>0&&(e.lengths&&ts(e,s,null),e};var n5e;F(Ra,"ArrayDelegatingEList",1982),D(1038,40,sa,FJt),l.mj=function(){if(this.b.j!=this.f||Vt(u(Dn(this.b.a,4),126))!==Vt(this.a))throw it(new rh)},l.Qb=function(){f_(this),this.a=u(Dn(this.b.a,4),126)},F(Ra,"ArrayDelegatingEList/EIterator",1038),D(706,278,n0,KKt,CXt),l.mj=function(){if(this.b.j!=this.f||Vt(u(Dn(this.b.a,4),126))!==Vt(this.a))throw it(new rh)},l.pj=function(e){Ise(this,e),this.a=u(Dn(this.b.a,4),126)},l.Qb=function(){f_(this),this.a=u(Dn(this.b.a,4),126)},F(Ra,"ArrayDelegatingEList/EListIterator",706),D(1039,341,sa,NJt),l.mj=function(){if(this.b.j!=this.f||Vt(u(Dn(this.b.a,4),126))!==Vt(this.a))throw it(new rh)},F(Ra,"ArrayDelegatingEList/NonResolvingEIterator",1039),D(707,385,n0,XKt,_Xt),l.mj=function(){if(this.b.j!=this.f||Vt(u(Dn(this.b.a,4),126))!==Vt(this.a))throw it(new rh)},F(Ra,"ArrayDelegatingEList/NonResolvingEListIterator",707),D(606,295,bot,nnt),F(Ra,"BasicEList/BasicIndexOutOfBoundsException",606),D(696,63,Ld,n2t),l.Vc=function(e,n){throw it(new Or)},l.Fc=function(e){throw it(new Or)},l.Wc=function(e,n){throw it(new Or)},l.Gc=function(e){throw it(new Or)},l.$b=function(){throw it(new Or)},l.qi=function(e){throw it(new Or)},l.Kc=function(){return this.Zh()},l.Yc=function(){return this.$h()},l.Zc=function(e){return this._h(e)},l.ii=function(e,n){throw it(new Or)},l.ji=function(e,n){throw it(new Or)},l.$c=function(e){throw it(new Or)},l.Mc=function(e){throw it(new Or)},l._c=function(e,n){throw it(new Or)},F(Ra,"BasicEList/UnmodifiableEList",696),D(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),l.Vc=function(e,n){CQe(this,e,u(n,42))},l.Fc=function(e){return hZe(this,u(e,42))},l.Jc=function(e){va(this,e)},l.Xb=function(e){return u(At(this.c,e),133)},l.ii=function(e,n){return u(this.c.ii(e,n),42)},l.ji=function(e,n){_Qe(this,e,u(n,42))},l.Lc=function(){return new Tn(null,new _n(this,16))},l.$c=function(e){return u(this.c.$c(e),42)},l._c=function(e,n){return mnn(this,e,u(n,42))},l.ad=function(e){r4(this,e)},l.Nc=function(){return new _n(this,16)},l.Oc=function(){return new Tn(null,new _n(this,16))},l.Wc=function(e,n){return this.c.Wc(e,n)},l.Gc=function(e){return this.c.Gc(e)},l.$b=function(){this.c.$b()},l.Hc=function(e){return this.c.Hc(e)},l.Ic=function(e){return ND(this.c,e)},l.qj=function(){var e,n,r;if(this.d==null){for(this.d=Nt(XAt,R8t,63,2*this.f+1,0,1),r=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)e=u(n.nj(),133),Jz(this,e);this.e=r}},l.Fb=function(e){return xYt(this,e)},l.Hb=function(){return kyt(this.c)},l.Xc=function(e){return this.c.Xc(e)},l.rj=function(){this.c=new zzt(this)},l.dc=function(){return this.f==0},l.Kc=function(){return this.c.Kc()},l.Yc=function(){return this.c.Yc()},l.Zc=function(e){return this.c.Zc(e)},l.sj=function(){return wD(this)},l.tj=function(e,n,r){return new RYt(e,n,r)},l.uj=function(){return new kp},l.Mc=function(e){return tne(this,e)},l.gc=function(){return this.f},l.bd=function(e,n){return new Qd(this.c,e,n)},l.Pc=function(){return this.c.Pc()},l.Qc=function(e){return this.c.Qc(e)},l.Ib=function(){return g3t(this.c)},l.e=0,l.f=0,F(Ra,"BasicEMap",705),D(1033,63,Ld,zzt),l.bi=function(e,n){cKe(this,u(n,133))},l.ei=function(e,n,r){var s;++(s=this,u(n,133),s).a.e},l.fi=function(e,n){uKe(this,u(n,133))},l.gi=function(e,n,r){ZQe(this,u(n,133),u(r,133))},l.di=function(e,n){Vne(this.a)},F(Ra,"BasicEMap/1",1033),D(1034,63,Ld,kp),l.ri=function(e){return Nt(y6n,C0e,612,e,0,1)},F(Ra,"BasicEMap/2",1034),D(1035,N1,zu,qzt),l.$b=function(){this.a.c.$b()},l.Hc=function(e){return ist(this.a,e)},l.Kc=function(){return this.a.f==0?(y8(),pP.a):new EHt(this.a)},l.Mc=function(e){var n;return n=this.a.f,qz(this.a,e),this.a.f!=n},l.gc=function(){return this.a.f},F(Ra,"BasicEMap/3",1035),D(1036,28,xy,Hzt),l.$b=function(){this.a.c.$b()},l.Hc=function(e){return Aue(this.a,e)},l.Kc=function(){return this.a.f==0?(y8(),pP.a):new THt(this.a)},l.gc=function(){return this.a.f},F(Ra,"BasicEMap/4",1036),D(1037,N1,zu,Vzt),l.$b=function(){this.a.c.$b()},l.Hc=function(e){var n,r,s,o,h,d,v,k,C;if(this.a.f>0&&_t(e,42)&&(this.a.qj(),k=u(e,42),v=k.cd(),o=v==null?0:Hi(v),h=rwt(this.a,o),n=this.a.d[h],n)){for(r=u(n.g,367),C=n.i,d=0;d"+this.c},l.a=0;var y6n=F(Ra,"BasicEMap/EntryImpl",612);D(536,1,{},Ik),F(Ra,"BasicEMap/View",536);var pP;D(768,1,{}),l.Fb=function(e){return k5t((wn(),io),e)},l.Hb=function(){return Pyt((wn(),io))},l.Ib=function(){return eb((wn(),io))},F(Ra,"ECollections/BasicEmptyUnmodifiableEList",768),D(1312,1,n0,cB),l.Nb=function(e){ba(this,e)},l.Rb=function(e){throw it(new Or)},l.Ob=function(){return!1},l.Sb=function(){return!1},l.Pb=function(){throw it(new lc)},l.Tb=function(){return 0},l.Ub=function(){throw it(new lc)},l.Vb=function(){return-1},l.Qb=function(){throw it(new Or)},l.Wb=function(e){throw it(new Or)},F(Ra,"ECollections/BasicEmptyUnmodifiableEList/1",1312),D(1310,768,{20:1,14:1,15:1,58:1},Pqt),l.Vc=function(e,n){GHt()},l.Fc=function(e){return UHt()},l.Wc=function(e,n){return WHt()},l.Gc=function(e){return YHt()},l.$b=function(){KHt()},l.Hc=function(e){return!1},l.Ic=function(e){return!1},l.Jc=function(e){va(this,e)},l.Xb=function(e){return s2t((wn(),e)),null},l.Xc=function(e){return-1},l.dc=function(){return!0},l.Kc=function(){return this.a},l.Yc=function(){return this.a},l.Zc=function(e){return this.a},l.ii=function(e,n){return XHt()},l.ji=function(e,n){QHt()},l.Lc=function(){return new Tn(null,new _n(this,16))},l.$c=function(e){return ZHt()},l.Mc=function(e){return JHt()},l._c=function(e,n){return tVt()},l.gc=function(){return 0},l.ad=function(e){r4(this,e)},l.Nc=function(){return new _n(this,16)},l.Oc=function(){return new Tn(null,new _n(this,16))},l.bd=function(e,n){return wn(),new Qd(io,e,n)},l.Pc=function(){return svt((wn(),io))},l.Qc=function(e){return wn(),eI(io,e)},F(Ra,"ECollections/EmptyUnmodifiableEList",1310),D(1311,768,{20:1,14:1,15:1,58:1,589:1},Fqt),l.Vc=function(e,n){GHt()},l.Fc=function(e){return UHt()},l.Wc=function(e,n){return WHt()},l.Gc=function(e){return YHt()},l.$b=function(){KHt()},l.Hc=function(e){return!1},l.Ic=function(e){return!1},l.Jc=function(e){va(this,e)},l.Xb=function(e){return s2t((wn(),e)),null},l.Xc=function(e){return-1},l.dc=function(){return!0},l.Kc=function(){return this.a},l.Yc=function(){return this.a},l.Zc=function(e){return this.a},l.ii=function(e,n){return XHt()},l.ji=function(e,n){QHt()},l.Lc=function(){return new Tn(null,new _n(this,16))},l.$c=function(e){return ZHt()},l.Mc=function(e){return JHt()},l._c=function(e,n){return tVt()},l.gc=function(){return 0},l.ad=function(e){r4(this,e)},l.Nc=function(){return new _n(this,16)},l.Oc=function(){return new Tn(null,new _n(this,16))},l.bd=function(e,n){return wn(),new Qd(io,e,n)},l.Pc=function(){return svt((wn(),io))},l.Qc=function(e){return wn(),eI(io,e)},l.sj=function(){return wn(),wn(),u0},F(Ra,"ECollections/EmptyUnmodifiableEMap",1311);var ZAt=Ki(Ra,"Enumerator"),dU;D(281,1,{281:1},fat),l.Fb=function(e){var n;return this===e?!0:_t(e,281)?(n=u(e,281),this.f==n.f&&$en(this.i,n.i)&&jnt(this.a,this.f&256?n.f&256?n.a:null:n.f&256?null:n.a)&&jnt(this.d,n.d)&&jnt(this.g,n.g)&&jnt(this.e,n.e)&&Pfn(this,n)):!1},l.Hb=function(){return this.f},l.Ib=function(){return sle(this)},l.f=0;var r5e=0,i5e=0,s5e=0,a5e=0,JAt=0,tLt=0,eLt=0,nLt=0,rLt=0,o5e,oA=0,cA=0,c5e=0,u5e=0,gU,iLt;F(Ra,"URI",281),D(1091,43,A4,Nqt),l.zc=function(e,n){return u(ko(this,Br(e),u(n,281)),281)},F(Ra,"URI/URICache",1091),D(497,63,Ld,Ok,Gj),l.hi=function(){return!0},F(Ra,"UniqueEList",497),D(581,60,Q0,W$),F(Ra,"WrappedException",581);var Zr=Ki(ph,A0e),t3=Ki(ph,L0e),Mu=Ki(ph,M0e),e3=Ki(ph,D0e),s1=Ki(ph,I0e),Uh=Ki(ph,"EClass"),Nft=Ki(ph,"EDataType"),l5e;D(1183,43,A4,Bqt),l.xc=function(e){return ra(e)?Nc(this,e):ec(Lo(this.f,e))},F(ph,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var pU=Ki(ph,"EEnum"),ag=Ki(ph,O0e),ho=Ki(ph,P0e),Wh=Ki(ph,F0e),Yh,Vv=Ki(ph,N0e),n3=Ki(ph,B0e);D(1029,1,{},nJ),l.Ib=function(){return"NIL"},F(ph,"EStructuralFeature/Internal/DynamicValueHolder/1",1029);var h5e;D(1028,43,A4,Rqt),l.xc=function(e){return ra(e)?Nc(this,e):ec(Lo(this.f,e))},F(ph,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var hu=Ki(ph,R0e),Z6=Ki(ph,"EValidator/PatternMatcher"),sLt,aLt,Ln,ap,r3,Lb,f5e,d5e,g5e,Mb,op,Db,Gv,W1,p5e,b5e,Kh,cp,w5e,up,i3,l5,Qa,v5e,m5e,Uv,bU=Ki($i,"FeatureMap/Entry");D(535,1,{72:1},lj),l.ak=function(){return this.a},l.dd=function(){return this.b},F(Mn,"BasicEObjectImpl/1",535),D(1027,1,hut,XGt),l.Wj=function(e){return Urt(this.a,this.b,e)},l.fj=function(){return MQt(this.a,this.b)},l.Wb=function(e){zvt(this.a,this.b,e)},l.Xj=function(){Nnn(this.a,this.b)},F(Mn,"BasicEObjectImpl/4",1027),D(1983,1,{108:1}),l.bk=function(e){this.e=e==0?y5e:Nt(Qn,De,1,e,5,1)},l.Ch=function(e){return this.e[e]},l.Dh=function(e,n){this.e[e]=n},l.Eh=function(e){this.e[e]=null},l.ck=function(){return this.c},l.dk=function(){throw it(new Or)},l.ek=function(){throw it(new Or)},l.fk=function(){return this.d},l.gk=function(){return this.e!=null},l.hk=function(e){this.c=e},l.ik=function(e){throw it(new Or)},l.jk=function(e){throw it(new Or)},l.kk=function(e){this.d=e};var y5e;F(Mn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),D(185,1983,{108:1},nh),l.dk=function(){return this.a},l.ek=function(){return this.b},l.ik=function(e){this.a=e},l.jk=function(e){this.b=e},F(Mn,"BasicEObjectImpl/EPropertiesHolderImpl",185),D(506,97,jde,Pk),l.Kg=function(){return this.f},l.Pg=function(){return this.k},l.Rg=function(e,n){this.g=e,this.i=n},l.Tg=function(){return this.j&2?this.ph().ck():this.zh()},l.Vg=function(){return this.i},l.Mg=function(){return(this.j&1)!=0},l.eh=function(){return this.g},l.kh=function(){return(this.j&4)!=0},l.ph=function(){return!this.k&&(this.k=new nh),this.k},l.th=function(e){this.ph().hk(e),e?this.j|=2:this.j&=-3},l.vh=function(e){this.ph().jk(e),e?this.j|=4:this.j&=-5},l.zh=function(){return(Hp(),Ln).S},l.i=0,l.j=1,F(Mn,"EObjectImpl",506),D(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},zwt),l.Ch=function(e){return this.e[e]},l.Dh=function(e,n){this.e[e]=n},l.Eh=function(e){this.e[e]=null},l.Tg=function(){return this.d},l.Yg=function(e){return Gi(this.d,e)},l.$g=function(){return this.d},l.dh=function(){return this.e!=null},l.ph=function(){return!this.k&&(this.k=new uB),this.k},l.th=function(e){this.d=e},l.yh=function(){var e;return this.e==null&&(e=Jn(this.d),this.e=e==0?x5e:Nt(Qn,De,1,e,5,1)),this},l.Ah=function(){return 0};var x5e;F(Mn,"DynamicEObjectImpl",780),D(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},hKt),l.Fb=function(e){return this===e},l.Hb=function(){return Pw(this)},l.th=function(e){this.d=e,this.b=mI(e,"key"),this.c=mI(e,Z_)},l.Sh=function(){var e;return this.a==-1&&(e=iit(this,this.b),this.a=e==null?0:Hi(e)),this.a},l.cd=function(){return iit(this,this.b)},l.dd=function(){return iit(this,this.c)},l.Th=function(e){this.a=e},l.Uh=function(e){zvt(this,this.b,e)},l.ed=function(e){var n;return n=iit(this,this.c),zvt(this,this.c,e),n},l.a=0,F(Mn,"DynamicEObjectImpl/BasicEMapEntry",1376),D(1377,1,{108:1},uB),l.bk=function(e){throw it(new Or)},l.Ch=function(e){throw it(new Or)},l.Dh=function(e,n){throw it(new Or)},l.Eh=function(e){throw it(new Or)},l.ck=function(){throw it(new Or)},l.dk=function(){return this.a},l.ek=function(){return this.b},l.fk=function(){return this.c},l.gk=function(){throw it(new Or)},l.hk=function(e){throw it(new Or)},l.ik=function(e){this.a=e},l.jk=function(e){this.b=e},l.kk=function(e){this.c=e},F(Mn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),D(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},lB),l.Qg=function(e){return a4t(this,e)},l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.d;case 2:return r?(!this.b&&(this.b=new kl((dn(),Qa),cc,this)),this.b):(!this.b&&(this.b=new kl((dn(),Qa),cc,this)),wD(this.b));case 3:return FQt(this);case 4:return!this.a&&(this.a=new As(_b,this,4)),this.a;case 5:return!this.c&&(this.c=new Y3(_b,this,5)),this.c}return uh(this,e-Jn((dn(),ap)),yn((s=u(Dn(this,16),26),s||ap),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 3:return this.Cb&&(r=(o=this.Db>>16,o>=0?a4t(this,r):this.Cb.ih(this,-1-o,null,r))),rvt(this,u(e,147),r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),ap)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),ap)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 2:return!this.b&&(this.b=new kl((dn(),Qa),cc,this)),Oj(this.b,e,r);case 3:return rvt(this,null,r);case 4:return!this.a&&(this.a=new As(_b,this,4)),Ba(this.a,e,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),ap)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),ap)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!FQt(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return oh(this,e-Jn((dn(),ap)),yn((n=u(Dn(this,16),26),n||ap),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Cen(this,Br(n));return;case 2:!this.b&&(this.b=new kl((dn(),Qa),cc,this)),xz(this.b,n);return;case 3:Kce(this,u(n,147));return;case 4:!this.a&&(this.a=new As(_b,this,4)),xr(this.a),!this.a&&(this.a=new As(_b,this,4)),is(this.a,u(n,14));return;case 5:!this.c&&(this.c=new Y3(_b,this,5)),xr(this.c),!this.c&&(this.c=new Y3(_b,this,5)),is(this.c,u(n,14));return}gh(this,e-Jn((dn(),ap)),yn((r=u(Dn(this,16),26),r||ap),e),n)},l.zh=function(){return dn(),ap},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:oyt(this,null);return;case 2:!this.b&&(this.b=new kl((dn(),Qa),cc,this)),this.b.c.$b();return;case 3:Kce(this,null);return;case 4:!this.a&&(this.a=new As(_b,this,4)),xr(this.a);return;case 5:!this.c&&(this.c=new Y3(_b,this,5)),xr(this.c);return}fh(this,e-Jn((dn(),ap)),yn((n=u(Dn(this,16),26),n||ap),e))},l.Ib=function(){return lie(this)},l.d=null,F(Mn,"EAnnotationImpl",510),D(151,705,j8t,_l),l.Xh=function(e,n){oQe(this,e,u(n,42))},l.lk=function(e,n){return eJe(this,u(e,42),n)},l.pi=function(e){return u(u(this.c,69).pi(e),133)},l.Zh=function(){return u(this.c,69).Zh()},l.$h=function(){return u(this.c,69).$h()},l._h=function(e){return u(this.c,69)._h(e)},l.mk=function(e,n){return Oj(this,e,n)},l.Wj=function(e){return u(this.c,76).Wj(e)},l.rj=function(){},l.fj=function(){return u(this.c,76).fj()},l.tj=function(e,n,r){var s;return s=u(Rl(this.b).Nh().Jh(this.b),133),s.Th(e),s.Uh(n),s.ed(r),s},l.uj=function(){return new _pt(this)},l.Wb=function(e){xz(this,e)},l.Xj=function(){u(this.c,76).Xj()},F($i,"EcoreEMap",151),D(158,151,j8t,kl),l.qj=function(){var e,n,r,s,o,h;if(this.d==null){for(h=Nt(XAt,R8t,63,2*this.f+1,0,1),r=this.c.Kc();r.e!=r.i.gc();)n=u(r.nj(),133),s=n.Sh(),o=(s&wi)%h.length,e=h[o],!e&&(e=h[o]=new _pt(this)),e.Fc(n);this.d=h}},F(Mn,"EAnnotationImpl/1",158),D(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),l._g=function(e,n,r){var s,o;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Nn(),!!(this.Bb&256);case 3:return Nn(),!!(this.Bb&512);case 4:return pe(this.s);case 5:return pe(this.t);case 6:return Nn(),!!this.$j();case 7:return Nn(),o=this.s,o>=1;case 8:return n?Dh(this):this.r;case 9:return this.q}return uh(this,e-Jn(this.zh()),yn((s=u(Dn(this,16),26),s||this.zh()),e),n,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 9:return nrt(this,r)}return o=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),o.Nj().Rj(this,su(this),n-Jn(this.zh()),e,r)},l.lh=function(e){var n,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&qw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&qw(this.q).i==0)}return oh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.sh=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:this.Lh(Br(n));return;case 2:zg(this,je(Re(n)));return;case 3:qg(this,je(Re(n)));return;case 4:Rg(this,u(n,19).a);return;case 5:this.ok(u(n,19).a);return;case 8:b2(this,u(n,138));return;case 9:s=F1(this,u(n,87),null),s&&s.Fi();return}gh(this,e-Jn(this.zh()),yn((r=u(Dn(this,16),26),r||this.zh()),e),n)},l.zh=function(){return dn(),m5e},l.Bh=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:this.Lh(null);return;case 2:zg(this,!0);return;case 3:qg(this,!0);return;case 4:Rg(this,0);return;case 5:this.ok(1);return;case 8:b2(this,null);return;case 9:r=F1(this,null,null),r&&r.Fi();return}fh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.Gh=function(){Dh(this),this.Bb|=1},l.Yj=function(){return Dh(this)},l.Zj=function(){return this.t},l.$j=function(){var e;return e=this.t,e>1||e==-1},l.hi=function(){return(this.Bb&512)!=0},l.nk=function(e,n){return e3t(this,e,n)},l.ok=function(e){ry(this,e)},l.Ib=function(){return f5t(this)},l.s=0,l.t=1,F(Mn,"ETypedElementImpl",284),D(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),l.Qg=function(e){return Use(this,e)},l._g=function(e,n,r){var s,o;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Nn(),!!(this.Bb&256);case 3:return Nn(),!!(this.Bb&512);case 4:return pe(this.s);case 5:return pe(this.t);case 6:return Nn(),!!this.$j();case 7:return Nn(),o=this.s,o>=1;case 8:return n?Dh(this):this.r;case 9:return this.q;case 10:return Nn(),!!(this.Bb&xf);case 11:return Nn(),!!(this.Bb&Dy);case 12:return Nn(),!!(this.Bb&Ey);case 13:return this.j;case 14:return SE(this);case 15:return Nn(),!!(this.Bb&Hu);case 16:return Nn(),!!(this.Bb&md);case 17:return Ym(this)}return uh(this,e-Jn(this.zh()),yn((s=u(Dn(this,16),26),s||this.zh()),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 17:return this.Cb&&(r=(o=this.Db>>16,o>=0?Use(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,17,r)}return h=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),h.Nj().Qj(this,su(this),n-Jn(this.zh()),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 9:return nrt(this,r);case 17:return Hl(this,null,17,r)}return o=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),o.Nj().Rj(this,su(this),n-Jn(this.zh()),e,r)},l.lh=function(e){var n,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&qw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&qw(this.q).i==0);case 10:return(this.Bb&xf)==0;case 11:return(this.Bb&Dy)!=0;case 12:return(this.Bb&Ey)!=0;case 13:return this.j!=null;case 14:return SE(this)!=null;case 15:return(this.Bb&Hu)!=0;case 16:return(this.Bb&md)!=0;case 17:return!!Ym(this)}return oh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.sh=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Mrt(this,Br(n));return;case 2:zg(this,je(Re(n)));return;case 3:qg(this,je(Re(n)));return;case 4:Rg(this,u(n,19).a);return;case 5:this.ok(u(n,19).a);return;case 8:b2(this,u(n,138));return;case 9:s=F1(this,u(n,87),null),s&&s.Fi();return;case 10:lE(this,je(Re(n)));return;case 11:dE(this,je(Re(n)));return;case 12:hE(this,je(Re(n)));return;case 13:r2t(this,Br(n));return;case 15:fE(this,je(Re(n)));return;case 16:gE(this,je(Re(n)));return}gh(this,e-Jn(this.zh()),yn((r=u(Dn(this,16),26),r||this.zh()),e),n)},l.zh=function(){return dn(),v5e},l.Bh=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:_t(this.Cb,88)&&gy(sl(u(this.Cb,88)),4),Qc(this,null);return;case 2:zg(this,!0);return;case 3:qg(this,!0);return;case 4:Rg(this,0);return;case 5:this.ok(1);return;case 8:b2(this,null);return;case 9:r=F1(this,null,null),r&&r.Fi();return;case 10:lE(this,!0);return;case 11:dE(this,!1);return;case 12:hE(this,!1);return;case 13:this.i=null,fz(this,null);return;case 15:fE(this,!1);return;case 16:gE(this,!1);return}fh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.Gh=function(){M8(To(($u(),ya),this)),Dh(this),this.Bb|=1},l.Gj=function(){return this.f},l.zj=function(){return SE(this)},l.Hj=function(){return Ym(this)},l.Lj=function(){return null},l.pk=function(){return this.k},l.aj=function(){return this.n},l.Mj=function(){return cq(this)},l.Nj=function(){var e,n,r,s,o,h,d,v,k;return this.p||(r=Ym(this),(r.i==null&&vd(r),r.i).length,s=this.Lj(),s&&Jn(Ym(s)),o=Dh(this),d=o.Bj(),e=d?d.i&1?d==pl?Rs:d==Cr?ja:d==a3?i7:d==aa?la:d==Ob?Sv:d==g5?Av:d==Gu?M6:uS:d:null,n=SE(this),v=o.zj(),shn(this),this.Bb&md&&((h=d4t(($u(),ya),r))&&h!=this||(h=Kx(To(ya,this))))?this.p=new ZGt(this,h):this.$j()?this.rk()?s?this.Bb&Hu?e?this.sk()?this.p=new n2(47,e,this,s):this.p=new n2(5,e,this,s):this.sk()?this.p=new s2(46,this,s):this.p=new s2(4,this,s):e?this.sk()?this.p=new n2(49,e,this,s):this.p=new n2(7,e,this,s):this.sk()?this.p=new s2(48,this,s):this.p=new s2(6,this,s):this.Bb&Hu?e?e==P2?this.p=new Ig(50,t5e,this):this.sk()?this.p=new Ig(43,e,this):this.p=new Ig(1,e,this):this.sk()?this.p=new Pg(42,this):this.p=new Pg(0,this):e?e==P2?this.p=new Ig(41,t5e,this):this.sk()?this.p=new Ig(45,e,this):this.p=new Ig(3,e,this):this.sk()?this.p=new Pg(44,this):this.p=new Pg(2,this):_t(o,148)?e==bU?this.p=new Pg(40,this):this.Bb&512?this.Bb&Hu?e?this.p=new Ig(9,e,this):this.p=new Pg(8,this):e?this.p=new Ig(11,e,this):this.p=new Pg(10,this):this.Bb&Hu?e?this.p=new Ig(13,e,this):this.p=new Pg(12,this):e?this.p=new Ig(15,e,this):this.p=new Pg(14,this):s?(k=s.t,k>1||k==-1?this.sk()?this.Bb&Hu?e?this.p=new n2(25,e,this,s):this.p=new s2(24,this,s):e?this.p=new n2(27,e,this,s):this.p=new s2(26,this,s):this.Bb&Hu?e?this.p=new n2(29,e,this,s):this.p=new s2(28,this,s):e?this.p=new n2(31,e,this,s):this.p=new s2(30,this,s):this.sk()?this.Bb&Hu?e?this.p=new n2(33,e,this,s):this.p=new s2(32,this,s):e?this.p=new n2(35,e,this,s):this.p=new s2(34,this,s):this.Bb&Hu?e?this.p=new n2(37,e,this,s):this.p=new s2(36,this,s):e?this.p=new n2(39,e,this,s):this.p=new s2(38,this,s)):this.sk()?this.Bb&Hu?e?this.p=new Ig(17,e,this):this.p=new Pg(16,this):e?this.p=new Ig(19,e,this):this.p=new Pg(18,this):this.Bb&Hu?e?this.p=new Ig(21,e,this):this.p=new Pg(20,this):e?this.p=new Ig(23,e,this):this.p=new Pg(22,this):this.qk()?this.sk()?this.p=new jYt(u(o,26),this,s):this.p=new $vt(u(o,26),this,s):_t(o,148)?e==bU?this.p=new Pg(40,this):this.Bb&Hu?e?this.p=new BKt(n,v,this,(rst(),d==Cr?dLt:d==pl?cLt:d==Ob?gLt:d==a3?fLt:d==aa?hLt:d==g5?pLt:d==Gu?uLt:d==xh?lLt:jft)):this.p=new KXt(u(o,148),n,v,this):e?this.p=new NKt(n,v,this,(rst(),d==Cr?dLt:d==pl?cLt:d==Ob?gLt:d==a3?fLt:d==aa?hLt:d==g5?pLt:d==Gu?uLt:d==xh?lLt:jft)):this.p=new YXt(u(o,148),n,v,this):this.rk()?s?this.Bb&Hu?this.sk()?this.p=new zYt(u(o,26),this,s):this.p=new Dwt(u(o,26),this,s):this.sk()?this.p=new $Yt(u(o,26),this,s):this.p=new Int(u(o,26),this,s):this.Bb&Hu?this.sk()?this.p=new NWt(u(o,26),this):this.p=new G2t(u(o,26),this):this.sk()?this.p=new FWt(u(o,26),this):this.p=new vnt(u(o,26),this):this.sk()?s?this.Bb&Hu?this.p=new qYt(u(o,26),this,s):this.p=new Lwt(u(o,26),this,s):this.Bb&Hu?this.p=new BWt(u(o,26),this):this.p=new U2t(u(o,26),this):s?this.Bb&Hu?this.p=new HYt(u(o,26),this,s):this.p=new Mwt(u(o,26),this,s):this.Bb&Hu?this.p=new RWt(u(o,26),this):this.p=new Uj(u(o,26),this)),this.p},l.Ij=function(){return(this.Bb&xf)!=0},l.qk=function(){return!1},l.rk=function(){return!1},l.Jj=function(){return(this.Bb&md)!=0},l.Oj=function(){return ait(this)},l.sk=function(){return!1},l.Kj=function(){return(this.Bb&Hu)!=0},l.tk=function(e){this.k=e},l.Lh=function(e){Mrt(this,e)},l.Ib=function(){return _q(this)},l.e=!1,l.n=0,F(Mn,"EStructuralFeatureImpl",449),D(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},ret),l._g=function(e,n,r){var s,o;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Nn(),!!(this.Bb&256);case 3:return Nn(),!!(this.Bb&512);case 4:return pe(this.s);case 5:return pe(this.t);case 6:return Nn(),!!c5t(this);case 7:return Nn(),o=this.s,o>=1;case 8:return n?Dh(this):this.r;case 9:return this.q;case 10:return Nn(),!!(this.Bb&xf);case 11:return Nn(),!!(this.Bb&Dy);case 12:return Nn(),!!(this.Bb&Ey);case 13:return this.j;case 14:return SE(this);case 15:return Nn(),!!(this.Bb&Hu);case 16:return Nn(),!!(this.Bb&md);case 17:return Ym(this);case 18:return Nn(),!!(this.Bb&dc);case 19:return n?Tit(this):KJt(this)}return uh(this,e-Jn((dn(),r3)),yn((s=u(Dn(this,16),26),s||r3),e),n,r)},l.lh=function(e){var n,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return c5t(this);case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&qw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&qw(this.q).i==0);case 10:return(this.Bb&xf)==0;case 11:return(this.Bb&Dy)!=0;case 12:return(this.Bb&Ey)!=0;case 13:return this.j!=null;case 14:return SE(this)!=null;case 15:return(this.Bb&Hu)!=0;case 16:return(this.Bb&md)!=0;case 17:return!!Ym(this);case 18:return(this.Bb&dc)!=0;case 19:return!!KJt(this)}return oh(this,e-Jn((dn(),r3)),yn((n=u(Dn(this,16),26),n||r3),e))},l.sh=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Mrt(this,Br(n));return;case 2:zg(this,je(Re(n)));return;case 3:qg(this,je(Re(n)));return;case 4:Rg(this,u(n,19).a);return;case 5:SHt(this,u(n,19).a);return;case 8:b2(this,u(n,138));return;case 9:s=F1(this,u(n,87),null),s&&s.Fi();return;case 10:lE(this,je(Re(n)));return;case 11:dE(this,je(Re(n)));return;case 12:hE(this,je(Re(n)));return;case 13:r2t(this,Br(n));return;case 15:fE(this,je(Re(n)));return;case 16:gE(this,je(Re(n)));return;case 18:Kit(this,je(Re(n)));return}gh(this,e-Jn((dn(),r3)),yn((r=u(Dn(this,16),26),r||r3),e),n)},l.zh=function(){return dn(),r3},l.Bh=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:_t(this.Cb,88)&&gy(sl(u(this.Cb,88)),4),Qc(this,null);return;case 2:zg(this,!0);return;case 3:qg(this,!0);return;case 4:Rg(this,0);return;case 5:this.b=0,ry(this,1);return;case 8:b2(this,null);return;case 9:r=F1(this,null,null),r&&r.Fi();return;case 10:lE(this,!0);return;case 11:dE(this,!1);return;case 12:hE(this,!1);return;case 13:this.i=null,fz(this,null);return;case 15:fE(this,!1);return;case 16:gE(this,!1);return;case 18:Kit(this,!1);return}fh(this,e-Jn((dn(),r3)),yn((n=u(Dn(this,16),26),n||r3),e))},l.Gh=function(){Tit(this),M8(To(($u(),ya),this)),Dh(this),this.Bb|=1},l.$j=function(){return c5t(this)},l.nk=function(e,n){return this.b=0,this.a=null,e3t(this,e,n)},l.ok=function(e){SHt(this,e)},l.Ib=function(){var e;return this.Db&64?_q(this):(e=new _h(_q(this)),e.a+=" (iD: ",Lg(e,(this.Bb&dc)!=0),e.a+=")",e.a)},l.b=0,F(Mn,"EAttributeImpl",322),D(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),l.uk=function(e){return e.Tg()==this},l.Qg=function(e){return Lst(this,e)},l.Rg=function(e,n){this.w=null,this.Db=n<<16|this.Db&255,this.Cb=e},l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return hv(this);case 4:return this.zj();case 5:return this.F;case 6:return n?Rl(this):O8(this);case 7:return!this.A&&(this.A=new Fu(hu,this,7)),this.A}return uh(this,e-Jn(this.zh()),yn((s=u(Dn(this,16),26),s||this.zh()),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?Lst(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,6,r)}return h=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),h.Nj().Qj(this,su(this),n-Jn(this.zh()),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 6:return Hl(this,null,6,r);case 7:return!this.A&&(this.A=new Fu(hu,this,7)),Ba(this.A,e,r)}return o=u(yn((s=u(Dn(this,16),26),s||this.zh()),n),66),o.Nj().Rj(this,su(this),n-Jn(this.zh()),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!hv(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!O8(this);case 7:return!!this.A&&this.A.i!=0}return oh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:_$(this,Br(n));return;case 2:snt(this,Br(n));return;case 5:OE(this,Br(n));return;case 7:!this.A&&(this.A=new Fu(hu,this,7)),xr(this.A),!this.A&&(this.A=new Fu(hu,this,7)),is(this.A,u(n,14));return}gh(this,e-Jn(this.zh()),yn((r=u(Dn(this,16),26),r||this.zh()),e),n)},l.zh=function(){return dn(),f5e},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:_t(this.Cb,179)&&(u(this.Cb,179).tb=null),Qc(this,null);return;case 2:aE(this,null),Y8(this,this.D);return;case 5:OE(this,null);return;case 7:!this.A&&(this.A=new Fu(hu,this,7)),xr(this.A);return}fh(this,e-Jn(this.zh()),yn((n=u(Dn(this,16),26),n||this.zh()),e))},l.yj=function(){var e;return this.G==-1&&(this.G=(e=Rl(this),e?Hg(e.Mh(),this):-1)),this.G},l.zj=function(){return null},l.Aj=function(){return Rl(this)},l.vk=function(){return this.v},l.Bj=function(){return hv(this)},l.Cj=function(){return this.D!=null?this.D:this.B},l.Dj=function(){return this.F},l.wj=function(e){return xat(this,e)},l.wk=function(e){this.v=e},l.xk=function(e){Cne(this,e)},l.yk=function(e){this.C=e},l.Lh=function(e){_$(this,e)},l.Ib=function(){return Rz(this)},l.C=null,l.D=null,l.G=-1,F(Mn,"EClassifierImpl",351),D(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},eM),l.uk=function(e){return zZe(this,e.Tg())},l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return hv(this);case 4:return null;case 5:return this.F;case 6:return n?Rl(this):O8(this);case 7:return!this.A&&(this.A=new Fu(hu,this,7)),this.A;case 8:return Nn(),!!(this.Bb&256);case 9:return Nn(),!!(this.Bb&512);case 10:return Ao(this);case 11:return!this.q&&(this.q=new fe(Wh,this,11,10)),this.q;case 12:return T4(this);case 13:return C_(this);case 14:return C_(this),this.r;case 15:return T4(this),this.k;case 16:return Z4t(this);case 17:return _at(this);case 18:return vd(this);case 19:return mq(this);case 20:return T4(this),this.o;case 21:return!this.s&&(this.s=new fe(Mu,this,21,17)),this.s;case 22:return Lc(this);case 23:return hat(this)}return uh(this,e-Jn((dn(),Lb)),yn((s=u(Dn(this,16),26),s||Lb),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?Lst(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,6,r);case 11:return!this.q&&(this.q=new fe(Wh,this,11,10)),Zc(this.q,e,r);case 21:return!this.s&&(this.s=new fe(Mu,this,21,17)),Zc(this.s,e,r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),Lb)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),Lb)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 6:return Hl(this,null,6,r);case 7:return!this.A&&(this.A=new Fu(hu,this,7)),Ba(this.A,e,r);case 11:return!this.q&&(this.q=new fe(Wh,this,11,10)),Ba(this.q,e,r);case 21:return!this.s&&(this.s=new fe(Mu,this,21,17)),Ba(this.s,e,r);case 22:return Ba(Lc(this),e,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),Lb)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),Lb)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!hv(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!O8(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&Lc(this.u.a).i!=0&&!(this.n&&vst(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return T4(this).i!=0;case 13:return C_(this).i!=0;case 14:return C_(this),this.r.i!=0;case 15:return T4(this),this.k.i!=0;case 16:return Z4t(this).i!=0;case 17:return _at(this).i!=0;case 18:return vd(this).i!=0;case 19:return mq(this).i!=0;case 20:return T4(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&vst(this.n);case 23:return hat(this).i!=0}return oh(this,e-Jn((dn(),Lb)),yn((n=u(Dn(this,16),26),n||Lb),e))},l.oh=function(e){var n;return n=this.i==null||this.q&&this.q.i!=0?null:mI(this,e),n||Lxt(this,e)},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:_$(this,Br(n));return;case 2:snt(this,Br(n));return;case 5:OE(this,Br(n));return;case 7:!this.A&&(this.A=new Fu(hu,this,7)),xr(this.A),!this.A&&(this.A=new Fu(hu,this,7)),is(this.A,u(n,14));return;case 8:r3t(this,je(Re(n)));return;case 9:i3t(this,je(Re(n)));return;case 10:A_(Ao(this)),is(Ao(this),u(n,14));return;case 11:!this.q&&(this.q=new fe(Wh,this,11,10)),xr(this.q),!this.q&&(this.q=new fe(Wh,this,11,10)),is(this.q,u(n,14));return;case 21:!this.s&&(this.s=new fe(Mu,this,21,17)),xr(this.s),!this.s&&(this.s=new fe(Mu,this,21,17)),is(this.s,u(n,14));return;case 22:xr(Lc(this)),is(Lc(this),u(n,14));return}gh(this,e-Jn((dn(),Lb)),yn((r=u(Dn(this,16),26),r||Lb),e),n)},l.zh=function(){return dn(),Lb},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:_t(this.Cb,179)&&(u(this.Cb,179).tb=null),Qc(this,null);return;case 2:aE(this,null),Y8(this,this.D);return;case 5:OE(this,null);return;case 7:!this.A&&(this.A=new Fu(hu,this,7)),xr(this.A);return;case 8:r3t(this,!1);return;case 9:i3t(this,!1);return;case 10:this.u&&A_(this.u);return;case 11:!this.q&&(this.q=new fe(Wh,this,11,10)),xr(this.q);return;case 21:!this.s&&(this.s=new fe(Mu,this,21,17)),xr(this.s);return;case 22:this.n&&xr(this.n);return}fh(this,e-Jn((dn(),Lb)),yn((n=u(Dn(this,16),26),n||Lb),e))},l.Gh=function(){var e,n;if(T4(this),C_(this),Z4t(this),_at(this),vd(this),mq(this),hat(this),z9(ien(sl(this))),this.s)for(e=0,n=this.s.i;e=0;--n)At(this,n);return _3t(this,e)},l.Xj=function(){xr(this)},l.oi=function(e,n){return Yee(this,e,n)},F($i,"EcoreEList",622),D(496,622,zo,ZM),l.ai=function(){return!1},l.aj=function(){return this.c},l.bj=function(){return!1},l.Fk=function(){return!0},l.hi=function(){return!0},l.li=function(e,n){return n},l.ni=function(){return!1},l.c=0,F($i,"EObjectEList",496),D(85,496,zo,As),l.bj=function(){return!0},l.Dk=function(){return!1},l.rk=function(){return!0},F($i,"EObjectContainmentEList",85),D(545,85,zo,kj),l.ci=function(){this.b=!0},l.fj=function(){return this.b},l.Xj=function(){var e;xr(this),xl(this.e)?(e=this.b,this.b=!1,mi(this.e,new bf(this.e,2,this.c,e,!1))):this.b=!1},l.b=!1,F($i,"EObjectContainmentEList/Unsettable",545),D(1140,545,zo,PKt),l.ii=function(e,n){var r,s;return r=u(r_(this,e,n),87),xl(this.e)&&n8(this,new mD(this.a,7,(dn(),d5e),pe(n),(s=r.c,_t(s,88)?u(s,26):Kh),e)),r},l.jj=function(e,n){return Uhn(this,u(e,87),n)},l.kj=function(e,n){return Ghn(this,u(e,87),n)},l.lj=function(e,n,r){return Wdn(this,u(e,87),u(n,87),r)},l.Zi=function(e,n,r,s,o){switch(e){case 3:return F9(this,e,n,r,s,this.i>1);case 5:return F9(this,e,n,r,s,this.i-u(r,15).gc()>0);default:return new z0(this.e,e,this.c,n,r,s,!0)}},l.ij=function(){return!0},l.fj=function(){return vst(this)},l.Xj=function(){xr(this)},F(Mn,"EClassImpl/1",1140),D(1154,1153,B8t),l.ui=function(e){var n,r,s,o,h,d,v;if(r=e.xi(),r!=8){if(s=Lfn(e),s==0)switch(r){case 1:case 9:{v=e.Bi(),v!=null&&(n=sl(u(v,473)),!n.c&&(n.c=new Tm),X$(n.c,e.Ai())),d=e.zi(),d!=null&&(o=u(d,473),o.Bb&1||(n=sl(o),!n.c&&(n.c=new Tm),Dr(n.c,u(e.Ai(),26))));break}case 3:{d=e.zi(),d!=null&&(o=u(d,473),o.Bb&1||(n=sl(o),!n.c&&(n.c=new Tm),Dr(n.c,u(e.Ai(),26))));break}case 5:{if(d=e.zi(),d!=null)for(h=u(d,14).Kc();h.Ob();)o=u(h.Pb(),473),o.Bb&1||(n=sl(o),!n.c&&(n.c=new Tm),Dr(n.c,u(e.Ai(),26)));break}case 4:{v=e.Bi(),v!=null&&(o=u(v,473),o.Bb&1||(n=sl(o),!n.c&&(n.c=new Tm),X$(n.c,e.Ai())));break}case 6:{if(v=e.Bi(),v!=null)for(h=u(v,14).Kc();h.Ob();)o=u(h.Pb(),473),o.Bb&1||(n=sl(o),!n.c&&(n.c=new Tm),X$(n.c,e.Ai()));break}}this.Hk(s)}},l.Hk=function(e){Oue(this,e)},l.b=63,F(Mn,"ESuperAdapter",1154),D(1155,1154,B8t,Uzt),l.Hk=function(e){gy(this,e)},F(Mn,"EClassImpl/10",1155),D(1144,696,zo),l.Vh=function(e,n){return $st(this,e,n)},l.Wh=function(e){return Lse(this,e)},l.Xh=function(e,n){UD(this,e,n)},l.Yh=function(e){gD(this,e)},l.pi=function(e){return Fmt(this,e)},l.mi=function(e,n){return sit(this,e,n)},l.lk=function(e,n){throw it(new Or)},l.Zh=function(){return new Bx(this)},l.$h=function(){return new $M(this)},l._h=function(e){return DD(this,e)},l.mk=function(e,n){throw it(new Or)},l.Wj=function(e){return this},l.fj=function(){return this.i!=0},l.Wb=function(e){throw it(new Or)},l.Xj=function(){throw it(new Or)},F($i,"EcoreEList/UnmodifiableEList",1144),D(319,1144,zo,V3),l.ni=function(){return!1},F($i,"EcoreEList/UnmodifiableEList/FastCompare",319),D(1147,319,zo,wre),l.Xc=function(e){var n,r,s;if(_t(e,170)&&(n=u(e,170),r=n.aj(),r!=-1)){for(s=this.i;r4)if(this.wj(e)){if(this.rk()){if(s=u(e,49),r=s.Ug(),v=r==this.b&&(this.Dk()?s.Og(s.Vg(),u(yn(vu(this.b),this.aj()).Yj(),26).Bj())==no(u(yn(vu(this.b),this.aj()),18)).n:-1-s.Vg()==this.aj()),this.Ek()&&!v&&!r&&s.Zg()){for(o=0;o1||s==-1)):!1},l.Dk=function(){var e,n,r;return n=yn(vu(this.b),this.aj()),_t(n,99)?(e=u(n,18),r=no(e),!!r):!1},l.Ek=function(){var e,n;return n=yn(vu(this.b),this.aj()),_t(n,99)?(e=u(n,18),(e.Bb&Ka)!=0):!1},l.Xc=function(e){var n,r,s,o;if(s=this.Qi(e),s>=0)return s;if(this.Fk()){for(r=0,o=this.Vi();r=0;--e)AI(this,e,this.Oi(e));return this.Wi()},l.Qc=function(e){var n;if(this.Ek())for(n=this.Vi()-1;n>=0;--n)AI(this,n,this.Oi(n));return this.Xi(e)},l.Xj=function(){A_(this)},l.oi=function(e,n){return Ite(this,e,n)},F($i,"DelegatingEcoreEList",742),D(1150,742,z8t,KWt),l.Hi=function(e,n){pZe(this,e,u(n,26))},l.Ii=function(e){uQe(this,u(e,26))},l.Oi=function(e){var n,r;return n=u(At(Lc(this.a),e),87),r=n.c,_t(r,88)?u(r,26):(dn(),Kh)},l.Ti=function(e){var n,r;return n=u(by(Lc(this.a),e),87),r=n.c,_t(r,88)?u(r,26):(dn(),Kh)},l.Ui=function(e,n){return b1n(this,e,u(n,26))},l.ai=function(){return!1},l.Zi=function(e,n,r,s,o){return null},l.Ji=function(){return new Yzt(this)},l.Ki=function(){xr(Lc(this.a))},l.Li=function(e){return cie(this,e)},l.Mi=function(e){var n,r;for(r=e.Kc();r.Ob();)if(n=r.Pb(),!cie(this,n))return!1;return!0},l.Ni=function(e){var n,r,s;if(_t(e,15)&&(s=u(e,15),s.gc()==Lc(this.a).i)){for(n=s.Kc(),r=new nr(this);n.Ob();)if(Vt(n.Pb())!==Vt(dr(r)))return!1;return!0}return!1},l.Pi=function(){var e,n,r,s,o;for(r=1,n=new nr(Lc(this.a));n.e!=n.i.gc();)e=u(dr(n),87),s=(o=e.c,_t(o,88)?u(o,26):(dn(),Kh)),r=31*r+(s?Pw(s):0);return r},l.Qi=function(e){var n,r,s,o;for(s=0,r=new nr(Lc(this.a));r.e!=r.i.gc();){if(n=u(dr(r),87),Vt(e)===Vt((o=n.c,_t(o,88)?u(o,26):(dn(),Kh))))return s;++s}return-1},l.Ri=function(){return Lc(this.a).i==0},l.Si=function(){return null},l.Vi=function(){return Lc(this.a).i},l.Wi=function(){var e,n,r,s,o,h;for(h=Lc(this.a).i,o=Nt(Qn,De,1,h,5,1),r=0,n=new nr(Lc(this.a));n.e!=n.i.gc();)e=u(dr(n),87),o[r++]=(s=e.c,_t(s,88)?u(s,26):(dn(),Kh));return o},l.Xi=function(e){var n,r,s,o,h,d,v;for(v=Lc(this.a).i,e.lengthv&&ts(e,v,null),s=0,r=new nr(Lc(this.a));r.e!=r.i.gc();)n=u(dr(r),87),h=(d=n.c,_t(d,88)?u(d,26):(dn(),Kh)),ts(e,s++,h);return e},l.Yi=function(){var e,n,r,s,o;for(o=new Ag,o.a+="[",e=Lc(this.a),n=0,s=Lc(this.a).i;n>16,o>=0?Lst(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,6,r);case 9:return!this.a&&(this.a=new fe(ag,this,9,5)),Zc(this.a,e,r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),Mb)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),Mb)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 6:return Hl(this,null,6,r);case 7:return!this.A&&(this.A=new Fu(hu,this,7)),Ba(this.A,e,r);case 9:return!this.a&&(this.a=new fe(ag,this,9,5)),Ba(this.a,e,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),Mb)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),Mb)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!hv(this);case 4:return!!Hyt(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!O8(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return oh(this,e-Jn((dn(),Mb)),yn((n=u(Dn(this,16),26),n||Mb),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:_$(this,Br(n));return;case 2:snt(this,Br(n));return;case 5:OE(this,Br(n));return;case 7:!this.A&&(this.A=new Fu(hu,this,7)),xr(this.A),!this.A&&(this.A=new Fu(hu,this,7)),is(this.A,u(n,14));return;case 8:Iz(this,je(Re(n)));return;case 9:!this.a&&(this.a=new fe(ag,this,9,5)),xr(this.a),!this.a&&(this.a=new fe(ag,this,9,5)),is(this.a,u(n,14));return}gh(this,e-Jn((dn(),Mb)),yn((r=u(Dn(this,16),26),r||Mb),e),n)},l.zh=function(){return dn(),Mb},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:_t(this.Cb,179)&&(u(this.Cb,179).tb=null),Qc(this,null);return;case 2:aE(this,null),Y8(this,this.D);return;case 5:OE(this,null);return;case 7:!this.A&&(this.A=new Fu(hu,this,7)),xr(this.A);return;case 8:Iz(this,!0);return;case 9:!this.a&&(this.a=new fe(ag,this,9,5)),xr(this.a);return}fh(this,e-Jn((dn(),Mb)),yn((n=u(Dn(this,16),26),n||Mb),e))},l.Gh=function(){var e,n;if(this.a)for(e=0,n=this.a.i;e>16==5?u(this.Cb,671):null}return uh(this,e-Jn((dn(),op)),yn((s=u(Dn(this,16),26),s||op),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 5:return this.Cb&&(r=(o=this.Db>>16,o>=0?tae(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,5,r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),op)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),op)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 5:return Hl(this,null,5,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),op)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),op)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&u(this.Cb,671))}return oh(this,e-Jn((dn(),op)),yn((n=u(Dn(this,16),26),n||op),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Qc(this,Br(n));return;case 2:hit(this,u(n,19).a);return;case 3:Koe(this,u(n,1940));return;case 4:dit(this,Br(n));return}gh(this,e-Jn((dn(),op)),yn((r=u(Dn(this,16),26),r||op),e),n)},l.zh=function(){return dn(),op},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:Qc(this,null);return;case 2:hit(this,0);return;case 3:Koe(this,null);return;case 4:dit(this,null);return}fh(this,e-Jn((dn(),op)),yn((n=u(Dn(this,16),26),n||op),e))},l.Ib=function(){var e;return e=this.c,e??this.zb},l.b=null,l.c=null,l.d=0,F(Mn,"EEnumLiteralImpl",573);var x6n=Ki(Mn,"EFactoryImpl/InternalEDateTimeFormat");D(489,1,{2015:1},fM),F(Mn,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),D(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},xw),l.Sg=function(e,n,r){var s;return r=Hl(this,e,n,r),this.e&&_t(e,170)&&(s=vq(this,this.e),s!=this.c&&(r=PE(this,s,r))),r},l._g=function(e,n,r){var s;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new As(ho,this,1)),this.d;case 2:return n?Lq(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return n?xst(this):this.a}return uh(this,e-Jn((dn(),Gv)),yn((s=u(Dn(this,16),26),s||Gv),e),n,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return Zre(this,null,r);case 1:return!this.d&&(this.d=new As(ho,this,1)),Ba(this.d,e,r);case 3:return Qre(this,null,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),Gv)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),Gv)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return oh(this,e-Jn((dn(),Gv)),yn((n=u(Dn(this,16),26),n||Gv),e))},l.sh=function(e,n){var r;switch(e){case 0:vae(this,u(n,87));return;case 1:!this.d&&(this.d=new As(ho,this,1)),xr(this.d),!this.d&&(this.d=new As(ho,this,1)),is(this.d,u(n,14));return;case 3:k4t(this,u(n,87));return;case 4:j4t(this,u(n,836));return;case 5:H8(this,u(n,138));return}gh(this,e-Jn((dn(),Gv)),yn((r=u(Dn(this,16),26),r||Gv),e),n)},l.zh=function(){return dn(),Gv},l.Bh=function(e){var n;switch(e){case 0:vae(this,null);return;case 1:!this.d&&(this.d=new As(ho,this,1)),xr(this.d);return;case 3:k4t(this,null);return;case 4:j4t(this,null);return;case 5:H8(this,null);return}fh(this,e-Jn((dn(),Gv)),yn((n=u(Dn(this,16),26),n||Gv),e))},l.Ib=function(){var e;return e=new Ol(mf(this)),e.a+=" (expression: ",Mat(this,e),e.a+=")",e.a};var oLt;F(Mn,"EGenericTypeImpl",241),D(1969,1964,NH),l.Xh=function(e,n){UWt(this,e,n)},l.lk=function(e,n){return UWt(this,this.gc(),e),n},l.pi=function(e){return Zf(this.Gi(),e)},l.Zh=function(){return this.$h()},l.Gi=function(){return new Zzt(this)},l.$h=function(){return this._h(0)},l._h=function(e){return this.Gi().Zc(e)},l.mk=function(e,n){return ay(this,e,!0),n},l.ii=function(e,n){var r,s;return s=Dst(this,n),r=this.Zc(e),r.Rb(s),s},l.ji=function(e,n){var r;ay(this,n,!0),r=this.Zc(e),r.Rb(n)},F($i,"AbstractSequentialInternalEList",1969),D(486,1969,NH,jM),l.pi=function(e){return Zf(this.Gi(),e)},l.Zh=function(){return this.b==null?(Mg(),Mg(),bP):this.Jk()},l.Gi=function(){return new wUt(this.a,this.b)},l.$h=function(){return this.b==null?(Mg(),Mg(),bP):this.Jk()},l._h=function(e){var n,r;if(this.b==null){if(e<0||e>1)throw it(new yo(J_+e+", size=0"));return Mg(),Mg(),bP}for(r=this.Jk(),n=0;n0;)if(n=this.c[--this.d],(!this.e||n.Gj()!=j7||n.aj()!=0)&&(!this.Mk()||this.b.mh(n))){if(h=this.b.bh(n,this.Lk()),this.f=(to(),u(n,66).Oj()),this.f||n.$j()){if(this.Lk()?(s=u(h,15),this.k=s):(s=u(h,69),this.k=this.j=s),_t(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?loe(this,this.p):koe(this))return o=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?(e=u(o,72),e.ak(),r=e.dd(),this.i=r):(r=o,this.i=r),this.g=-3,!0}else if(h!=null)return this.k=null,this.p=null,r=h,this.i=r,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return o=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?(e=u(o,72),e.ak(),r=e.dd(),this.i=r):(r=o,this.i=r),this.g=-3,!0}},l.Pb=function(){return kz(this)},l.Tb=function(){return this.a},l.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw it(new lc)},l.Vb=function(){return this.a-1},l.Qb=function(){throw it(new Or)},l.Lk=function(){return!1},l.Wb=function(e){throw it(new Or)},l.Mk=function(){return!0},l.a=0,l.d=0,l.f=!1,l.g=0,l.n=0,l.o=0;var bP;F($i,"EContentsEList/FeatureIteratorImpl",279),D(697,279,BH,V2t),l.Lk=function(){return!0},F($i,"EContentsEList/ResolvingFeatureIteratorImpl",697),D(1157,697,BH,PWt),l.Mk=function(){return!1},F(Mn,"ENamedElementImpl/1/1",1157),D(1158,279,BH,OWt),l.Mk=function(){return!1},F(Mn,"ENamedElementImpl/1/2",1158),D(36,143,nO,Qm,Rrt,Js,Jrt,z0,bf,Ymt,cZt,Kmt,uZt,mmt,lZt,Zmt,hZt,ymt,fZt,Xmt,dZt,A9,mD,brt,Qmt,gZt,xmt,pZt),l._i=function(){return Imt(this)},l.gj=function(){var e;return e=Imt(this),e?e.zj():null},l.yi=function(e){return this.b==-1&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,e)},l.Ai=function(){return this.c},l.hj=function(){var e;return e=Imt(this),e?e.Kj():!1},l.b=-1,F(Mn,"ENotificationImpl",36),D(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},iet),l.Qg=function(e){return rae(this,e)},l._g=function(e,n,r){var s,o,h;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Nn(),!!(this.Bb&256);case 3:return Nn(),!!(this.Bb&512);case 4:return pe(this.s);case 5:return pe(this.t);case 6:return Nn(),h=this.t,h>1||h==-1;case 7:return Nn(),o=this.s,o>=1;case 8:return n?Dh(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,26):null;case 11:return!this.d&&(this.d=new Fu(hu,this,11)),this.d;case 12:return!this.c&&(this.c=new fe(Vv,this,12,10)),this.c;case 13:return!this.a&&(this.a=new GM(this,this)),this.a;case 14:return al(this)}return uh(this,e-Jn((dn(),cp)),yn((s=u(Dn(this,16),26),s||cp),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?rae(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,10,r);case 12:return!this.c&&(this.c=new fe(Vv,this,12,10)),Zc(this.c,e,r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),cp)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),cp)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 9:return nrt(this,r);case 10:return Hl(this,null,10,r);case 11:return!this.d&&(this.d=new Fu(hu,this,11)),Ba(this.d,e,r);case 12:return!this.c&&(this.c=new fe(Vv,this,12,10)),Ba(this.c,e,r);case 14:return Ba(al(this),e,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),cp)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),cp)),e,r)},l.lh=function(e){var n,r,s;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return s=this.t,s>1||s==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&qw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&qw(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,26));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&al(this.a.a).i!=0&&!(this.b&&mst(this.b));case 14:return!!this.b&&mst(this.b)}return oh(this,e-Jn((dn(),cp)),yn((n=u(Dn(this,16),26),n||cp),e))},l.sh=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Qc(this,Br(n));return;case 2:zg(this,je(Re(n)));return;case 3:qg(this,je(Re(n)));return;case 4:Rg(this,u(n,19).a);return;case 5:ry(this,u(n,19).a);return;case 8:b2(this,u(n,138));return;case 9:s=F1(this,u(n,87),null),s&&s.Fi();return;case 11:!this.d&&(this.d=new Fu(hu,this,11)),xr(this.d),!this.d&&(this.d=new Fu(hu,this,11)),is(this.d,u(n,14));return;case 12:!this.c&&(this.c=new fe(Vv,this,12,10)),xr(this.c),!this.c&&(this.c=new fe(Vv,this,12,10)),is(this.c,u(n,14));return;case 13:!this.a&&(this.a=new GM(this,this)),A_(this.a),!this.a&&(this.a=new GM(this,this)),is(this.a,u(n,14));return;case 14:xr(al(this)),is(al(this),u(n,14));return}gh(this,e-Jn((dn(),cp)),yn((r=u(Dn(this,16),26),r||cp),e),n)},l.zh=function(){return dn(),cp},l.Bh=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:Qc(this,null);return;case 2:zg(this,!0);return;case 3:qg(this,!0);return;case 4:Rg(this,0);return;case 5:ry(this,1);return;case 8:b2(this,null);return;case 9:r=F1(this,null,null),r&&r.Fi();return;case 11:!this.d&&(this.d=new Fu(hu,this,11)),xr(this.d);return;case 12:!this.c&&(this.c=new fe(Vv,this,12,10)),xr(this.c);return;case 13:this.a&&A_(this.a);return;case 14:this.b&&xr(this.b);return}fh(this,e-Jn((dn(),cp)),yn((n=u(Dn(this,16),26),n||cp),e))},l.Gh=function(){var e,n;if(this.c)for(e=0,n=this.c.i;ev&&ts(e,v,null),s=0,r=new nr(al(this.a));r.e!=r.i.gc();)n=u(dr(r),87),h=(d=n.c,d||(dn(),W1)),ts(e,s++,h);return e},l.Yi=function(){var e,n,r,s,o;for(o=new Ag,o.a+="[",e=al(this.a),n=0,s=al(this.a).i;n1);case 5:return F9(this,e,n,r,s,this.i-u(r,15).gc()>0);default:return new z0(this.e,e,this.c,n,r,s,!0)}},l.ij=function(){return!0},l.fj=function(){return mst(this)},l.Xj=function(){xr(this)},F(Mn,"EOperationImpl/2",1341),D(498,1,{1938:1,498:1},QGt),F(Mn,"EPackageImpl/1",498),D(16,85,zo,fe),l.zk=function(){return this.d},l.Ak=function(){return this.b},l.Dk=function(){return!0},l.b=0,F($i,"EObjectContainmentWithInverseEList",16),D(353,16,zo,Rx),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectContainmentWithInverseEList/Resolving",353),D(298,353,zo,Gm),l.ci=function(){this.a.tb=null},F(Mn,"EPackageImpl/2",298),D(1228,1,{},hB),F(Mn,"EPackageImpl/3",1228),D(718,43,A4,Upt),l._b=function(e){return ra(e)?wrt(this,e):!!Lo(this.f,e)},F(Mn,"EPackageRegistryImpl",718),D(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},set),l.Qg=function(e){return iae(this,e)},l._g=function(e,n,r){var s,o,h;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Nn(),!!(this.Bb&256);case 3:return Nn(),!!(this.Bb&512);case 4:return pe(this.s);case 5:return pe(this.t);case 6:return Nn(),h=this.t,h>1||h==-1;case 7:return Nn(),o=this.s,o>=1;case 8:return n?Dh(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,59):null}return uh(this,e-Jn((dn(),i3)),yn((s=u(Dn(this,16),26),s||i3),e),n,r)},l.hh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Zc(this.Ab,e,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?iae(this,r):this.Cb.ih(this,-1-o,null,r))),Hl(this,e,10,r)}return h=u(yn((s=u(Dn(this,16),26),s||(dn(),i3)),n),66),h.Nj().Qj(this,su(this),n-Jn((dn(),i3)),e,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 9:return nrt(this,r);case 10:return Hl(this,null,10,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),i3)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),i3)),e,r)},l.lh=function(e){var n,r,s;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return s=this.t,s>1||s==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&qw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&qw(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,59))}return oh(this,e-Jn((dn(),i3)),yn((n=u(Dn(this,16),26),n||i3),e))},l.zh=function(){return dn(),i3},F(Mn,"EParameterImpl",509),D(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},K2t),l._g=function(e,n,r){var s,o,h,d;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Nn(),!!(this.Bb&256);case 3:return Nn(),!!(this.Bb&512);case 4:return pe(this.s);case 5:return pe(this.t);case 6:return Nn(),d=this.t,d>1||d==-1;case 7:return Nn(),o=this.s,o>=1;case 8:return n?Dh(this):this.r;case 9:return this.q;case 10:return Nn(),!!(this.Bb&xf);case 11:return Nn(),!!(this.Bb&Dy);case 12:return Nn(),!!(this.Bb&Ey);case 13:return this.j;case 14:return SE(this);case 15:return Nn(),!!(this.Bb&Hu);case 16:return Nn(),!!(this.Bb&md);case 17:return Ym(this);case 18:return Nn(),!!(this.Bb&dc);case 19:return Nn(),h=no(this),!!(h&&h.Bb&dc);case 20:return Nn(),!!(this.Bb&Ka);case 21:return n?no(this):this.b;case 22:return n?Iyt(this):BJt(this);case 23:return!this.a&&(this.a=new Y3(e3,this,23)),this.a}return uh(this,e-Jn((dn(),l5)),yn((s=u(Dn(this,16),26),s||l5),e),n,r)},l.lh=function(e){var n,r,s,o;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return o=this.t,o>1||o==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&qw(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&qw(this.q).i==0);case 10:return(this.Bb&xf)==0;case 11:return(this.Bb&Dy)!=0;case 12:return(this.Bb&Ey)!=0;case 13:return this.j!=null;case 14:return SE(this)!=null;case 15:return(this.Bb&Hu)!=0;case 16:return(this.Bb&md)!=0;case 17:return!!Ym(this);case 18:return(this.Bb&dc)!=0;case 19:return s=no(this),!!s&&(s.Bb&dc)!=0;case 20:return(this.Bb&Ka)==0;case 21:return!!this.b;case 22:return!!BJt(this);case 23:return!!this.a&&this.a.i!=0}return oh(this,e-Jn((dn(),l5)),yn((n=u(Dn(this,16),26),n||l5),e))},l.sh=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Mrt(this,Br(n));return;case 2:zg(this,je(Re(n)));return;case 3:qg(this,je(Re(n)));return;case 4:Rg(this,u(n,19).a);return;case 5:ry(this,u(n,19).a);return;case 8:b2(this,u(n,138));return;case 9:s=F1(this,u(n,87),null),s&&s.Fi();return;case 10:lE(this,je(Re(n)));return;case 11:dE(this,je(Re(n)));return;case 12:hE(this,je(Re(n)));return;case 13:r2t(this,Br(n));return;case 15:fE(this,je(Re(n)));return;case 16:gE(this,je(Re(n)));return;case 18:xin(this,je(Re(n)));return;case 20:u3t(this,je(Re(n)));return;case 21:cyt(this,u(n,18));return;case 23:!this.a&&(this.a=new Y3(e3,this,23)),xr(this.a),!this.a&&(this.a=new Y3(e3,this,23)),is(this.a,u(n,14));return}gh(this,e-Jn((dn(),l5)),yn((r=u(Dn(this,16),26),r||l5),e),n)},l.zh=function(){return dn(),l5},l.Bh=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:_t(this.Cb,88)&&gy(sl(u(this.Cb,88)),4),Qc(this,null);return;case 2:zg(this,!0);return;case 3:qg(this,!0);return;case 4:Rg(this,0);return;case 5:ry(this,1);return;case 8:b2(this,null);return;case 9:r=F1(this,null,null),r&&r.Fi();return;case 10:lE(this,!0);return;case 11:dE(this,!1);return;case 12:hE(this,!1);return;case 13:this.i=null,fz(this,null);return;case 15:fE(this,!1);return;case 16:gE(this,!1);return;case 18:c3t(this,!1),_t(this.Cb,88)&&gy(sl(u(this.Cb,88)),2);return;case 20:u3t(this,!0);return;case 21:cyt(this,null);return;case 23:!this.a&&(this.a=new Y3(e3,this,23)),xr(this.a);return}fh(this,e-Jn((dn(),l5)),yn((n=u(Dn(this,16),26),n||l5),e))},l.Gh=function(){Iyt(this),M8(To(($u(),ya),this)),Dh(this),this.Bb|=1},l.Lj=function(){return no(this)},l.qk=function(){var e;return e=no(this),!!e&&(e.Bb&dc)!=0},l.rk=function(){return(this.Bb&dc)!=0},l.sk=function(){return(this.Bb&Ka)!=0},l.nk=function(e,n){return this.c=null,e3t(this,e,n)},l.Ib=function(){var e;return this.Db&64?_q(this):(e=new _h(_q(this)),e.a+=" (containment: ",Lg(e,(this.Bb&dc)!=0),e.a+=", resolveProxies: ",Lg(e,(this.Bb&Ka)!=0),e.a+=")",e.a)},F(Mn,"EReferenceImpl",99),D(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},iJ),l.Fb=function(e){return this===e},l.cd=function(){return this.b},l.dd=function(){return this.c},l.Hb=function(){return Pw(this)},l.Uh=function(e){_en(this,Br(e))},l.ed=function(e){return gen(this,Br(e))},l._g=function(e,n,r){var s;switch(e){case 0:return this.b;case 1:return this.c}return uh(this,e-Jn((dn(),Qa)),yn((s=u(Dn(this,16),26),s||Qa),e),n,r)},l.lh=function(e){var n;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return oh(this,e-Jn((dn(),Qa)),yn((n=u(Dn(this,16),26),n||Qa),e))},l.sh=function(e,n){var r;switch(e){case 0:Sen(this,Br(n));return;case 1:syt(this,Br(n));return}gh(this,e-Jn((dn(),Qa)),yn((r=u(Dn(this,16),26),r||Qa),e),n)},l.zh=function(){return dn(),Qa},l.Bh=function(e){var n;switch(e){case 0:iyt(this,null);return;case 1:syt(this,null);return}fh(this,e-Jn((dn(),Qa)),yn((n=u(Dn(this,16),26),n||Qa),e))},l.Sh=function(){var e;return this.a==-1&&(e=this.b,this.a=e==null?0:Vg(e)),this.a},l.Th=function(e){this.a=e},l.Ib=function(){var e;return this.Db&64?mf(this):(e=new _h(mf(this)),e.a+=" (key: ",go(e,this.b),e.a+=", value: ",go(e,this.c),e.a+=")",e.a)},l.a=-1,l.b=null,l.c=null;var cc=F(Mn,"EStringToStringMapEntryImpl",548),E5e=Ki($i,"FeatureMap/Entry/Internal");D(565,1,RH),l.Ok=function(e){return this.Pk(u(e,49))},l.Pk=function(e){return this.Ok(e)},l.Fb=function(e){var n,r;return this===e?!0:_t(e,72)?(n=u(e,72),n.ak()==this.c?(r=this.dd(),r==null?n.dd()==null:yi(r,n.dd())):!1):!1},l.ak=function(){return this.c},l.Hb=function(){var e;return e=this.dd(),Hi(this.c)^(e==null?0:Hi(e))},l.Ib=function(){var e,n;return e=this.c,n=Rl(e.Hj()).Ph(),e.ne(),(n!=null&&n.length!=0?n+":"+e.ne():e.ne())+"="+this.dd()},F(Mn,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),D(776,565,RH,iwt),l.Pk=function(e){return new iwt(this.c,e)},l.dd=function(){return this.a},l.Qk=function(e,n,r){return Hcn(this,e,this.a,n,r)},l.Rk=function(e,n,r){return Vcn(this,e,this.a,n,r)},F(Mn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),D(1314,1,{},ZGt),l.Pj=function(e,n,r,s,o){var h;return h=u(j8(e,this.b),215),h.nl(this.a).Wj(s)},l.Qj=function(e,n,r,s,o){var h;return h=u(j8(e,this.b),215),h.el(this.a,s,o)},l.Rj=function(e,n,r,s,o){var h;return h=u(j8(e,this.b),215),h.fl(this.a,s,o)},l.Sj=function(e,n,r){var s;return s=u(j8(e,this.b),215),s.nl(this.a).fj()},l.Tj=function(e,n,r,s){var o;o=u(j8(e,this.b),215),o.nl(this.a).Wb(s)},l.Uj=function(e,n,r){return u(j8(e,this.b),215).nl(this.a)},l.Vj=function(e,n,r){var s;s=u(j8(e,this.b),215),s.nl(this.a).Xj()},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),D(89,1,{},Ig,n2,Pg,s2),l.Pj=function(e,n,r,s,o){var h;if(h=n.Ch(r),h==null&&n.Dh(r,h=jq(this,e)),!o)switch(this.e){case 50:case 41:return u(h,589).sj();case 40:return u(h,215).kl()}return h},l.Qj=function(e,n,r,s,o){var h,d;return d=n.Ch(r),d==null&&n.Dh(r,d=jq(this,e)),h=u(d,69).lk(s,o),h},l.Rj=function(e,n,r,s,o){var h;return h=n.Ch(r),h!=null&&(o=u(h,69).mk(s,o)),o},l.Sj=function(e,n,r){var s;return s=n.Ch(r),s!=null&&u(s,76).fj()},l.Tj=function(e,n,r,s){var o;o=u(n.Ch(r),76),!o&&n.Dh(r,o=jq(this,e)),o.Wb(s)},l.Uj=function(e,n,r){var s,o;return o=n.Ch(r),o==null&&n.Dh(r,o=jq(this,e)),_t(o,76)?u(o,76):(s=u(n.Ch(r),15),new Qzt(s))},l.Vj=function(e,n,r){var s;s=u(n.Ch(r),76),!s&&n.Dh(r,s=jq(this,e)),s.Xj()},l.b=0,l.e=0,F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),D(504,1,{}),l.Qj=function(e,n,r,s,o){throw it(new Or)},l.Rj=function(e,n,r,s,o){throw it(new Or)},l.Uj=function(e,n,r){return new WXt(this,e,n,r)};var p0;F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),D(1331,1,hut,WXt),l.Wj=function(e){return this.a.Pj(this.c,this.d,this.b,e,!0)},l.fj=function(){return this.a.Sj(this.c,this.d,this.b)},l.Wb=function(e){this.a.Tj(this.c,this.d,this.b,e)},l.Xj=function(){this.a.Vj(this.c,this.d,this.b)},l.b=0,F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),D(769,504,{},$vt),l.Pj=function(e,n,r,s,o){return wat(e,e.eh(),e.Vg())==this.b?this.sk()&&s?eat(e):e.eh():null},l.Qj=function(e,n,r,s,o){var h,d;return e.eh()&&(o=(h=e.Vg(),h>=0?e.Qg(o):e.eh().ih(e,-1-h,null,o))),d=Gi(e.Tg(),this.e),e.Sg(s,d,o)},l.Rj=function(e,n,r,s,o){var h;return h=Gi(e.Tg(),this.e),e.Sg(null,h,o)},l.Sj=function(e,n,r){var s;return s=Gi(e.Tg(),this.e),!!e.eh()&&e.Vg()==s},l.Tj=function(e,n,r,s){var o,h,d,v,k;if(s!=null&&!xat(this.a,s))throw it(new i8(jH+(_t(s,56)?y4t(u(s,56).Tg()):Vmt(ol(s)))+$H+this.a+"'"));if(o=e.eh(),d=Gi(e.Tg(),this.e),Vt(s)!==Vt(o)||e.Vg()!=d&&s!=null){if(vE(e,u(s,56)))throw it(new Fn(Q_+e.Ib()));k=null,o&&(k=(h=e.Vg(),h>=0?e.Qg(k):e.eh().ih(e,-1-h,null,k))),v=u(s,49),v&&(k=v.gh(e,Gi(v.Tg(),this.b),null,k)),k=e.Sg(v,d,k),k&&k.Fi()}else e.Lg()&&e.Mg()&&mi(e,new Js(e,1,d,s,s))},l.Vj=function(e,n,r){var s,o,h,d;s=e.eh(),s?(d=(o=e.Vg(),o>=0?e.Qg(null):e.eh().ih(e,-1-o,null,null)),h=Gi(e.Tg(),this.e),d=e.Sg(null,h,d),d&&d.Fi()):e.Lg()&&e.Mg()&&mi(e,new A9(e,1,this.e,null,null))},l.sk=function(){return!1},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),D(1315,769,{},jYt),l.sk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),D(563,504,{}),l.Pj=function(e,n,r,s,o){var h;return h=n.Ch(r),h==null?this.b:Vt(h)===Vt(p0)?null:h},l.Sj=function(e,n,r){var s;return s=n.Ch(r),s!=null&&(Vt(s)===Vt(p0)||!yi(s,this.b))},l.Tj=function(e,n,r,s){var o,h;e.Lg()&&e.Mg()?(o=(h=n.Ch(r),h==null?this.b:Vt(h)===Vt(p0)?null:h),s==null?this.c!=null?(n.Dh(r,null),s=this.b):this.b!=null?n.Dh(r,p0):n.Dh(r,null):(this.Sk(s),n.Dh(r,s)),mi(e,this.d.Tk(e,1,this.e,o,s))):s==null?this.c!=null?n.Dh(r,null):this.b!=null?n.Dh(r,p0):n.Dh(r,null):(this.Sk(s),n.Dh(r,s))},l.Vj=function(e,n,r){var s,o;e.Lg()&&e.Mg()?(s=(o=n.Ch(r),o==null?this.b:Vt(o)===Vt(p0)?null:o),n.Eh(r),mi(e,this.d.Tk(e,1,this.e,s,this.b))):n.Eh(r)},l.Sk=function(e){throw it(new oqt)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),D(R4,1,{},fB),l.Tk=function(e,n,r,s,o){return new A9(e,n,r,s,o)},l.Uk=function(e,n,r,s,o,h){return new brt(e,n,r,s,o,h)};var cLt,uLt,lLt,hLt,fLt,dLt,gLt,jft,pLt;F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",R4),D(1332,R4,{},dB),l.Tk=function(e,n,r,s,o){return new xmt(e,n,r,je(Re(s)),je(Re(o)))},l.Uk=function(e,n,r,s,o,h){return new pZt(e,n,r,je(Re(s)),je(Re(o)),h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),D(1333,R4,{},gB),l.Tk=function(e,n,r,s,o){return new Ymt(e,n,r,u(s,217).a,u(o,217).a)},l.Uk=function(e,n,r,s,o,h){return new cZt(e,n,r,u(s,217).a,u(o,217).a,h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),D(1334,R4,{},Nk),l.Tk=function(e,n,r,s,o){return new Kmt(e,n,r,u(s,172).a,u(o,172).a)},l.Uk=function(e,n,r,s,o,h){return new uZt(e,n,r,u(s,172).a,u(o,172).a,h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),D(1335,R4,{},pB),l.Tk=function(e,n,r,s,o){return new mmt(e,n,r,Xt(ye(s)),Xt(ye(o)))},l.Uk=function(e,n,r,s,o,h){return new lZt(e,n,r,Xt(ye(s)),Xt(ye(o)),h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),D(1336,R4,{},bB),l.Tk=function(e,n,r,s,o){return new Zmt(e,n,r,u(s,155).a,u(o,155).a)},l.Uk=function(e,n,r,s,o,h){return new hZt(e,n,r,u(s,155).a,u(o,155).a,h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),D(1337,R4,{},sJ),l.Tk=function(e,n,r,s,o){return new ymt(e,n,r,u(s,19).a,u(o,19).a)},l.Uk=function(e,n,r,s,o,h){return new fZt(e,n,r,u(s,19).a,u(o,19).a,h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),D(1338,R4,{},Bk),l.Tk=function(e,n,r,s,o){return new Xmt(e,n,r,u(s,162).a,u(o,162).a)},l.Uk=function(e,n,r,s,o,h){return new dZt(e,n,r,u(s,162).a,u(o,162).a,h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),D(1339,R4,{},Rk),l.Tk=function(e,n,r,s,o){return new Qmt(e,n,r,u(s,184).a,u(o,184).a)},l.Uk=function(e,n,r,s,o,h){return new gZt(e,n,r,u(s,184).a,u(o,184).a,h)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),D(1317,563,{},YXt),l.Sk=function(e){if(!this.a.wj(e))throw it(new i8(jH+ol(e)+$H+this.a+"'"))},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),D(1318,563,{},NKt),l.Sk=function(e){},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),D(770,563,{}),l.Sj=function(e,n,r){var s;return s=n.Ch(r),s!=null},l.Tj=function(e,n,r,s){var o,h;e.Lg()&&e.Mg()?(o=!0,h=n.Ch(r),h==null?(o=!1,h=this.b):Vt(h)===Vt(p0)&&(h=null),s==null?this.c!=null?(n.Dh(r,null),s=this.b):n.Dh(r,p0):(this.Sk(s),n.Dh(r,s)),mi(e,this.d.Uk(e,1,this.e,h,s,!o))):s==null?this.c!=null?n.Dh(r,null):n.Dh(r,p0):(this.Sk(s),n.Dh(r,s))},l.Vj=function(e,n,r){var s,o;e.Lg()&&e.Mg()?(s=!0,o=n.Ch(r),o==null?(s=!1,o=this.b):Vt(o)===Vt(p0)&&(o=null),n.Eh(r),mi(e,this.d.Uk(e,2,this.e,o,this.b,s))):n.Eh(r)},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),D(1319,770,{},KXt),l.Sk=function(e){if(!this.a.wj(e))throw it(new i8(jH+ol(e)+$H+this.a+"'"))},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),D(1320,770,{},BKt),l.Sk=function(e){},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),D(398,504,{},Uj),l.Pj=function(e,n,r,s,o){var h,d,v,k,C;if(C=n.Ch(r),this.Kj()&&Vt(C)===Vt(p0))return null;if(this.sk()&&s&&C!=null){if(v=u(C,49),v.kh()&&(k=Zp(e,v),v!=k)){if(!xat(this.a,k))throw it(new i8(jH+ol(k)+$H+this.a+"'"));n.Dh(r,C=k),this.rk()&&(h=u(k,49),d=v.ih(e,this.b?Gi(v.Tg(),this.b):-1-Gi(e.Tg(),this.e),null,null),!h.eh()&&(d=h.gh(e,this.b?Gi(h.Tg(),this.b):-1-Gi(e.Tg(),this.e),null,d)),d&&d.Fi()),e.Lg()&&e.Mg()&&mi(e,new A9(e,9,this.e,v,k))}return C}else return C},l.Qj=function(e,n,r,s,o){var h,d;return d=n.Ch(r),Vt(d)===Vt(p0)&&(d=null),n.Dh(r,s),this.bj()?Vt(d)!==Vt(s)&&d!=null&&(h=u(d,49),o=h.ih(e,Gi(h.Tg(),this.b),null,o)):this.rk()&&d!=null&&(o=u(d,49).ih(e,-1-Gi(e.Tg(),this.e),null,o)),e.Lg()&&e.Mg()&&(!o&&(o=new Dp(4)),o.Ei(new A9(e,1,this.e,d,s))),o},l.Rj=function(e,n,r,s,o){var h;return h=n.Ch(r),Vt(h)===Vt(p0)&&(h=null),n.Eh(r),e.Lg()&&e.Mg()&&(!o&&(o=new Dp(4)),this.Kj()?o.Ei(new A9(e,2,this.e,h,null)):o.Ei(new A9(e,1,this.e,h,null))),o},l.Sj=function(e,n,r){var s;return s=n.Ch(r),s!=null},l.Tj=function(e,n,r,s){var o,h,d,v,k;if(s!=null&&!xat(this.a,s))throw it(new i8(jH+(_t(s,56)?y4t(u(s,56).Tg()):Vmt(ol(s)))+$H+this.a+"'"));k=n.Ch(r),v=k!=null,this.Kj()&&Vt(k)===Vt(p0)&&(k=null),d=null,this.bj()?Vt(k)!==Vt(s)&&(k!=null&&(o=u(k,49),d=o.ih(e,Gi(o.Tg(),this.b),null,d)),s!=null&&(o=u(s,49),d=o.gh(e,Gi(o.Tg(),this.b),null,d))):this.rk()&&Vt(k)!==Vt(s)&&(k!=null&&(d=u(k,49).ih(e,-1-Gi(e.Tg(),this.e),null,d)),s!=null&&(d=u(s,49).gh(e,-1-Gi(e.Tg(),this.e),null,d))),s==null&&this.Kj()?n.Dh(r,p0):n.Dh(r,s),e.Lg()&&e.Mg()?(h=new brt(e,1,this.e,k,s,this.Kj()&&!v),d?(d.Ei(h),d.Fi()):mi(e,h)):d&&d.Fi()},l.Vj=function(e,n,r){var s,o,h,d,v;v=n.Ch(r),d=v!=null,this.Kj()&&Vt(v)===Vt(p0)&&(v=null),h=null,v!=null&&(this.bj()?(s=u(v,49),h=s.ih(e,Gi(s.Tg(),this.b),null,h)):this.rk()&&(h=u(v,49).ih(e,-1-Gi(e.Tg(),this.e),null,h))),n.Eh(r),e.Lg()&&e.Mg()?(o=new brt(e,this.Kj()?2:1,this.e,v,null,d),h?(h.Ei(o),h.Fi()):mi(e,o)):h&&h.Fi()},l.bj=function(){return!1},l.rk=function(){return!1},l.sk=function(){return!1},l.Kj=function(){return!1},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),D(564,398,{},vnt),l.rk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),D(1323,564,{},FWt),l.sk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),D(772,564,{},G2t),l.Kj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),D(1325,772,{},NWt),l.sk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),D(640,564,{},Int),l.bj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),D(1324,640,{},$Yt),l.sk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),D(773,640,{},Dwt),l.Kj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),D(1326,773,{},zYt),l.sk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),D(641,398,{},U2t),l.sk=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),D(1327,641,{},BWt),l.Kj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),D(774,641,{},Lwt),l.bj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),D(1328,774,{},qYt),l.Kj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),D(1321,398,{},RWt),l.Kj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),D(771,398,{},Mwt),l.bj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),D(1322,771,{},HYt),l.Kj=function(){return!0},F(Mn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),D(775,565,RH,_vt),l.Pk=function(e){return new _vt(this.a,this.c,e)},l.dd=function(){return this.b},l.Qk=function(e,n,r){return Van(this,e,this.b,r)},l.Rk=function(e,n,r){return Gan(this,e,this.b,r)},F(Mn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),D(1329,1,hut,Qzt),l.Wj=function(e){return this.a},l.fj=function(){return _t(this.a,95)?u(this.a,95).fj():!this.a.dc()},l.Wb=function(e){this.a.$b(),this.a.Gc(u(e,15))},l.Xj=function(){_t(this.a,95)?u(this.a,95).Xj():this.a.$b()},F(Mn,"EStructuralFeatureImpl/SettingMany",1329),D(1330,565,RH,rJt),l.Ok=function(e){return new xnt((Ii(),fA),this.b.Ih(this.a,e))},l.dd=function(){return null},l.Qk=function(e,n,r){return r},l.Rk=function(e,n,r){return r},F(Mn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),D(642,565,RH,xnt),l.Ok=function(e){return new xnt(this.c,e)},l.dd=function(){return this.a},l.Qk=function(e,n,r){return r},l.Rk=function(e,n,r){return r},F(Mn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),D(391,497,Ld,Tm),l.ri=function(e){return Nt(Uh,De,26,e,0,1)},l.ni=function(){return!1},F(Mn,"ESuperAdapter/1",391),D(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},HL),l._g=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new T9(this,ho,this)),this.a}return uh(this,e-Jn((dn(),Uv)),yn((s=u(Dn(this,16),26),s||Uv),e),n,r)},l.jh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),Ba(this.Ab,e,r);case 2:return!this.a&&(this.a=new T9(this,ho,this)),Ba(this.a,e,r)}return o=u(yn((s=u(Dn(this,16),26),s||(dn(),Uv)),n),66),o.Nj().Rj(this,su(this),n-Jn((dn(),Uv)),e,r)},l.lh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return oh(this,e-Jn((dn(),Uv)),yn((n=u(Dn(this,16),26),n||Uv),e))},l.sh=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab),!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),is(this.Ab,u(n,14));return;case 1:Qc(this,Br(n));return;case 2:!this.a&&(this.a=new T9(this,ho,this)),xr(this.a),!this.a&&(this.a=new T9(this,ho,this)),is(this.a,u(n,14));return}gh(this,e-Jn((dn(),Uv)),yn((r=u(Dn(this,16),26),r||Uv),e),n)},l.zh=function(){return dn(),Uv},l.Bh=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new fe(Zr,this,0,3)),xr(this.Ab);return;case 1:Qc(this,null);return;case 2:!this.a&&(this.a=new T9(this,ho,this)),xr(this.a);return}fh(this,e-Jn((dn(),Uv)),yn((n=u(Dn(this,16),26),n||Uv),e))},F(Mn,"ETypeParameterImpl",444),D(445,85,zo,T9),l.cj=function(e,n){return G0n(this,u(e,87),n)},l.dj=function(e,n){return U0n(this,u(e,87),n)},F(Mn,"ETypeParameterImpl/1",445),D(634,43,A4,aet),l.ec=function(){return new mR(this)},F(Mn,"ETypeParameterImpl/2",634),D(556,N1,zu,mR),l.Fc=function(e){return lYt(this,u(e,87))},l.Gc=function(e){var n,r,s;for(s=!1,r=e.Kc();r.Ob();)n=u(r.Pb(),87),ki(this.a,n,"")==null&&(s=!0);return s},l.$b=function(){Xu(this.a)},l.Hc=function(e){return Tl(this.a,e)},l.Kc=function(){var e;return e=new p2(new Cg(this.a).a),new yR(e)},l.Mc=function(e){return XJt(this,e)},l.gc=function(){return HC(this.a)},F(Mn,"ETypeParameterImpl/2/1",556),D(557,1,sa,yR),l.Nb=function(e){ba(this,e)},l.Pb=function(){return u(Zw(this.a).cd(),87)},l.Ob=function(){return this.a.b},l.Qb=function(){Ste(this.a)},F(Mn,"ETypeParameterImpl/2/1/1",557),D(1276,43,A4,zqt),l._b=function(e){return ra(e)?wrt(this,e):!!Lo(this.f,e)},l.xc=function(e){var n,r;return n=ra(e)?Nc(this,e):ec(Lo(this.f,e)),_t(n,837)?(r=u(n,837),n=r._j(),ki(this,u(e,235),n),n):n??(e==null?(Tet(),C5e):null)},F(Mn,"EValidatorRegistryImpl",1276),D(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},aJ),l.Ih=function(e,n){switch(e.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return n==null?null:$o(n);case 25:return Jon(n);case 27:return bon(n);case 28:return won(n);case 29:return n==null?null:VUt(aA[0],u(n,199));case 41:return n==null?"":Ip(u(n,290));case 42:return $o(n);case 50:return Br(n);default:throw it(new Fn(QE+e.ne()+Cv))}},l.Jh=function(e){var n,r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt;switch(e.G==-1&&(e.G=(H=Rl(e),H?Hg(H.Mh(),e):-1)),e.G){case 0:return r=new ret,r;case 1:return n=new lB,n;case 2:return s=new eM,s;case 4:return o=new xR,o;case 5:return h=new $qt,h;case 6:return d=new lqt,d;case 7:return v=new JB,v;case 10:return C=new Pk,C;case 11:return M=new iet,M;case 12:return j=new fQt,j;case 13:return G=new set,G;case 14:return K=new K2t,K;case 17:return tt=new iJ,tt;case 18:return k=new xw,k;case 19:return gt=new HL,gt;default:throw it(new Fn(Kct+e.zb+Cv))}},l.Kh=function(e,n){switch(e.yj()){case 20:return n==null?null:new gbt(n);case 21:return n==null?null:new Rp(n);case 23:case 22:return n==null?null:ifn(n);case 26:case 24:return n==null?null:AD(ql(n,-128,127)<<24>>24);case 25:return p2n(n);case 27:return z1n(n);case 28:return q1n(n);case 29:return lgn(n);case 32:case 31:return n==null?null:dy(n);case 38:case 37:return n==null?null:new Ppt(n);case 40:case 39:return n==null?null:pe(ql(n,Sa,wi));case 41:return null;case 42:return n==null,null;case 44:case 43:return n==null?null:v2(Rq(n));case 49:case 48:return n==null?null:uE(ql(n,zH,32767)<<16>>16);case 50:return n;default:throw it(new Fn(QE+e.ne()+Cv))}},F(Mn,"EcoreFactoryImpl",1313),D(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},LXt),l.gb=!1,l.hb=!1;var bLt,T5e=!1;F(Mn,"EcorePackageImpl",547),D(1184,1,{837:1},oJ),l._j=function(){return gWt(),_5e},F(Mn,"EcorePackageImpl/1",1184),D(1193,1,si,cJ),l.wj=function(e){return _t(e,147)},l.xj=function(e){return Nt(fP,De,147,e,0,1)},F(Mn,"EcorePackageImpl/10",1193),D(1194,1,si,uJ),l.wj=function(e){return _t(e,191)},l.xj=function(e){return Nt(Mft,De,191,e,0,1)},F(Mn,"EcorePackageImpl/11",1194),D(1195,1,si,lJ),l.wj=function(e){return _t(e,56)},l.xj=function(e){return Nt(_b,De,56,e,0,1)},F(Mn,"EcorePackageImpl/12",1195),D(1196,1,si,hJ),l.wj=function(e){return _t(e,399)},l.xj=function(e){return Nt(Wh,$8t,59,e,0,1)},F(Mn,"EcorePackageImpl/13",1196),D(1197,1,si,fJ),l.wj=function(e){return _t(e,235)},l.xj=function(e){return Nt(i1,De,235,e,0,1)},F(Mn,"EcorePackageImpl/14",1197),D(1198,1,si,dJ),l.wj=function(e){return _t(e,509)},l.xj=function(e){return Nt(Vv,De,2017,e,0,1)},F(Mn,"EcorePackageImpl/15",1198),D(1199,1,si,wB),l.wj=function(e){return _t(e,99)},l.xj=function(e){return Nt(n3,B4,18,e,0,1)},F(Mn,"EcorePackageImpl/16",1199),D(1200,1,si,gJ),l.wj=function(e){return _t(e,170)},l.xj=function(e){return Nt(Mu,B4,170,e,0,1)},F(Mn,"EcorePackageImpl/17",1200),D(1201,1,si,pJ),l.wj=function(e){return _t(e,472)},l.xj=function(e){return Nt(t3,De,472,e,0,1)},F(Mn,"EcorePackageImpl/18",1201),D(1202,1,si,bJ),l.wj=function(e){return _t(e,548)},l.xj=function(e){return Nt(cc,C0e,548,e,0,1)},F(Mn,"EcorePackageImpl/19",1202),D(1185,1,si,vB),l.wj=function(e){return _t(e,322)},l.xj=function(e){return Nt(e3,B4,34,e,0,1)},F(Mn,"EcorePackageImpl/2",1185),D(1203,1,si,jk),l.wj=function(e){return _t(e,241)},l.xj=function(e){return Nt(ho,q0e,87,e,0,1)},F(Mn,"EcorePackageImpl/20",1203),D(1204,1,si,eC),l.wj=function(e){return _t(e,444)},l.xj=function(e){return Nt(hu,De,836,e,0,1)},F(Mn,"EcorePackageImpl/21",1204),D(1205,1,si,mB),l.wj=function(e){return Nm(e)},l.xj=function(e){return Nt(Rs,ee,476,e,8,1)},F(Mn,"EcorePackageImpl/22",1205),D(1206,1,si,wJ),l.wj=function(e){return _t(e,190)},l.xj=function(e){return Nt(Gu,ee,190,e,0,2)},F(Mn,"EcorePackageImpl/23",1206),D(1207,1,si,yB),l.wj=function(e){return _t(e,217)},l.xj=function(e){return Nt(M6,ee,217,e,0,1)},F(Mn,"EcorePackageImpl/24",1207),D(1208,1,si,xB),l.wj=function(e){return _t(e,172)},l.xj=function(e){return Nt(uS,ee,172,e,0,1)},F(Mn,"EcorePackageImpl/25",1208),D(1209,1,si,vJ),l.wj=function(e){return _t(e,199)},l.xj=function(e){return Nt(tV,ee,199,e,0,1)},F(Mn,"EcorePackageImpl/26",1209),D(1210,1,si,nC),l.wj=function(e){return!1},l.xj=function(e){return Nt(PLt,De,2110,e,0,1)},F(Mn,"EcorePackageImpl/27",1210),D(1211,1,si,Cm),l.wj=function(e){return Bm(e)},l.xj=function(e){return Nt(la,ee,333,e,7,1)},F(Mn,"EcorePackageImpl/28",1211),D(1212,1,si,kB),l.wj=function(e){return _t(e,58)},l.xj=function(e){return Nt(KAt,Ty,58,e,0,1)},F(Mn,"EcorePackageImpl/29",1212),D(1186,1,si,EB),l.wj=function(e){return _t(e,510)},l.xj=function(e){return Nt(Zr,{3:1,4:1,5:1,1934:1},590,e,0,1)},F(Mn,"EcorePackageImpl/3",1186),D(1213,1,si,mJ),l.wj=function(e){return _t(e,573)},l.xj=function(e){return Nt(ZAt,De,1940,e,0,1)},F(Mn,"EcorePackageImpl/30",1213),D(1214,1,si,yJ),l.wj=function(e){return _t(e,153)},l.xj=function(e){return Nt(xLt,Ty,153,e,0,1)},F(Mn,"EcorePackageImpl/31",1214),D(1215,1,si,rC),l.wj=function(e){return _t(e,72)},l.xj=function(e){return Nt(bU,Q0e,72,e,0,1)},F(Mn,"EcorePackageImpl/32",1215),D(1216,1,si,TB),l.wj=function(e){return _t(e,155)},l.xj=function(e){return Nt(i7,ee,155,e,0,1)},F(Mn,"EcorePackageImpl/33",1216),D(1217,1,si,CB),l.wj=function(e){return _t(e,19)},l.xj=function(e){return Nt(ja,ee,19,e,0,1)},F(Mn,"EcorePackageImpl/34",1217),D(1218,1,si,uc),l.wj=function(e){return _t(e,290)},l.xj=function(e){return Nt(J8t,De,290,e,0,1)},F(Mn,"EcorePackageImpl/35",1218),D(1219,1,si,xJ),l.wj=function(e){return _t(e,162)},l.xj=function(e){return Nt(Sv,ee,162,e,0,1)},F(Mn,"EcorePackageImpl/36",1219),D(1220,1,si,_B),l.wj=function(e){return _t(e,83)},l.xj=function(e){return Nt(tEt,De,83,e,0,1)},F(Mn,"EcorePackageImpl/37",1220),D(1221,1,si,iC),l.wj=function(e){return _t(e,591)},l.xj=function(e){return Nt(wLt,De,591,e,0,1)},F(Mn,"EcorePackageImpl/38",1221),D(1222,1,si,kJ),l.wj=function(e){return!1},l.xj=function(e){return Nt(FLt,De,2111,e,0,1)},F(Mn,"EcorePackageImpl/39",1222),D(1187,1,si,EJ),l.wj=function(e){return _t(e,88)},l.xj=function(e){return Nt(Uh,De,26,e,0,1)},F(Mn,"EcorePackageImpl/4",1187),D(1223,1,si,sC),l.wj=function(e){return _t(e,184)},l.xj=function(e){return Nt(Av,ee,184,e,0,1)},F(Mn,"EcorePackageImpl/40",1223),D(1224,1,si,SB),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(Mn,"EcorePackageImpl/41",1224),D(1225,1,si,aC),l.wj=function(e){return _t(e,588)},l.xj=function(e){return Nt(QAt,De,588,e,0,1)},F(Mn,"EcorePackageImpl/42",1225),D(1226,1,si,oC),l.wj=function(e){return!1},l.xj=function(e){return Nt(NLt,ee,2112,e,0,1)},F(Mn,"EcorePackageImpl/43",1226),D(1227,1,si,jf),l.wj=function(e){return _t(e,42)},l.xj=function(e){return Nt(P2,Hq,42,e,0,1)},F(Mn,"EcorePackageImpl/44",1227),D(1188,1,si,VL),l.wj=function(e){return _t(e,138)},l.xj=function(e){return Nt(s1,De,138,e,0,1)},F(Mn,"EcorePackageImpl/5",1188),D(1189,1,si,GL),l.wj=function(e){return _t(e,148)},l.xj=function(e){return Nt(Nft,De,148,e,0,1)},F(Mn,"EcorePackageImpl/6",1189),D(1190,1,si,lx),l.wj=function(e){return _t(e,457)},l.xj=function(e){return Nt(pU,De,671,e,0,1)},F(Mn,"EcorePackageImpl/7",1190),D(1191,1,si,TJ),l.wj=function(e){return _t(e,573)},l.xj=function(e){return Nt(ag,De,678,e,0,1)},F(Mn,"EcorePackageImpl/8",1191),D(1192,1,si,CJ),l.wj=function(e){return _t(e,471)},l.xj=function(e){return Nt(sA,De,471,e,0,1)},F(Mn,"EcorePackageImpl/9",1192),D(1025,1982,T0e,sHt),l.bi=function(e,n){Mln(this,u(n,415))},l.fi=function(e,n){moe(this,e,u(n,415))},F(Mn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),D(1026,143,nO,yXt),l.Ai=function(){return this.a.a},F(Mn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),D(1053,1052,{},NUt),F("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var wLt=Ki(Z0e,"Resource");D(781,1378,J0e),l.Yk=function(e){},l.Zk=function(e){},l.Vk=function(){return!this.a&&(this.a=new Ztt(this)),this.a},l.Wk=function(e){var n,r,s,o,h;if(s=e.length,s>0)if(Rr(0,e.length),e.charCodeAt(0)==47){for(h=new Xc(4),o=1,n=1;n0&&(e=e.substr(0,r)));return Zpn(this,e)},l.Xk=function(){return this.c},l.Ib=function(){var e;return Ip(this.gm)+"@"+(e=Hi(this)>>>0,e.toString(16))+" uri='"+this.d+"'"},l.b=!1,F(fut,"ResourceImpl",781),D(1379,781,J0e,Jzt),F(fut,"BinaryResourceImpl",1379),D(1169,694,aut),l.si=function(e){return _t(e,56)?Orn(this,u(e,56)):_t(e,591)?new nr(u(e,591).Vk()):Vt(e)===Vt(this.f)?u(e,14).Kc():(y8(),pP.a)},l.Ob=function(){return h5t(this)},l.a=!1,F($i,"EcoreUtil/ContentTreeIterator",1169),D(1380,1169,aut,QKt),l.si=function(e){return Vt(e)===Vt(this.f)?u(e,15).Kc():new PZt(u(e,56))},F(fut,"ResourceImpl/5",1380),D(648,1994,z0e,Ztt),l.Hc=function(e){return this.i<=4?yE(this,e):_t(e,49)&&u(e,49).Zg()==this.a},l.bi=function(e,n){e==this.i-1&&(this.a.b||(this.a.b=!0))},l.di=function(e,n){e==0?this.a.b||(this.a.b=!0):Yrt(this,e,n)},l.fi=function(e,n){},l.gi=function(e,n,r){},l.aj=function(){return 2},l.Ai=function(){return this.a},l.bj=function(){return!0},l.cj=function(e,n){var r;return r=u(e,49),n=r.wh(this.a,n),n},l.dj=function(e,n){var r;return r=u(e,49),r.wh(null,n)},l.ej=function(){return!1},l.hi=function(){return!0},l.ri=function(e){return Nt(_b,De,56,e,0,1)},l.ni=function(){return!1},F(fut,"ResourceImpl/ContentsEList",648),D(957,1964,jE,Zzt),l.Zc=function(e){return this.a._h(e)},l.gc=function(){return this.a.gc()},F($i,"AbstractSequentialInternalEList/1",957);var vLt,mLt,ya,yLt;D(624,1,{},JYt);var wU,vU;F($i,"BasicExtendedMetaData",624),D(1160,1,{},JGt),l.$k=function(){return null},l._k=function(){return this.a==-2&&Tg(this,sgn(this.d,this.b)),this.a},l.al=function(){return null},l.bl=function(){return wn(),wn(),io},l.ne=function(){return this.c==t7&&O3(this,Xie(this.d,this.b)),this.c},l.cl=function(){return 0},l.a=-2,l.c=t7,F($i,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),D(1161,1,{},yZt),l.$k=function(){return this.a==(B8(),wU)&&ypt(this,xwn(this.f,this.b)),this.a},l._k=function(){return 0},l.al=function(){return this.c==(B8(),wU)&&Ftt(this,kwn(this.f,this.b)),this.c},l.bl=function(){return!this.d&&Ntt(this,xmn(this.f,this.b)),this.d},l.ne=function(){return this.e==t7&&cR(this,Xie(this.f,this.b)),this.e},l.cl=function(){return this.g==-2&&uR(this,T0n(this.f,this.b)),this.g},l.e=t7,l.g=-2,F($i,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),D(1159,1,{},eUt),l.b=!1,l.c=!1,F($i,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),D(1162,1,{},mZt),l.c=-2,l.e=t7,l.f=t7,F($i,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),D(585,622,zo,Rj),l.aj=function(){return this.c},l.Fk=function(){return!1},l.li=function(e,n){return n},l.c=0,F($i,"EDataTypeEList",585);var xLt=Ki($i,"FeatureMap");D(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},ss),l.Vc=function(e,n){wwn(this,e,u(n,72))},l.Fc=function(e){return N2n(this,u(e,72))},l.Yh=function(e){knn(this,u(e,72))},l.cj=function(e,n){return nJe(this,u(e,72),n)},l.dj=function(e,n){return vwt(this,u(e,72),n)},l.ii=function(e,n){return jmn(this,e,n)},l.li=function(e,n){return v4n(this,e,u(n,72))},l._c=function(e,n){return ovn(this,e,u(n,72))},l.jj=function(e,n){return rJe(this,u(e,72),n)},l.kj=function(e,n){return TYt(this,u(e,72),n)},l.lj=function(e,n,r){return o0n(this,u(e,72),u(n,72),r)},l.oi=function(e,n){return Rst(this,e,u(n,72))},l.dl=function(e,n){return J5t(this,e,n)},l.Wc=function(e,n){var r,s,o,h,d,v,k,C,M;for(C=new Qw(n.gc()),o=n.Kc();o.Ob();)if(s=u(o.Pb(),72),h=s.ak(),X0(this.e,h))(!h.hi()||!O$(this,h,s.dd())&&!yE(C,s))&&Dr(C,s);else{for(M=ou(this.e.Tg(),h),r=u(this.g,119),d=!0,v=0;v=0;)if(n=e[this.c],this.k.rl(n.ak()))return this.j=this.f?n:n.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},F($i,"BasicFeatureMap/FeatureEIterator",410),D(662,410,n0,rnt),l.Lk=function(){return!0},F($i,"BasicFeatureMap/ResolvingFeatureEIterator",662),D(955,486,NH,UUt),l.Gi=function(){return this},F($i,"EContentsEList/1",955),D(956,486,NH,wUt),l.Lk=function(){return!1},F($i,"EContentsEList/2",956),D(954,279,BH,WUt),l.Nk=function(e){},l.Ob=function(){return!1},l.Sb=function(){return!1},F($i,"EContentsEList/FeatureIteratorImpl/1",954),D(825,585,zo,E2t),l.ci=function(){this.a=!0},l.fj=function(){return this.a},l.Xj=function(){var e;xr(this),xl(this.e)?(e=this.a,this.a=!1,mi(this.e,new bf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,F($i,"EDataTypeEList/Unsettable",825),D(1849,585,zo,eWt),l.hi=function(){return!0},F($i,"EDataTypeUniqueEList",1849),D(1850,825,zo,nWt),l.hi=function(){return!0},F($i,"EDataTypeUniqueEList/Unsettable",1850),D(139,85,zo,Fu),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectContainmentEList/Resolving",139),D(1163,545,zo,tWt),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectContainmentEList/Unsettable/Resolving",1163),D(748,16,zo,hwt),l.ci=function(){this.a=!0},l.fj=function(){return this.a},l.Xj=function(){var e;xr(this),xl(this.e)?(e=this.a,this.a=!1,mi(this.e,new bf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,F($i,"EObjectContainmentWithInverseEList/Unsettable",748),D(1173,748,zo,hYt),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),D(743,496,zo,k2t),l.ci=function(){this.a=!0},l.fj=function(){return this.a},l.Xj=function(){var e;xr(this),xl(this.e)?(e=this.a,this.a=!1,mi(this.e,new bf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,F($i,"EObjectEList/Unsettable",743),D(328,496,zo,Y3),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectResolvingEList",328),D(1641,743,zo,rWt),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectResolvingEList/Unsettable",1641),D(1381,1,{},_J);var C5e;F($i,"EObjectValidator",1381),D(546,496,zo,r$),l.zk=function(){return this.d},l.Ak=function(){return this.b},l.bj=function(){return!0},l.Dk=function(){return!0},l.b=0,F($i,"EObjectWithInverseEList",546),D(1176,546,zo,fYt),l.Ck=function(){return!0},F($i,"EObjectWithInverseEList/ManyInverse",1176),D(625,546,zo,Ent),l.ci=function(){this.a=!0},l.fj=function(){return this.a},l.Xj=function(){var e;xr(this),xl(this.e)?(e=this.a,this.a=!1,mi(this.e,new bf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,F($i,"EObjectWithInverseEList/Unsettable",625),D(1175,625,zo,dYt),l.Ck=function(){return!0},F($i,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),D(749,546,zo,fwt),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectWithInverseResolvingEList",749),D(31,749,zo,Cn),l.Ck=function(){return!0},F($i,"EObjectWithInverseResolvingEList/ManyInverse",31),D(750,625,zo,dwt),l.Ek=function(){return!0},l.li=function(e,n){return g6(this,e,u(n,56))},F($i,"EObjectWithInverseResolvingEList/Unsettable",750),D(1174,750,zo,gYt),l.Ck=function(){return!0},F($i,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),D(1164,622,zo),l.ai=function(){return(this.b&1792)==0},l.ci=function(){this.b|=1},l.Bk=function(){return(this.b&4)!=0},l.bj=function(){return(this.b&40)!=0},l.Ck=function(){return(this.b&16)!=0},l.Dk=function(){return(this.b&8)!=0},l.Ek=function(){return(this.b&Dy)!=0},l.rk=function(){return(this.b&32)!=0},l.Fk=function(){return(this.b&xf)!=0},l.wj=function(e){return this.d?KZt(this.d,e):this.ak().Yj().wj(e)},l.fj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},l.hi=function(){return(this.b&128)!=0},l.Xj=function(){var e;xr(this),this.b&2&&(xl(this.e)?(e=(this.b&1)!=0,this.b&=-2,n8(this,new bf(this.e,2,Gi(this.e.Tg(),this.ak()),e,!1))):this.b&=-2)},l.ni=function(){return(this.b&1536)==0},l.b=0,F($i,"EcoreEList/Generic",1164),D(1165,1164,zo,iQt),l.ak=function(){return this.a},F($i,"EcoreEList/Dynamic",1165),D(747,63,Ld,_pt),l.ri=function(e){return MD(this.a.a,e)},F($i,"EcoreEMap/1",747),D(746,85,zo,hvt),l.bi=function(e,n){Jz(this.b,u(n,133))},l.di=function(e,n){Vne(this.b)},l.ei=function(e,n,r){var s;++(s=this.b,u(n,133),s).e},l.fi=function(e,n){Wit(this.b,u(n,133))},l.gi=function(e,n,r){Wit(this.b,u(r,133)),Vt(r)===Vt(n)&&u(r,133).Th(hQe(u(n,133).cd())),Jz(this.b,u(n,133))},F($i,"EcoreEMap/DelegateEObjectContainmentEList",746),D(1171,151,j8t,rne),F($i,"EcoreEMap/Unsettable",1171),D(1172,746,zo,pYt),l.ci=function(){this.a=!0},l.fj=function(){return this.a},l.Xj=function(){var e;xr(this),xl(this.e)?(e=this.a,this.a=!1,mi(this.e,new bf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,F($i,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),D(1168,228,A4,oXt),l.a=!1,l.b=!1,F($i,"EcoreUtil/Copier",1168),D(745,1,sa,PZt),l.Nb=function(e){ba(this,e)},l.Ob=function(){return Mie(this)},l.Pb=function(){var e;return Mie(this),e=this.b,this.b=null,e},l.Qb=function(){this.a.Qb()},F($i,"EcoreUtil/ProperContentIterator",745),D(1382,1381,{},tR);var _5e;F($i,"EcoreValidator",1382);var S5e;Ki($i,"FeatureMapUtil/Validator"),D(1260,1,{1942:1},SJ),l.rl=function(e){return!0},F($i,"FeatureMapUtil/1",1260),D(757,1,{1942:1},Axt),l.rl=function(e){var n;return this.c==e?!0:(n=Re(tr(this.a,e)),n==null?nmn(this,e)?(qJt(this.a,e,(Nn(),r7)),!0):(qJt(this.a,e,(Nn(),F2)),!1):n==(Nn(),r7))},l.e=!1;var $ft;F($i,"FeatureMapUtil/BasicValidator",757),D(758,43,A4,v2t),F($i,"FeatureMapUtil/BasicValidator/Cache",758),D(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},BM),l.Vc=function(e,n){sue(this.c,this.b,e,n)},l.Fc=function(e){return J5t(this.c,this.b,e)},l.Wc=function(e,n){return w3n(this.c,this.b,e,n)},l.Gc=function(e){return g9(this,e)},l.Xh=function(e,n){Ron(this.c,this.b,e,n)},l.lk=function(e,n){return W5t(this.c,this.b,e,n)},l.pi=function(e){return Iq(this.c,this.b,e,!1)},l.Zh=function(){return AUt(this.c,this.b)},l.$h=function(){return ZXe(this.c,this.b)},l._h=function(e){return Han(this.c,this.b,e)},l.mk=function(e,n){return WWt(this,e,n)},l.$b=function(){Tx(this)},l.Hc=function(e){return O$(this.c,this.b,e)},l.Ic=function(e){return qcn(this.c,this.b,e)},l.Xb=function(e){return Iq(this.c,this.b,e,!0)},l.Wj=function(e){return this},l.Xc=function(e){return tan(this.c,this.b,e)},l.dc=function(){return hj(this)},l.fj=function(){return!XD(this.c,this.b)},l.Kc=function(){return _on(this.c,this.b)},l.Yc=function(){return Son(this.c,this.b)},l.Zc=function(e){return jln(this.c,this.b,e)},l.ii=function(e,n){return Ele(this.c,this.b,e,n)},l.ji=function(e,n){Ban(this.c,this.b,e,n)},l.$c=function(e){return noe(this.c,this.b,e)},l.Mc=function(e){return Emn(this.c,this.b,e)},l._c=function(e,n){return Lle(this.c,this.b,e,n)},l.Wb=function(e){pq(this.c,this.b),g9(this,u(e,15))},l.gc=function(){return Zln(this.c,this.b)},l.Pc=function(){return Qin(this.c,this.b)},l.Qc=function(e){return ean(this.c,this.b,e)},l.Ib=function(){var e,n;for(n=new Ag,n.a+="[",e=AUt(this.c,this.b);Bit(e);)go(n,b9(Qz(e))),Bit(e)&&(n.a+=Ya);return n.a+="]",n.a},l.Xj=function(){pq(this.c,this.b)},F($i,"FeatureMapUtil/FeatureEList",501),D(627,36,nO,jrt),l.yi=function(e){return e_(this,e)},l.Di=function(e){var n,r,s,o,h,d,v;switch(this.d){case 1:case 2:{if(h=e.Ai(),Vt(h)===Vt(this.c)&&e_(this,null)==e.yi(null))return this.g=e.zi(),e.xi()==1&&(this.d=1),!0;break}case 3:{switch(o=e.xi(),o){case 3:{if(h=e.Ai(),Vt(h)===Vt(this.c)&&e_(this,null)==e.yi(null))return this.d=5,n=new Qw(2),Dr(n,this.g),Dr(n,e.zi()),this.g=n,!0;break}}break}case 5:{switch(o=e.xi(),o){case 3:{if(h=e.Ai(),Vt(h)===Vt(this.c)&&e_(this,null)==e.yi(null))return r=u(this.g,14),r.Fc(e.zi()),!0;break}}break}case 4:{switch(o=e.xi(),o){case 3:{if(h=e.Ai(),Vt(h)===Vt(this.c)&&e_(this,null)==e.yi(null))return this.d=1,this.g=e.zi(),!0;break}case 4:{if(h=e.Ai(),Vt(h)===Vt(this.c)&&e_(this,null)==e.yi(null))return this.d=6,v=new Qw(2),Dr(v,this.n),Dr(v,e.Bi()),this.n=v,d=lt(ct(Cr,1),Xr,25,15,[this.o,e.Ci()]),this.g=d,!0;break}}break}case 6:{switch(o=e.xi(),o){case 4:{if(h=e.Ai(),Vt(h)===Vt(this.c)&&e_(this,null)==e.yi(null))return r=u(this.n,14),r.Fc(e.Bi()),d=u(this.g,48),s=Nt(Cr,Xr,25,d.length+1,15,1),Dc(d,0,s,0,d.length),s[d.length]=e.Ci(),this.g=s,!0;break}}break}}return!1},F($i,"FeatureMapUtil/FeatureENotificationImpl",627),D(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},qj),l.dl=function(e,n){return J5t(this.c,e,n)},l.el=function(e,n,r){return W5t(this.c,e,n,r)},l.fl=function(e,n,r){return bxt(this.c,e,n,r)},l.gl=function(){return this},l.hl=function(e,n){return SI(this.c,e,n)},l.il=function(e){return u(Iq(this.c,this.b,e,!1),72).ak()},l.jl=function(e){return u(Iq(this.c,this.b,e,!1),72).dd()},l.kl=function(){return this.a},l.ll=function(e){return!XD(this.c,e)},l.ml=function(e,n){Oq(this.c,e,n)},l.nl=function(e){return lne(this.c,e)},l.ol=function(e){Pse(this.c,e)},F($i,"FeatureMapUtil/FeatureFeatureMap",552),D(1259,1,hut,nUt),l.Wj=function(e){return Iq(this.b,this.a,-1,e)},l.fj=function(){return!XD(this.b,this.a)},l.Wb=function(e){Oq(this.b,this.a,e)},l.Xj=function(){pq(this.b,this.a)},F($i,"FeatureMapUtil/FeatureValue",1259);var J6,zft,qft,tk,A5e,wP=Ki(GH,"AnyType");D(666,60,Q0,pet),F(GH,"InvalidDatatypeValueException",666);var mU=Ki(GH,ege),vP=Ki(GH,nge),kLt=Ki(GH,rge),L5e,pc,ELt,X2,M5e,D5e,I5e,O5e,P5e,F5e,N5e,B5e,R5e,j5e,$5e,h5,z5e,f5,lA,q5e,Wv,mP,yP,H5e,hA,fA;D(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},Wpt),l._g=function(e,n,r){switch(e){case 0:return r?(!this.c&&(this.c=new ss(this,0)),this.c):(!this.c&&(this.c=new ss(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new ss(this,0)),u(Bc(this.c,(Ii(),X2)),153)):(!this.c&&(this.c=new ss(this,0)),u(u(Bc(this.c,(Ii(),X2)),153),215)).kl();case 2:return r?(!this.b&&(this.b=new ss(this,2)),this.b):(!this.b&&(this.b=new ss(this,2)),this.b.b)}return uh(this,e-Jn(this.zh()),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():this.zh(),e),n,r)},l.jh=function(e,n,r){var s;switch(n){case 0:return!this.c&&(this.c=new ss(this,0)),EI(this.c,e,r);case 1:return(!this.c&&(this.c=new ss(this,0)),u(u(Bc(this.c,(Ii(),X2)),153),69)).mk(e,r);case 2:return!this.b&&(this.b=new ss(this,2)),EI(this.b,e,r)}return s=u(yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():this.zh(),n),66),s.Nj().Rj(this,$mt(this),n-Jn(this.zh()),e,r)},l.lh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new ss(this,0)),u(Bc(this.c,(Ii(),X2)),153)).dc();case 2:return!!this.b&&this.b.i!=0}return oh(this,e-Jn(this.zh()),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():this.zh(),e))},l.sh=function(e,n){switch(e){case 0:!this.c&&(this.c=new ss(this,0)),nD(this.c,n);return;case 1:(!this.c&&(this.c=new ss(this,0)),u(u(Bc(this.c,(Ii(),X2)),153),215)).Wb(n);return;case 2:!this.b&&(this.b=new ss(this,2)),nD(this.b,n);return}gh(this,e-Jn(this.zh()),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():this.zh(),e),n)},l.zh=function(){return Ii(),ELt},l.Bh=function(e){switch(e){case 0:!this.c&&(this.c=new ss(this,0)),xr(this.c);return;case 1:(!this.c&&(this.c=new ss(this,0)),u(Bc(this.c,(Ii(),X2)),153)).$b();return;case 2:!this.b&&(this.b=new ss(this,2)),xr(this.b);return}fh(this,e-Jn(this.zh()),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():this.zh(),e))},l.Ib=function(){var e;return this.j&4?mf(this):(e=new _h(mf(this)),e.a+=" (mixed: ",l9(e,this.c),e.a+=", anyAttribute: ",l9(e,this.b),e.a+=")",e.a)},F(xs,"AnyTypeImpl",830),D(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},AB),l._g=function(e,n,r){switch(e){case 0:return this.a;case 1:return this.b}return uh(this,e-Jn((Ii(),h5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():h5,e),n,r)},l.lh=function(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return oh(this,e-Jn((Ii(),h5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():h5,e))},l.sh=function(e,n){switch(e){case 0:$tt(this,Br(n));return;case 1:kpt(this,Br(n));return}gh(this,e-Jn((Ii(),h5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():h5,e),n)},l.zh=function(){return Ii(),h5},l.Bh=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}fh(this,e-Jn((Ii(),h5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():h5,e))},l.Ib=function(){var e;return this.j&4?mf(this):(e=new _h(mf(this)),e.a+=" (data: ",go(e,this.a),e.a+=", target: ",go(e,this.b),e.a+=")",e.a)},l.a=null,l.b=null,F(xs,"ProcessingInstructionImpl",667),D(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},Hqt),l._g=function(e,n,r){switch(e){case 0:return r?(!this.c&&(this.c=new ss(this,0)),this.c):(!this.c&&(this.c=new ss(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new ss(this,0)),u(Bc(this.c,(Ii(),X2)),153)):(!this.c&&(this.c=new ss(this,0)),u(u(Bc(this.c,(Ii(),X2)),153),215)).kl();case 2:return r?(!this.b&&(this.b=new ss(this,2)),this.b):(!this.b&&(this.b=new ss(this,2)),this.b.b);case 3:return!this.c&&(this.c=new ss(this,0)),Br(SI(this.c,(Ii(),lA),!0));case 4:return gwt(this.a,(!this.c&&(this.c=new ss(this,0)),Br(SI(this.c,(Ii(),lA),!0))));case 5:return this.a}return uh(this,e-Jn((Ii(),f5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():f5,e),n,r)},l.lh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new ss(this,0)),u(Bc(this.c,(Ii(),X2)),153)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new ss(this,0)),Br(SI(this.c,(Ii(),lA),!0))!=null;case 4:return gwt(this.a,(!this.c&&(this.c=new ss(this,0)),Br(SI(this.c,(Ii(),lA),!0))))!=null;case 5:return!!this.a}return oh(this,e-Jn((Ii(),f5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():f5,e))},l.sh=function(e,n){switch(e){case 0:!this.c&&(this.c=new ss(this,0)),nD(this.c,n);return;case 1:(!this.c&&(this.c=new ss(this,0)),u(u(Bc(this.c,(Ii(),X2)),153),215)).Wb(n);return;case 2:!this.b&&(this.b=new ss(this,2)),nD(this.b,n);return;case 3:Jvt(this,Br(n));return;case 4:Jvt(this,pwt(this.a,n));return;case 5:vc(this,u(n,148));return}gh(this,e-Jn((Ii(),f5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():f5,e),n)},l.zh=function(){return Ii(),f5},l.Bh=function(e){switch(e){case 0:!this.c&&(this.c=new ss(this,0)),xr(this.c);return;case 1:(!this.c&&(this.c=new ss(this,0)),u(Bc(this.c,(Ii(),X2)),153)).$b();return;case 2:!this.b&&(this.b=new ss(this,2)),xr(this.b);return;case 3:!this.c&&(this.c=new ss(this,0)),Oq(this.c,(Ii(),lA),null);return;case 4:Jvt(this,pwt(this.a,null));return;case 5:this.a=null;return}fh(this,e-Jn((Ii(),f5)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():f5,e))},F(xs,"SimpleAnyTypeImpl",668),D(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},qqt),l._g=function(e,n,r){switch(e){case 0:return r?(!this.a&&(this.a=new ss(this,0)),this.a):(!this.a&&(this.a=new ss(this,0)),this.a.b);case 1:return r?(!this.b&&(this.b=new _l((dn(),Qa),cc,this,1)),this.b):(!this.b&&(this.b=new _l((dn(),Qa),cc,this,1)),wD(this.b));case 2:return r?(!this.c&&(this.c=new _l((dn(),Qa),cc,this,2)),this.c):(!this.c&&(this.c=new _l((dn(),Qa),cc,this,2)),wD(this.c));case 3:return!this.a&&(this.a=new ss(this,0)),Bc(this.a,(Ii(),mP));case 4:return!this.a&&(this.a=new ss(this,0)),Bc(this.a,(Ii(),yP));case 5:return!this.a&&(this.a=new ss(this,0)),Bc(this.a,(Ii(),hA));case 6:return!this.a&&(this.a=new ss(this,0)),Bc(this.a,(Ii(),fA))}return uh(this,e-Jn((Ii(),Wv)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():Wv,e),n,r)},l.jh=function(e,n,r){var s;switch(n){case 0:return!this.a&&(this.a=new ss(this,0)),EI(this.a,e,r);case 1:return!this.b&&(this.b=new _l((dn(),Qa),cc,this,1)),Oj(this.b,e,r);case 2:return!this.c&&(this.c=new _l((dn(),Qa),cc,this,2)),Oj(this.c,e,r);case 5:return!this.a&&(this.a=new ss(this,0)),WWt(Bc(this.a,(Ii(),hA)),e,r)}return s=u(yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():(Ii(),Wv),n),66),s.Nj().Rj(this,$mt(this),n-Jn((Ii(),Wv)),e,r)},l.lh=function(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new ss(this,0)),!hj(Bc(this.a,(Ii(),mP)));case 4:return!this.a&&(this.a=new ss(this,0)),!hj(Bc(this.a,(Ii(),yP)));case 5:return!this.a&&(this.a=new ss(this,0)),!hj(Bc(this.a,(Ii(),hA)));case 6:return!this.a&&(this.a=new ss(this,0)),!hj(Bc(this.a,(Ii(),fA)))}return oh(this,e-Jn((Ii(),Wv)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():Wv,e))},l.sh=function(e,n){switch(e){case 0:!this.a&&(this.a=new ss(this,0)),nD(this.a,n);return;case 1:!this.b&&(this.b=new _l((dn(),Qa),cc,this,1)),xz(this.b,n);return;case 2:!this.c&&(this.c=new _l((dn(),Qa),cc,this,2)),xz(this.c,n);return;case 3:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),mP))),!this.a&&(this.a=new ss(this,0)),g9(Bc(this.a,mP),u(n,14));return;case 4:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),yP))),!this.a&&(this.a=new ss(this,0)),g9(Bc(this.a,yP),u(n,14));return;case 5:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),hA))),!this.a&&(this.a=new ss(this,0)),g9(Bc(this.a,hA),u(n,14));return;case 6:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),fA))),!this.a&&(this.a=new ss(this,0)),g9(Bc(this.a,fA),u(n,14));return}gh(this,e-Jn((Ii(),Wv)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():Wv,e),n)},l.zh=function(){return Ii(),Wv},l.Bh=function(e){switch(e){case 0:!this.a&&(this.a=new ss(this,0)),xr(this.a);return;case 1:!this.b&&(this.b=new _l((dn(),Qa),cc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new _l((dn(),Qa),cc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),mP)));return;case 4:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),yP)));return;case 5:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),hA)));return;case 6:!this.a&&(this.a=new ss(this,0)),Tx(Bc(this.a,(Ii(),fA)));return}fh(this,e-Jn((Ii(),Wv)),yn(this.j&2?(!this.k&&(this.k=new nh),this.k).ck():Wv,e))},l.Ib=function(){var e;return this.j&4?mf(this):(e=new _h(mf(this)),e.a+=" (mixed: ",l9(e,this.a),e.a+=")",e.a)},F(xs,"XMLTypeDocumentRootImpl",669),D(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},_m),l.Ih=function(e,n){switch(e.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return n==null?null:$o(n);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Br(n);case 6:return bZe(u(n,190));case 12:case 47:case 49:case 11:return bhe(this,e,n);case 13:return n==null?null:r3n(u(n,240));case 15:case 14:return n==null?null:dnn(Xt(ye(n)));case 17:return mae((Ii(),n));case 18:return mae(n);case 21:case 20:return n==null?null:gnn(u(n,155).a);case 27:return wZe(u(n,190));case 30:return Fse((Ii(),u(n,15)));case 31:return Fse(u(n,15));case 40:return mZe((Ii(),n));case 42:return yae((Ii(),n));case 43:return yae(n);case 59:case 48:return vZe((Ii(),n));default:throw it(new Fn(QE+e.ne()+Cv))}},l.Jh=function(e){var n,r,s,o,h;switch(e.G==-1&&(e.G=(r=Rl(e),r?Hg(r.Mh(),e):-1)),e.G){case 0:return n=new Wpt,n;case 1:return s=new AB,s;case 2:return o=new Hqt,o;case 3:return h=new qqt,h;default:throw it(new Fn(Kct+e.zb+Cv))}},l.Kh=function(e,n){var r,s,o,h,d,v,k,C,M,j,H,G,K,tt,gt,Mt;switch(e.yj()){case 5:case 52:case 4:return n;case 6:return Ofn(n);case 8:case 7:return n==null?null:y0n(n);case 9:return n==null?null:AD(ql((s=$c(n,!0),s.length>0&&(Rr(0,s.length),s.charCodeAt(0)==43)?s.substr(1):s),-128,127)<<24>>24);case 10:return n==null?null:AD(ql((o=$c(n,!0),o.length>0&&(Rr(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o),-128,127)<<24>>24);case 11:return Br(vv(this,(Ii(),I5e),n));case 12:return Br(vv(this,(Ii(),O5e),n));case 13:return n==null?null:new gbt($c(n,!0));case 15:case 14:return z2n(n);case 16:return Br(vv(this,(Ii(),P5e),n));case 17:return zie((Ii(),n));case 18:return zie(n);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return $c(n,!0);case 21:case 20:return X2n(n);case 22:return Br(vv(this,(Ii(),F5e),n));case 23:return Br(vv(this,(Ii(),N5e),n));case 24:return Br(vv(this,(Ii(),B5e),n));case 25:return Br(vv(this,(Ii(),R5e),n));case 26:return Br(vv(this,(Ii(),j5e),n));case 27:return Afn(n);case 30:return qie((Ii(),n));case 31:return qie(n);case 32:return n==null?null:pe(ql((M=$c(n,!0),M.length>0&&(Rr(0,M.length),M.charCodeAt(0)==43)?M.substr(1):M),Sa,wi));case 33:return n==null?null:new Rp((j=$c(n,!0),j.length>0&&(Rr(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j));case 34:return n==null?null:pe(ql((H=$c(n,!0),H.length>0&&(Rr(0,H.length),H.charCodeAt(0)==43)?H.substr(1):H),Sa,wi));case 36:return n==null?null:v2(Rq((G=$c(n,!0),G.length>0&&(Rr(0,G.length),G.charCodeAt(0)==43)?G.substr(1):G)));case 37:return n==null?null:v2(Rq((K=$c(n,!0),K.length>0&&(Rr(0,K.length),K.charCodeAt(0)==43)?K.substr(1):K)));case 40:return Vhn((Ii(),n));case 42:return Hie((Ii(),n));case 43:return Hie(n);case 44:return n==null?null:new Rp((tt=$c(n,!0),tt.length>0&&(Rr(0,tt.length),tt.charCodeAt(0)==43)?tt.substr(1):tt));case 45:return n==null?null:new Rp((gt=$c(n,!0),gt.length>0&&(Rr(0,gt.length),gt.charCodeAt(0)==43)?gt.substr(1):gt));case 46:return $c(n,!1);case 47:return Br(vv(this,(Ii(),$5e),n));case 59:case 48:return Hhn((Ii(),n));case 49:return Br(vv(this,(Ii(),z5e),n));case 50:return n==null?null:uE(ql((Mt=$c(n,!0),Mt.length>0&&(Rr(0,Mt.length),Mt.charCodeAt(0)==43)?Mt.substr(1):Mt),zH,32767)<<16>>16);case 51:return n==null?null:uE(ql((h=$c(n,!0),h.length>0&&(Rr(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),zH,32767)<<16>>16);case 53:return Br(vv(this,(Ii(),q5e),n));case 55:return n==null?null:uE(ql((d=$c(n,!0),d.length>0&&(Rr(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),zH,32767)<<16>>16);case 56:return n==null?null:uE(ql((v=$c(n,!0),v.length>0&&(Rr(0,v.length),v.charCodeAt(0)==43)?v.substr(1):v),zH,32767)<<16>>16);case 57:return n==null?null:v2(Rq((k=$c(n,!0),k.length>0&&(Rr(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k)));case 58:return n==null?null:v2(Rq((C=$c(n,!0),C.length>0&&(Rr(0,C.length),C.charCodeAt(0)==43)?C.substr(1):C)));case 60:return n==null?null:pe(ql((r=$c(n,!0),r.length>0&&(Rr(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),Sa,wi));case 61:return n==null?null:pe(ql($c(n,!0),Sa,wi));default:throw it(new Fn(QE+e.ne()+Cv))}};var V5e,TLt,G5e,CLt;F(xs,"XMLTypeFactoryImpl",1919),D(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},AXt),l.N=!1,l.O=!1;var U5e=!1;F(xs,"XMLTypePackageImpl",586),D(1852,1,{837:1},hx),l._j=function(){return oxt(),exe},F(xs,"XMLTypePackageImpl/1",1852),D(1861,1,si,d1),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/10",1861),D(1862,1,si,LB),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/11",1862),D(1863,1,si,MB),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/12",1863),D(1864,1,si,DB),l.wj=function(e){return Bm(e)},l.xj=function(e){return Nt(la,ee,333,e,7,1)},F(xs,"XMLTypePackageImpl/13",1864),D(1865,1,si,IB),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/14",1865),D(1866,1,si,OB),l.wj=function(e){return _t(e,15)},l.xj=function(e){return Nt(wh,Ty,15,e,0,1)},F(xs,"XMLTypePackageImpl/15",1866),D(1867,1,si,PB),l.wj=function(e){return _t(e,15)},l.xj=function(e){return Nt(wh,Ty,15,e,0,1)},F(xs,"XMLTypePackageImpl/16",1867),D(1868,1,si,$f),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/17",1868),D(1869,1,si,du),l.wj=function(e){return _t(e,155)},l.xj=function(e){return Nt(i7,ee,155,e,0,1)},F(xs,"XMLTypePackageImpl/18",1869),D(1870,1,si,AJ),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/19",1870),D(1853,1,si,LJ),l.wj=function(e){return _t(e,843)},l.xj=function(e){return Nt(wP,De,843,e,0,1)},F(xs,"XMLTypePackageImpl/2",1853),D(1871,1,si,MJ),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/20",1871),D(1872,1,si,gu),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/21",1872),D(1873,1,si,cC),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/22",1873),D(1874,1,si,FB),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/23",1874),D(1875,1,si,NB),l.wj=function(e){return _t(e,190)},l.xj=function(e){return Nt(Gu,ee,190,e,0,2)},F(xs,"XMLTypePackageImpl/24",1875),D(1876,1,si,fx),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/25",1876),D(1877,1,si,DJ),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/26",1877),D(1878,1,si,$k),l.wj=function(e){return _t(e,15)},l.xj=function(e){return Nt(wh,Ty,15,e,0,1)},F(xs,"XMLTypePackageImpl/27",1878),D(1879,1,si,IJ),l.wj=function(e){return _t(e,15)},l.xj=function(e){return Nt(wh,Ty,15,e,0,1)},F(xs,"XMLTypePackageImpl/28",1879),D(1880,1,si,BB),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/29",1880),D(1854,1,si,OJ),l.wj=function(e){return _t(e,667)},l.xj=function(e){return Nt(mU,De,2021,e,0,1)},F(xs,"XMLTypePackageImpl/3",1854),D(1881,1,si,PJ),l.wj=function(e){return _t(e,19)},l.xj=function(e){return Nt(ja,ee,19,e,0,1)},F(xs,"XMLTypePackageImpl/30",1881),D(1882,1,si,uC),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/31",1882),D(1883,1,si,RB),l.wj=function(e){return _t(e,162)},l.xj=function(e){return Nt(Sv,ee,162,e,0,1)},F(xs,"XMLTypePackageImpl/32",1883),D(1884,1,si,UL),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/33",1884),D(1885,1,si,lC),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/34",1885),D(1886,1,si,FJ),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/35",1886),D(1887,1,si,NJ),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/36",1887),D(1888,1,si,WL),l.wj=function(e){return _t(e,15)},l.xj=function(e){return Nt(wh,Ty,15,e,0,1)},F(xs,"XMLTypePackageImpl/37",1888),D(1889,1,si,hC),l.wj=function(e){return _t(e,15)},l.xj=function(e){return Nt(wh,Ty,15,e,0,1)},F(xs,"XMLTypePackageImpl/38",1889),D(1890,1,si,g1),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/39",1890),D(1855,1,si,zk),l.wj=function(e){return _t(e,668)},l.xj=function(e){return Nt(vP,De,2022,e,0,1)},F(xs,"XMLTypePackageImpl/4",1855),D(1891,1,si,BJ),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/40",1891),D(1892,1,si,qk),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/41",1892),D(1893,1,si,YL),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/42",1893),D(1894,1,si,Wb),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/43",1894),D(1895,1,si,fC),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/44",1895),D(1896,1,si,KL),l.wj=function(e){return _t(e,184)},l.xj=function(e){return Nt(Av,ee,184,e,0,1)},F(xs,"XMLTypePackageImpl/45",1896),D(1897,1,si,zf),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/46",1897),D(1898,1,si,dC),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/47",1898),D(1899,1,si,p1),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/48",1899),D(ab,1,si,b1),l.wj=function(e){return _t(e,184)},l.xj=function(e){return Nt(Av,ee,184,e,0,1)},F(xs,"XMLTypePackageImpl/49",ab),D(1856,1,si,RJ),l.wj=function(e){return _t(e,669)},l.xj=function(e){return Nt(kLt,De,2023,e,0,1)},F(xs,"XMLTypePackageImpl/5",1856),D(1901,1,si,jJ),l.wj=function(e){return _t(e,162)},l.xj=function(e){return Nt(Sv,ee,162,e,0,1)},F(xs,"XMLTypePackageImpl/50",1901),D(1902,1,si,M3),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/51",1902),D(1903,1,si,Hk),l.wj=function(e){return _t(e,19)},l.xj=function(e){return Nt(ja,ee,19,e,0,1)},F(xs,"XMLTypePackageImpl/52",1903),D(1857,1,si,Vk),l.wj=function(e){return ra(e)},l.xj=function(e){return Nt(Ae,ee,2,e,6,1)},F(xs,"XMLTypePackageImpl/6",1857),D(1858,1,si,gC),l.wj=function(e){return _t(e,190)},l.xj=function(e){return Nt(Gu,ee,190,e,0,2)},F(xs,"XMLTypePackageImpl/7",1858),D(1859,1,si,$J),l.wj=function(e){return Nm(e)},l.xj=function(e){return Nt(Rs,ee,476,e,8,1)},F(xs,"XMLTypePackageImpl/8",1859),D(1860,1,si,dx),l.wj=function(e){return _t(e,217)},l.xj=function(e){return Nt(M6,ee,217,e,0,1)},F(xs,"XMLTypePackageImpl/9",1860);var Y1,lp,dA,yU,wt;D(50,60,Q0,Nr),F(Zg,"RegEx/ParseException",50),D(820,1,{},XL),l.sl=function(e){return er*16)throw it(new Nr(qr((Pr(),g0e))));r=r*16+o}while(!0);if(this.a!=125)throw it(new Nr(qr((Pr(),p0e))));if(r>e7)throw it(new Nr(qr((Pr(),b0e))));e=r}else{if(o=0,this.c!=0||(o=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(r=o,fi(this),this.c!=0||(o=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));r=r*16+o,e=r}break;case 117:if(s=0,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));n=n*16+s,e=n;break;case 118:if(fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,fi(this),this.c!=0||(s=y2(this.a))<0)throw it(new Nr(qr((Pr(),Qg))));if(n=n*16+s,n>e7)throw it(new Nr(qr((Pr(),"parser.descappe.4"))));e=n;break;case 65:case 90:case 122:throw it(new Nr(qr((Pr(),w0e))))}return e},l.ul=function(e){var n,r;switch(e){case 100:r=(this.e&32)==32?ib("Nd",!0):(gi(),xU);break;case 68:r=(this.e&32)==32?ib("Nd",!1):(gi(),DLt);break;case 119:r=(this.e&32)==32?ib("IsWord",!0):(gi(),q7);break;case 87:r=(this.e&32)==32?ib("IsWord",!1):(gi(),OLt);break;case 115:r=(this.e&32)==32?ib("IsSpace",!0):(gi(),ek);break;case 83:r=(this.e&32)==32?ib("IsSpace",!1):(gi(),ILt);break;default:throw it(new Vo((n=e,wge+n.toString(16))))}return r},l.vl=function(e){var n,r,s,o,h,d,v,k,C,M,j,H;for(this.b=1,fi(this),n=null,this.c==0&&this.a==94?(fi(this),e?M=(gi(),gi(),new Nl(5)):(n=(gi(),gi(),new Nl(4)),jc(n,0,e7),M=new Nl(4))):M=(gi(),gi(),new Nl(4)),o=!0;(H=this.c)!=1&&!(H==0&&this.a==93&&!o);){if(o=!1,r=this.a,s=!1,H==10)switch(r){case 100:case 68:case 119:case 87:case 115:case 83:yy(M,this.ul(r)),s=!0;break;case 105:case 73:case 99:case 67:r=this.Ll(M,r),r<0&&(s=!0);break;case 112:case 80:if(j=u5t(this,r),!j)throw it(new Nr(qr((Pr(),cut))));yy(M,j),s=!0;break;default:r=this.tl()}else if(H==20){if(d=v8(this.i,58,this.d),d<0)throw it(new Nr(qr((Pr(),O8t))));if(v=!0,wa(this.i,this.d)==94&&(++this.d,v=!1),h=Pl(this.i,this.d,d),k=Lte(h,v,(this.e&512)==512),!k)throw it(new Nr(qr((Pr(),u0e))));if(yy(M,k),s=!0,d+1>=this.j||wa(this.i,d+1)!=93)throw it(new Nr(qr((Pr(),O8t))));this.d=d+2}if(fi(this),!s)if(this.c!=0||this.a!=45)jc(M,r,r);else{if(fi(this),(H=this.c)==1)throw it(new Nr(qr((Pr(),PH))));H==0&&this.a==93?(jc(M,r,r),jc(M,45,45)):(C=this.a,H==10&&(C=this.tl()),fi(this),jc(M,r,C))}(this.e&xf)==xf&&this.c==0&&this.a==44&&fi(this)}if(this.c==1)throw it(new Nr(qr((Pr(),PH))));return n&&(L_(n,M),M=n),v4(M),S_(M),this.b=0,fi(this),M},l.wl=function(){var e,n,r,s;for(r=this.vl(!1);(s=this.c)!=7;)if(e=this.a,s==0&&(e==45||e==38)||s==4){if(fi(this),this.c!=9)throw it(new Nr(qr((Pr(),h0e))));if(n=this.vl(!1),s==4)yy(r,n);else if(e==45)L_(r,n);else if(e==38)lhe(r,n);else throw it(new Vo("ASSERT"))}else throw it(new Nr(qr((Pr(),f0e))));return fi(this),r},l.xl=function(){var e,n;return e=this.a-48,n=(gi(),gi(),new krt(12,null,e)),!this.g&&(this.g=new ER),kR(this.g,new Spt(e)),fi(this),n},l.yl=function(){return fi(this),gi(),K5e},l.zl=function(){return fi(this),gi(),Y5e},l.Al=function(){throw it(new Nr(qr((Pr(),bh))))},l.Bl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Cl=function(){return fi(this),Gun()},l.Dl=function(){return fi(this),gi(),Q5e},l.El=function(){return fi(this),gi(),J5e},l.Fl=function(){var e;if(this.d>=this.j||((e=wa(this.i,this.d++))&65504)!=64)throw it(new Nr(qr((Pr(),a0e))));return fi(this),gi(),gi(),new Yd(0,e-64)},l.Gl=function(){return fi(this),Ayn()},l.Hl=function(){return fi(this),gi(),txe},l.Il=function(){var e;return e=(gi(),gi(),new Yd(0,105)),fi(this),e},l.Jl=function(){return fi(this),gi(),Z5e},l.Kl=function(){return fi(this),gi(),X5e},l.Ll=function(e,n){return this.tl()},l.Ml=function(){return fi(this),gi(),LLt},l.Nl=function(){var e,n,r,s,o;if(this.d+1>=this.j)throw it(new Nr(qr((Pr(),r0e))));if(s=-1,n=null,e=wa(this.i,this.d),49<=e&&e<=57){if(s=e-48,!this.g&&(this.g=new ER),kR(this.g,new Spt(s)),++this.d,wa(this.i,this.d)!=41)throw it(new Nr(qr((Pr(),I2))));++this.d}else switch(e==63&&--this.d,fi(this),n=Ixt(this),n.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw it(new Nr(qr((Pr(),I2))));break;default:throw it(new Nr(qr((Pr(),i0e))))}if(fi(this),o=cv(this),r=null,o.e==2){if(o.em()!=2)throw it(new Nr(qr((Pr(),s0e))));r=o.am(1),o=o.am(0)}if(this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),gi(),gi(),new oee(s,n,o,r)},l.Ol=function(){return fi(this),gi(),MLt},l.Pl=function(){var e;if(fi(this),e=i$(24,cv(this)),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Ql=function(){var e;if(fi(this),e=i$(20,cv(this)),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Rl=function(){var e;if(fi(this),e=i$(22,cv(this)),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Sl=function(){var e,n,r,s,o;for(e=0,r=0,n=-1;this.d=this.j)throw it(new Nr(qr((Pr(),D8t))));if(n==45){for(++this.d;this.d=this.j)throw it(new Nr(qr((Pr(),D8t))))}if(n==58){if(++this.d,fi(this),s=fXt(cv(this),e,r),this.c!=7)throw it(new Nr(qr((Pr(),I2))));fi(this)}else if(n==41)++this.d,fi(this),s=fXt(cv(this),e,r);else throw it(new Nr(qr((Pr(),n0e))));return s},l.Tl=function(){var e;if(fi(this),e=i$(21,cv(this)),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Ul=function(){var e;if(fi(this),e=i$(23,cv(this)),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Vl=function(){var e,n;if(fi(this),e=this.f++,n=Knt(cv(this),e),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),n},l.Wl=function(){var e;if(fi(this),e=Knt(cv(this),0),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Xl=function(e){return fi(this),this.c==5?(fi(this),Yj(e,(gi(),gi(),new Xm(9,e)))):Yj(e,(gi(),gi(),new Xm(3,e)))},l.Yl=function(e){var n;return fi(this),n=(gi(),gi(),new d9(2)),this.c==5?(fi(this),E2(n,pA),E2(n,e)):(E2(n,e),E2(n,pA)),n},l.Zl=function(e){return fi(this),this.c==5?(fi(this),gi(),gi(),new Xm(9,e)):(gi(),gi(),new Xm(3,e))},l.a=0,l.b=0,l.c=0,l.d=0,l.e=0,l.f=1,l.g=null,l.j=0,F(Zg,"RegEx/RegexParser",820),D(1824,820,{},Vqt),l.sl=function(e){return!1},l.tl=function(){return H5t(this)},l.ul=function(e){return ME(e)},l.vl=function(e){return nfe(this)},l.wl=function(){throw it(new Nr(qr((Pr(),bh))))},l.xl=function(){throw it(new Nr(qr((Pr(),bh))))},l.yl=function(){throw it(new Nr(qr((Pr(),bh))))},l.zl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Al=function(){return fi(this),ME(67)},l.Bl=function(){return fi(this),ME(73)},l.Cl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Dl=function(){throw it(new Nr(qr((Pr(),bh))))},l.El=function(){throw it(new Nr(qr((Pr(),bh))))},l.Fl=function(){return fi(this),ME(99)},l.Gl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Hl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Il=function(){return fi(this),ME(105)},l.Jl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Kl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Ll=function(e,n){return yy(e,ME(n)),-1},l.Ml=function(){return fi(this),gi(),gi(),new Yd(0,94)},l.Nl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Ol=function(){return fi(this),gi(),gi(),new Yd(0,36)},l.Pl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Ql=function(){throw it(new Nr(qr((Pr(),bh))))},l.Rl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Sl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Tl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Ul=function(){throw it(new Nr(qr((Pr(),bh))))},l.Vl=function(){var e;if(fi(this),e=Knt(cv(this),0),this.c!=7)throw it(new Nr(qr((Pr(),I2))));return fi(this),e},l.Wl=function(){throw it(new Nr(qr((Pr(),bh))))},l.Xl=function(e){return fi(this),Yj(e,(gi(),gi(),new Xm(3,e)))},l.Yl=function(e){var n;return fi(this),n=(gi(),gi(),new d9(2)),E2(n,e),E2(n,pA),n},l.Zl=function(e){return fi(this),gi(),gi(),new Xm(3,e)};var d5=null,$7=null;F(Zg,"RegEx/ParserForXMLSchema",1824),D(117,1,n7,yw),l.$l=function(e){throw it(new Vo("Not supported."))},l._l=function(){return-1},l.am=function(e){return null},l.bm=function(){return null},l.cm=function(e){},l.dm=function(e){},l.em=function(){return 0},l.Ib=function(){return this.fm(0)},l.fm=function(e){return this.e==11?".":""},l.e=0;var _Lt,z7,gA,W5e,SLt,s3=null,xU,Hft=null,ALt,pA,Vft=null,LLt,MLt,DLt,ILt,OLt,Y5e,ek,K5e,X5e,Q5e,Z5e,q7,J5e,txe,k6n=F(Zg,"RegEx/Token",117);D(136,117,{3:1,136:1,117:1},Nl),l.fm=function(e){var n,r,s;if(this.e==4)if(this==ALt)r=".";else if(this==xU)r="\\d";else if(this==q7)r="\\w";else if(this==ek)r="\\s";else{for(s=new Ag,s.a+="[",n=0;n0&&(s.a+=","),this.b[n]===this.b[n+1]?go(s,_I(this.b[n])):(go(s,_I(this.b[n])),s.a+="-",go(s,_I(this.b[n+1])));s.a+="]",r=s.a}else if(this==DLt)r="\\D";else if(this==OLt)r="\\W";else if(this==ILt)r="\\S";else{for(s=new Ag,s.a+="[^",n=0;n0&&(s.a+=","),this.b[n]===this.b[n+1]?go(s,_I(this.b[n])):(go(s,_I(this.b[n])),s.a+="-",go(s,_I(this.b[n+1])));s.a+="]",r=s.a}return r},l.a=!1,l.c=!1,F(Zg,"RegEx/RangeToken",136),D(584,1,{584:1},Spt),l.a=0,F(Zg,"RegEx/RegexParser/ReferencePosition",584),D(583,1,{3:1,583:1},eVt),l.Fb=function(e){var n;return e==null||!_t(e,583)?!1:(n=u(e,583),hn(this.b,n.b)&&this.a==n.a)},l.Hb=function(){return Vg(this.b+"/"+B5t(this.a))},l.Ib=function(){return this.c.fm(this.a)},l.a=0,F(Zg,"RegEx/RegularExpression",583),D(223,117,n7,Yd),l._l=function(){return this.a},l.fm=function(e){var n,r,s;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:s="\\"+knt(this.a&ys);break;case 12:s="\\f";break;case 10:s="\\n";break;case 13:s="\\r";break;case 9:s="\\t";break;case 27:s="\\e";break;default:this.a>=Ka?(r=(n=this.a>>>0,"0"+n.toString(16)),s="\\v"+Pl(r,r.length-6,r.length)):s=""+knt(this.a&ys)}break;case 8:this==LLt||this==MLt?s=""+knt(this.a&ys):s="\\"+knt(this.a&ys);break;default:s=null}return s},l.a=0,F(Zg,"RegEx/Token/CharToken",223),D(309,117,n7,Xm),l.am=function(e){return this.a},l.cm=function(e){this.b=e},l.dm=function(e){this.c=e},l.em=function(){return 1},l.fm=function(e){var n;if(this.e==3)if(this.c<0&&this.b<0)n=this.a.fm(e)+"*";else if(this.c==this.b)n=this.a.fm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)n=this.a.fm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)n=this.a.fm(e)+"{"+this.c+",}";else throw it(new Vo("Token#toString(): CLOSURE "+this.c+Ya+this.b));else if(this.c<0&&this.b<0)n=this.a.fm(e)+"*?";else if(this.c==this.b)n=this.a.fm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)n=this.a.fm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)n=this.a.fm(e)+"{"+this.c+",}?";else throw it(new Vo("Token#toString(): NONGREEDYCLOSURE "+this.c+Ya+this.b));return n},l.b=0,l.c=0,F(Zg,"RegEx/Token/ClosureToken",309),D(821,117,n7,mvt),l.am=function(e){return e==0?this.a:this.b},l.em=function(){return 2},l.fm=function(e){var n;return this.b.e==3&&this.b.am(0)==this.a?n=this.a.fm(e)+"+":this.b.e==9&&this.b.am(0)==this.a?n=this.a.fm(e)+"+?":n=this.a.fm(e)+(""+this.b.fm(e)),n},F(Zg,"RegEx/Token/ConcatToken",821),D(1822,117,n7,oee),l.am=function(e){if(e==0)return this.d;if(e==1)return this.b;throw it(new Vo("Internal Error: "+e))},l.em=function(){return this.b?2:1},l.fm=function(e){var n;return this.c>0?n="(?("+this.c+")":this.a.e==8?n="(?("+this.a+")":n="(?"+this.a,this.b?n+=this.d+"|"+this.b+")":n+=this.d+")",n},l.c=0,F(Zg,"RegEx/Token/ConditionToken",1822),D(1823,117,n7,oZt),l.am=function(e){return this.b},l.em=function(){return 1},l.fm=function(e){return"(?"+(this.a==0?"":B5t(this.a))+(this.c==0?"":B5t(this.c))+":"+this.b.fm(e)+")"},l.a=0,l.c=0,F(Zg,"RegEx/Token/ModifierToken",1823),D(822,117,n7,Cvt),l.am=function(e){return this.a},l.em=function(){return 1},l.fm=function(e){var n;switch(n=null,this.e){case 6:this.b==0?n="(?:"+this.a.fm(e)+")":n="("+this.a.fm(e)+")";break;case 20:n="(?="+this.a.fm(e)+")";break;case 21:n="(?!"+this.a.fm(e)+")";break;case 22:n="(?<="+this.a.fm(e)+")";break;case 23:n="(?"+this.a.fm(e)+")"}return n},l.b=0,F(Zg,"RegEx/Token/ParenToken",822),D(521,117,{3:1,117:1,521:1},krt),l.bm=function(){return this.b},l.fm=function(e){return this.e==12?"\\"+this.a:Nbn(this.b)},l.a=0,F(Zg,"RegEx/Token/StringToken",521),D(465,117,n7,d9),l.$l=function(e){E2(this,e)},l.am=function(e){return u(zw(this.a,e),117)},l.em=function(){return this.a?this.a.a.c.length:0},l.fm=function(e){var n,r,s,o,h;if(this.e==1){if(this.a.a.c.length==2)n=u(zw(this.a,0),117),r=u(zw(this.a,1),117),r.e==3&&r.am(0)==n?o=n.fm(e)+"+":r.e==9&&r.am(0)==n?o=n.fm(e)+"+?":o=n.fm(e)+(""+r.fm(e));else{for(h=new Ag,s=0;s=this.c.b:this.a<=this.c.b},l.Sb=function(){return this.b>0},l.Tb=function(){return this.b},l.Vb=function(){return this.b-1},l.Qb=function(){throw it(new Sg(Tge))},l.a=0,l.b=0,F(Z8t,"ExclusiveRange/RangeIterator",254);var xh=A8(FH,"C"),Cr=A8(rS,"I"),pl=A8(b6,"Z"),Ob=A8(iS,"J"),Gu=A8(tS,"B"),aa=A8(eS,"D"),a3=A8(nS,"F"),g5=A8(sS,"S"),E6n=Ki("org.eclipse.elk.core.labels","ILabelManager"),PLt=Ki(Ra,"DiagnosticChain"),FLt=Ki(Z0e,"ResourceSet"),NLt=F(Ra,"InvocationTargetException",null),nxe=(AR(),gan),rxe=rxe=r0n;ucn(nKe),Fcn("permProps",[[[YH,KH],[XH,"gecko1_8"]],[[YH,KH],[XH,"ie10"]],[[YH,KH],[XH,"ie8"]],[[YH,KH],[XH,"ie9"]],[[YH,KH],[XH,"safari"]]]),rxe(null,"elk",null)}).call(this)}).call(this,typeof b0<"u"?b0:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(f,p,w){function m(I,B){if(!(I instanceof B))throw new TypeError("Cannot call a class as a function")}function b(I,B){if(!I)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B&&(typeof B=="object"||typeof B=="function")?B:I}function E(I,B){if(typeof B!="function"&&B!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof B);I.prototype=Object.create(B&&B.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),B&&(Object.setPrototypeOf?Object.setPrototypeOf(I,B):I.__proto__=B)}var _=f("./elk-api.js").default,A=function(I){E(B,I);function B(){var N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};m(this,B);var R=Object.assign({},N),z=!1;try{f.resolve("web-worker"),z=!0}catch{}if(N.workerUrl)if(z){var W=f("web-worker");R.workerFactory=function(at){return new W(at)}}else console.warn(`Web worker requested but 'web-worker' package not installed. -Consider installing the package or pass your own 'workerFactory' to ELK's constructor. -... Falling back to non-web worker version.`);if(!R.workerFactory){var et=f("./elk-worker.min.js"),st=et.Worker;R.workerFactory=function(at){return new st(at)}}return b(this,(B.__proto__||Object.getPrototypeOf(B)).call(this,R))}return B}(_);Object.defineProperty(p.exports,"__esModule",{value:!0}),p.exports=A,A.default=A},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(f,p,w){p.exports=Worker},{}]},{},[3])(3)})})(Bjt);var oWe=Bjt.exports;const cWe=G7(oWe),Rjt=new cWe;let ow={};const uWe={};let q5={};const lWe=async function(i,a,f,p,w,m,b){const _=f.select(`[id="${a}"]`).insert("g").attr("class","nodes"),A=Object.keys(i);return await Promise.all(A.map(async function(I){const B=i[I];let N="default";B.classes.length>0&&(N=B.classes.join(" ")),N=N+" flowchart-label";const R=im(B.styles);let z=B.text!==void 0?B.text:B.id;const W={width:0,height:0},et=[{id:B.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:B.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:B.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:B.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let st=0,at="",bt={};switch(B.type){case"round":st=5,at="rect";break;case"square":at="rect";break;case"diamond":at="question",bt={portConstraints:"FIXED_SIDE"};break;case"hexagon":at="hexagon";break;case"odd":at="rect_left_inv_arrow";break;case"lean_right":at="lean_right";break;case"lean_left":at="lean_left";break;case"trapezoid":at="trapezoid";break;case"inv_trapezoid":at="inv_trapezoid";break;case"odd_right":at="rect_left_inv_arrow";break;case"circle":at="circle";break;case"ellipse":at="ellipse";break;case"stadium":at="stadium";break;case"subroutine":at="subroutine";break;case"cylinder":at="cylinder";break;case"group":at="rect";break;case"doublecircle":at="doublecircle";break;default:at="rect"}const mt={labelStyle:R.labelStyle,shape:at,labelText:z,labelType:B.labelType,rx:st,ry:st,class:N,style:R.style,id:B.id,link:B.link,linkTarget:B.linkTarget,tooltip:w.db.getTooltip(B.id)||"",domId:w.db.lookUpDomId(B.id),haveCallback:B.haveCallback,width:B.type==="group"?500:void 0,dir:B.dir,type:B.type,props:B.props,padding:Fd().flowchart.padding};let yt,ft;if(mt.type!=="group")ft=await kBt(_,mt,B.dir),yt=ft.node().getBBox();else{p.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:vt,bbox:X}=await Nd(_,mt,void 0,!0);W.width=X.width,W.wrappingWidth=Fd().flowchart.wrappingWidth,W.height=X.height,W.labelNode=vt.node(),mt.labelData=W}const ut={id:B.id,ports:B.type==="diamond"?et:[],layoutOptions:bt,labelText:z,labelData:W,domId:w.db.lookUpDomId(B.id),width:yt==null?void 0:yt.width,height:yt==null?void 0:yt.height,type:B.type,el:ft,parent:m.parentById[B.id]};q5[mt.id]=ut})),b},jjt=(i,a,f)=>{const p={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return p.TD=p.TB,Ut.info("abc88",f,a,i),p[f][a][i]},$jt=(i,a,f)=>{if(Ut.info("getNextPort abc88",{node:i,edgeDirection:a,graphDirection:f}),!ow[i])switch(f){case"TB":case"TD":ow[i]={inPosition:"north",outPosition:"south"};break;case"BT":ow[i]={inPosition:"south",outPosition:"north"};break;case"RL":ow[i]={inPosition:"east",outPosition:"west"};break;case"LR":ow[i]={inPosition:"west",outPosition:"east"};break}const p=a==="in"?ow[i].inPosition:ow[i].outPosition;return a==="in"?ow[i].inPosition=jjt(ow[i].inPosition,a,f):ow[i].outPosition=jjt(ow[i].outPosition,a,f),p},hWe=(i,a)=>{let f=i.start,p=i.end;const w=f,m=p,b=q5[f],E=q5[p];return!b||!E?{source:f,target:p}:(b.type==="diamond"&&(f=`${f}-${$jt(f,"out",a)}`),E.type==="diamond"&&(p=`${p}-${$jt(p,"in",a)}`),{source:f,target:p,sourceId:w,targetId:m})},fWe=function(i,a,f,p){Ut.info("abc78 edges = ",i);const w=p.insert("g").attr("class","edgeLabels");let m={},b=a.db.getDirection(),E,_;if(i.defaultStyle!==void 0){const A=im(i.defaultStyle);E=A.style,_=A.labelStyle}return i.forEach(function(A){const I="L-"+A.start+"-"+A.end;m[I]===void 0?(m[I]=0,Ut.info("abc78 new entry",I,m[I])):(m[I]++,Ut.info("abc78 new entry",I,m[I]));let B=I+"-"+m[I];Ut.info("abc78 new link id to be used is",I,B,m[I]);const N="LS-"+A.start,R="LE-"+A.end,z={style:"",labelStyle:""};switch(z.minlen=A.length||1,A.type==="arrow_open"?z.arrowhead="none":z.arrowhead="normal",z.arrowTypeStart="arrow_open",z.arrowTypeEnd="arrow_open",A.type){case"double_arrow_cross":z.arrowTypeStart="arrow_cross";case"arrow_cross":z.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":z.arrowTypeStart="arrow_point";case"arrow_point":z.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":z.arrowTypeStart="arrow_circle";case"arrow_circle":z.arrowTypeEnd="arrow_circle";break}let W="",et="";switch(A.stroke){case"normal":W="fill:none;",E!==void 0&&(W=E),_!==void 0&&(et=_),z.thickness="normal",z.pattern="solid";break;case"dotted":z.thickness="normal",z.pattern="dotted",z.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":z.thickness="thick",z.pattern="solid",z.style="stroke-width: 3.5px;fill:none;";break}if(A.style!==void 0){const ft=im(A.style);W=ft.style,et=ft.labelStyle}z.style=z.style+=W,z.labelStyle=z.labelStyle+=et,A.interpolate!==void 0?z.curve=ew(A.interpolate,cg):i.defaultInterpolate!==void 0?z.curve=ew(i.defaultInterpolate,cg):z.curve=ew(uWe.curve,cg),A.text===void 0?A.style!==void 0&&(z.arrowheadStyle="fill: #333"):(z.arrowheadStyle="fill: #333",z.labelpos="c"),z.labelType=A.labelType,z.label=A.text.replace(Kr.lineBreakRegex,` -`),A.style===void 0&&(z.style=z.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),z.labelStyle=z.labelStyle.replace("color:","fill:"),z.id=B,z.classes="flowchart-link "+N+" "+R;const st=_Bt(w,z),{source:at,target:bt,sourceId:mt,targetId:yt}=hWe(A,b);Ut.debug("abc78 source and target",at,bt),f.edges.push({id:"e"+A.start+A.end,sources:[at],targets:[bt],sourceId:mt,targetId:yt,labelEl:st,labels:[{width:z.width,height:z.height,orgWidth:z.width,orgHeight:z.height,text:z.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:z})}),f},dWe=function(i,a,f,p,w){let m="";switch(p&&(m=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,m=m.replace(/\(/g,"\\("),m=m.replace(/\)/g,"\\)")),a.arrowTypeStart){case"arrow_cross":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-crossStart)");break;case"arrow_point":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-pointStart)");break;case"arrow_barb":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-barbStart)");break;case"arrow_circle":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-circleStart)");break;case"aggregation":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-aggregationStart)");break;case"extension":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-extensionStart)");break;case"composition":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-compositionStart)");break;case"dependency":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-dependencyStart)");break;case"lollipop":i.attr("marker-start","url("+m+"#"+w+"_"+f+"-lollipopStart)");break}switch(a.arrowTypeEnd){case"arrow_cross":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-crossEnd)");break;case"arrow_point":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-pointEnd)");break;case"arrow_barb":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-barbEnd)");break;case"arrow_circle":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-circleEnd)");break;case"aggregation":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-aggregationEnd)");break;case"extension":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-extensionEnd)");break;case"composition":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-compositionEnd)");break;case"dependency":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-dependencyEnd)");break;case"lollipop":i.attr("marker-end","url("+m+"#"+w+"_"+f+"-lollipopEnd)");break}},gWe=function(i,a){return Ut.info("Extracting classes"),a.db.getClasses()},pWe=function(i){const a={parentById:{},childrenById:{}},f=i.getSubGraphs();return Ut.info("Subgraphs - ",f),f.forEach(function(p){p.nodes.forEach(function(w){a.parentById[w]=p.id,a.childrenById[p.id]===void 0&&(a.childrenById[p.id]=[]),a.childrenById[p.id].push(w)})}),f.forEach(function(p){p.id,a.parentById[p.id]!==void 0&&a.parentById[p.id]}),a},bWe=function(i,a,f){const p=aWe(i,a,f);if(p===void 0||p==="root")return{x:0,y:0};const w=q5[p].offset;return{x:w.posX,y:w.posY}},wWe=function(i,a,f,p,w,m){const b=bWe(a.sourceId,a.targetId,w),E=a.sections[0].startPoint,_=a.sections[0].endPoint,I=(a.sections[0].bendPoints?a.sections[0].bendPoints:[]).map(bt=>[bt.x+b.x,bt.y+b.y]),B=[[E.x+b.x,E.y+b.y],...I,[_.x+b.x,_.y+b.y]],{x:N,y:R}=CBt(a.edgeData),z=E5().x(N).y(R).curve(cg),W=i.insert("path").attr("d",z(B)).attr("class","path "+f.classes).attr("fill","none"),et=i.insert("g").attr("class","edgeLabel"),st=yr(et.node().appendChild(a.labelEl)),at=st.node().firstChild.getBoundingClientRect();st.attr("width",at.width),st.attr("height",at.height),et.attr("transform",`translate(${a.labels[0].x+b.x}, ${a.labels[0].y+b.y})`),dWe(W,f,p.type,p.arrowMarkerAbsolute,m)},zjt=(i,a)=>{i.forEach(f=>{f.children||(f.children=[]);const p=a.childrenById[f.id];p&&p.forEach(w=>{f.children.push(q5[w])}),zjt(f.children,a)})},vWe=async function(i,a,f,p){var ut;p.db.clear(),q5={},ow={},p.db.setGen("gen-2"),p.parser.parse(i);const w=yr("body").append("div").attr("style","height:400px").attr("id","cy");let m={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Ut.info("Drawing flowchart using v3 renderer",Rjt),p.db.getDirection()){case"BT":m.layoutOptions["elk.direction"]="UP";break;case"TB":m.layoutOptions["elk.direction"]="DOWN";break;case"LR":m.layoutOptions["elk.direction"]="RIGHT";break;case"RL":m.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:E,flowchart:_}=Fd();let A;E==="sandbox"&&(A=yr("#i"+a));const I=yr(E==="sandbox"?A.nodes()[0].contentDocument.body:"body"),B=E==="sandbox"?A.nodes()[0].contentDocument:document,N=I.select(`[id="${a}"]`);PNt(N,["point","circle","cross"],p.type,a);const z=p.db.getVertices();let W;const et=p.db.getSubGraphs();Ut.info("Subgraphs - ",et);for(let vt=et.length-1;vt>=0;vt--)W=et[vt],p.db.addVertex(W.id,{text:W.title,type:W.labelType},"group",void 0,W.classes,W.dir);const st=N.insert("g").attr("class","subgraphs"),at=pWe(p.db);m=await lWe(z,a,I,B,p,at,m);const bt=N.insert("g").attr("class","edges edgePath"),mt=p.db.getEdges();m=fWe(mt,p,m,N),Object.keys(q5).forEach(vt=>{const X=q5[vt];X.parent||m.children.push(X),at.childrenById[vt]!==void 0&&(X.labels=[{text:X.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:X.labelData.width,height:X.labelData.height}],delete X.x,delete X.y,delete X.width,delete X.height)}),zjt(m.children,at),Ut.info("after layout",JSON.stringify(m,null,2));const ft=await Rjt.layout(m);qjt(0,0,ft.children,N,st,p,0),Ut.info("after layout",ft),(ut=ft.edges)==null||ut.map(vt=>{wWe(bt,vt,vt.edgeData,p,at,a)}),fT({},N,_.diagramPadding,_.useMaxWidth),w.remove()},qjt=(i,a,f,p,w,m,b)=>{f.forEach(function(E){if(E)if(q5[E.id].offset={posX:E.x+i,posY:E.y+a,x:i,y:a,depth:b,width:E.width,height:E.height},E.type==="group"){const _=w.insert("g").attr("class","subgraph");_.insert("rect").attr("class","subgraph subgraph-lvl-"+b%5+" node").attr("x",E.x+i).attr("y",E.y+a).attr("width",E.width).attr("height",E.height);const A=_.insert("g").attr("class","label"),I=Fd().flowchart.htmlLabels?E.labelData.width/2:0;A.attr("transform",`translate(${E.labels[0].x+i+E.x+I}, ${E.labels[0].y+a+E.y+3})`),A.node().appendChild(E.labelData.labelNode),Ut.info("Id (UGH)= ",E.type,E.labels)}else Ut.info("Id (UGH)= ",E.id),E.el.attr("transform",`translate(${E.x+i+E.width/2}, ${E.y+a+E.height/2})`)}),f.forEach(function(E){E&&E.type==="group"&&qjt(i+E.x,a+E.y,E.children,p,w,m,b+1)})},mWe={getClasses:gWe,draw:vWe},yWe=i=>{let a="";for(let f=0;f<5;f++)a+=` - .subgraph-lvl-${f} { - fill: ${i[`surface${f}`]}; - stroke: ${i[`surfacePeer${f}`]}; - } - `;return a},xWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:lIe,renderer:mWe,parser:Hdt,styles:i=>`.label { - font-family: ${i.fontFamily}; - color: ${i.nodeTextColor||i.textColor}; - } - .cluster-label text { - fill: ${i.titleColor}; - } - .cluster-label span { - color: ${i.titleColor}; - } - - .label text,span { - fill: ${i.nodeTextColor||i.textColor}; - color: ${i.nodeTextColor||i.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${i.mainBkg}; - stroke: ${i.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${i.arrowheadColor}; - } - - .edgePath .path { - stroke: ${i.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${i.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${i.edgeLabelBackground}; - rect { - opacity: 0.85; - background-color: ${i.edgeLabelBackground}; - fill: ${i.edgeLabelBackground}; - } - text-align: center; - } - - .cluster rect { - fill: ${i.clusterBkg}; - stroke: ${i.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${i.titleColor}; - } - - .cluster span { - color: ${i.titleColor}; - } - /* .cluster div { - color: ${i.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${i.fontFamily}; - font-size: 12px; - background: ${i.tertiaryColor}; - border: 1px solid ${i.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${i.textColor}; - } - .subgraph { - stroke-width:2; - rx:3; - } - // .subgraph-lvl-1 { - // fill:#ccc; - // // stroke:black; - // } - - .flowchart-label text { - text-anchor: middle; - } - - ${yWe(i)} -`}},Symbol.toStringTag,{value:"Module"}));var Ygt=function(){var i=function(N,R,z,W){for(z=z||{},W=N.length;W--;z[N[W]]=R);return z},a=[6,8,10,11,12,14,16,17,20,21],f=[1,9],p=[1,10],w=[1,11],m=[1,12],b=[1,13],E=[1,16],_=[1,17],A={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(R,z,W,et,st,at,bt){var mt=at.length-1;switch(st){case 1:return at[mt-1];case 2:this.$=[];break;case 3:at[mt-1].push(at[mt]),this.$=at[mt-1];break;case 4:case 5:this.$=at[mt];break;case 6:case 7:this.$=[];break;case 8:et.getCommonDb().setDiagramTitle(at[mt].substr(6)),this.$=at[mt].substr(6);break;case 9:this.$=at[mt].trim(),et.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=at[mt].trim(),et.getCommonDb().setAccDescription(this.$);break;case 12:et.addSection(at[mt].substr(8)),this.$=at[mt].substr(8);break;case 15:et.addTask(at[mt],0,""),this.$=at[mt];break;case 16:et.addEvent(at[mt].substr(2)),this.$=at[mt];break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:f,12:p,14:w,16:m,17:b,18:14,19:15,20:E,21:_},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:18,11:f,12:p,14:w,16:m,17:b,18:14,19:15,20:E,21:_},i(a,[2,5]),i(a,[2,6]),i(a,[2,8]),{13:[1,19]},{15:[1,20]},i(a,[2,11]),i(a,[2,12]),i(a,[2,13]),i(a,[2,14]),i(a,[2,15]),i(a,[2,16]),i(a,[2,4]),i(a,[2,9]),i(a,[2,10])],defaultActions:{},parseError:function(R,z){if(z.recoverable)this.trace(R);else{var W=new Error(R);throw W.hash=z,W}},parse:function(R){var z=this,W=[0],et=[],st=[null],at=[],bt=this.table,mt="",yt=0,ft=0,ut=2,vt=1,X=at.slice.call(arguments,1),pt=Object.create(this.lexer),U={yy:{}};for(var Tt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Tt)&&(U.yy[Tt]=this.yy[Tt]);pt.setInput(R,U.yy),U.yy.lexer=pt,U.yy.parser=this,typeof pt.yylloc>"u"&&(pt.yylloc={});var nt=pt.yylloc;at.push(nt);var It=pt.options&&pt.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var me;return me=et.pop()||pt.lex()||vt,typeof me!="number"&&(me instanceof Array&&(et=me,me=et.pop()),me=z.symbols_[me]||me),me}for(var Bt,Et,Z,Ct,xt={},Ht,Le,Ft,gn;;){if(Et=W[W.length-1],this.defaultActions[Et]?Z=this.defaultActions[Et]:((Bt===null||typeof Bt>"u")&&(Bt=Ot()),Z=bt[Et]&&bt[Et][Bt]),typeof Z>"u"||!Z.length||!Z[0]){var Se="";gn=[];for(Ht in bt[Et])this.terminals_[Ht]&&Ht>ut&&gn.push("'"+this.terminals_[Ht]+"'");pt.showPosition?Se="Parse error on line "+(yt+1)+`: -`+pt.showPosition()+` -Expecting `+gn.join(", ")+", got '"+(this.terminals_[Bt]||Bt)+"'":Se="Parse error on line "+(yt+1)+": Unexpected "+(Bt==vt?"end of input":"'"+(this.terminals_[Bt]||Bt)+"'"),this.parseError(Se,{text:pt.match,token:this.terminals_[Bt]||Bt,line:pt.yylineno,loc:nt,expected:gn})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Et+", token: "+Bt);switch(Z[0]){case 1:W.push(Bt),st.push(pt.yytext),at.push(pt.yylloc),W.push(Z[1]),Bt=null,ft=pt.yyleng,mt=pt.yytext,yt=pt.yylineno,nt=pt.yylloc;break;case 2:if(Le=this.productions_[Z[1]][1],xt.$=st[st.length-Le],xt._$={first_line:at[at.length-(Le||1)].first_line,last_line:at[at.length-1].last_line,first_column:at[at.length-(Le||1)].first_column,last_column:at[at.length-1].last_column},It&&(xt._$.range=[at[at.length-(Le||1)].range[0],at[at.length-1].range[1]]),Ct=this.performAction.apply(xt,[mt,ft,yt,U.yy,Z[1],st,at].concat(X)),typeof Ct<"u")return Ct;Le&&(W=W.slice(0,-1*Le*2),st=st.slice(0,-1*Le),at=at.slice(0,-1*Le)),W.push(this.productions_[Z[1]][0]),st.push(xt.$),at.push(xt._$),Ft=bt[W[W.length-2]][W[W.length-1]],W.push(Ft);break;case 3:return!0}}return!0}},I=function(){var N={EOF:1,parseError:function(z,W){if(this.yy.parser)this.yy.parser.parseError(z,W);else throw new Error(z)},setInput:function(R,z){return this.yy=z||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var z=R.match(/(?:\r\n?|\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},unput:function(R){var z=R.length,W=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z),this.offset-=z;var et=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),W.length-1&&(this.yylineno-=W.length-1);var st=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:W?(W.length===et.length?this.yylloc.first_column:0)+et[et.length-W.length].length-W[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[st[0],st[0]+this.yyleng-z]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(R){this.unput(this.match.slice(R))},pastInput:function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var R=this.pastInput(),z=new Array(R.length+1).join("-");return R+this.upcomingInput()+` -`+z+"^"},test_match:function(R,z){var W,et,st;if(this.options.backtrack_lexer&&(st={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(st.yylloc.range=this.yylloc.range.slice(0))),et=R[0].match(/(?:\r\n?|\n).*/g),et&&(this.yylineno+=et.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:et?et[et.length-1].length-et[et.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],W=this.performAction.call(this,this.yy,this,z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),W)return W;if(this._backtrack){for(var at in st)this[at]=st[at];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,z,W,et;this._more||(this.yytext="",this.match="");for(var st=this._currentRules(),at=0;atz[0].length)){if(z=W,et=at,this.options.backtrack_lexer){if(R=this.test_match(W,st[at]),R!==!1)return R;if(this._backtrack){z=!1;continue}else return!1}else if(!this.options.flex)break}return z?(R=this.test_match(z,st[et]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var z=this.next();return z||this.lex()},begin:function(z){this.conditionStack.push(z)},popState:function(){var z=this.conditionStack.length-1;return z>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(z){return z=this.conditionStack.length-1-Math.abs(z||0),z>=0?this.conditionStack[z]:"INITIAL"},pushState:function(z){this.begin(z)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(z,W,et,st){switch(et){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return N}();A.lexer=I;function B(){this.yy={}}return B.prototype=A,A.Parser=B,new B}();Ygt.parser=Ygt;const kWe=Ygt;let yL="",Hjt=0;const Kgt=[],eK=[],xL=[],Vjt=()=>_Ot,Gjt=function(){Kgt.length=0,eK.length=0,yL="",xL.length=0,hg()},Ujt=function(i){yL=i,Kgt.push(i)},Wjt=function(){return Kgt},Yjt=function(){let i=Zjt();const a=100;let f=0;for(;!i&&ff.id===Hjt-1).events.push(i)},Qjt=function(i){const a={section:yL,type:yL,description:i,task:i,classes:[]};eK.push(a)},Zjt=function(){const i=function(f){return xL[f].processed};let a=!0;for(const[f,p]of xL.entries())i(f),a=a&&p.processed;return a},EWe=Object.freeze(Object.defineProperty({__proto__:null,addEvent:Xjt,addSection:Ujt,addTask:Kjt,addTaskOrg:Qjt,clear:Gjt,default:{clear:Gjt,getCommonDb:Vjt,addSection:Ujt,getSections:Wjt,getTasks:Yjt,addTask:Kjt,addTaskOrg:Qjt,addEvent:Xjt},getCommonDb:Vjt,getSections:Wjt,getTasks:Yjt},Symbol.toStringTag,{value:"Module"})),TWe=12,nK=function(i,a){const f=i.append("rect");return f.attr("x",a.x),f.attr("y",a.y),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("width",a.width),f.attr("height",a.height),f.attr("rx",a.rx),f.attr("ry",a.ry),a.class!==void 0&&f.attr("class",a.class),f},CWe=function(i,a){const p=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),w=i.append("g");w.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),w.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function m(_){const A=OA().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);_.append("path").attr("class","mouth").attr("d",A).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(_){const A=OA().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);_.append("path").attr("class","mouth").attr("d",A).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function E(_){_.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?m(w):a.score<3?b(w):E(w),p},_We=function(i,a){const f=i.append("circle");return f.attr("cx",a.cx),f.attr("cy",a.cy),f.attr("class","actor-"+a.pos),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("r",a.r),f.class!==void 0&&f.attr("class",f.class),a.title!==void 0&&f.append("title").text(a.title),f},Jjt=function(i,a){const f=a.text.replace(//gi," "),p=i.append("text");p.attr("x",a.x),p.attr("y",a.y),p.attr("class","legend"),p.style("text-anchor",a.anchor),a.class!==void 0&&p.attr("class",a.class);const w=p.append("tspan");return w.attr("x",a.x+a.textMargin*2),w.text(f),p},SWe=function(i,a){function f(w,m,b,E,_){return w+","+m+" "+(w+b)+","+m+" "+(w+b)+","+(m+E-_)+" "+(w+b-_*1.2)+","+(m+E)+" "+w+","+(m+E)}const p=i.append("polygon");p.attr("points",f(a.x,a.y,50,20,7)),p.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,Jjt(i,a)},AWe=function(i,a,f){const p=i.append("g"),w=Xgt();w.x=a.x,w.y=a.y,w.fill=a.fill,w.width=f.width,w.height=f.height,w.class="journey-section section-type-"+a.num,w.rx=3,w.ry=3,nK(p,w),e$t(f)(a.text,p,w.x,w.y,w.width,w.height,{class:"journey-section section-type-"+a.num},f,a.colour)};let t$t=-1;const LWe=function(i,a,f){const p=a.x+f.width/2,w=i.append("g");t$t++;const m=300+5*30;w.append("line").attr("id","task"+t$t).attr("x1",p).attr("y1",a.y).attr("x2",p).attr("y2",m).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),CWe(w,{cx:p,cy:300+(5-a.score)*30,score:a.score});const b=Xgt();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=f.width,b.height=f.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,nK(w,b),a.x+14,e$t(f)(a.task,w,b.x,b.y,b.width,b.height,{class:"task"},f,a.colour)},MWe=function(i,a){nK(i,{x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,class:"rect"}).lower()},DWe=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},Xgt=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},e$t=function(){function i(w,m,b,E,_,A,I,B){const N=m.append("text").attr("x",b+_/2).attr("y",E+A/2+5).style("font-color",B).style("text-anchor","middle").text(w);p(N,I)}function a(w,m,b,E,_,A,I,B,N){const{taskFontSize:R,taskFontFamily:z}=B,W=w.split(//gi);for(let et=0;et)/).reverse(),w,m=[],b=1.1,E=f.attr("y"),_=parseFloat(f.attr("dy")),A=f.text(null).append("tspan").attr("x",0).attr("y",E).attr("dy",_+"em");for(let I=0;Ia||w==="
")&&(m.pop(),A.text(m.join(" ").trim()),w==="
"?m=[""]:m=[w],A=f.append("tspan").attr("x",0).attr("y",E).attr("dy",b+"em").text(w))})}const OWe=function(i,a,f,p){const w=f%TWe-1,m=i.append("g");a.section=w,m.attr("class",(a.class?a.class+" ":"")+"timeline-node "+("section-"+w));const b=m.append("g"),E=m.append("g"),A=E.append("text").text(a.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(n$t,a.width).node().getBBox(),I=p.fontSize&&p.fontSize.replace?p.fontSize.replace("px",""):p.fontSize;return a.height=A.height+I*1.1*.5+a.padding,a.height=Math.max(a.height,a.maxHeight),a.width=a.width+2*a.padding,E.attr("transform","translate("+a.width/2+", "+a.padding/2+")"),FWe(b,a,w),a},PWe=function(i,a,f){const p=i.append("g"),m=p.append("text").text(a.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(n$t,a.width).node().getBBox(),b=f.fontSize&&f.fontSize.replace?f.fontSize.replace("px",""):f.fontSize;return p.remove(),m.height+b*1.1*.5+a.padding},FWe=function(i,a,f){i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+a.type).attr("d",`M0 ${a.height-5} v${-a.height+2*5} q0,-5 5,-5 h${a.width-2*5} q5,0 5,5 v${a.height-5} H0 Z`),i.append("line").attr("class","node-line-"+f).attr("x1",0).attr("y1",a.height).attr("x2",a.width).attr("y2",a.height)},DT={drawRect:nK,drawCircle:_We,drawSection:AWe,drawText:Jjt,drawLabel:SWe,drawTask:LWe,drawBackgroundRect:MWe,getTextObj:DWe,getNoteRect:Xgt,initGraphics:IWe,drawNode:OWe,getVirtualNodeHeight:PWe},NWe=function(i,a,f,p){var X,pt;const w=Oe(),m=w.leftMargin??50;Ut.debug("timeline",p.db);const b=w.securityLevel;let E;b==="sandbox"&&(E=yr("#i"+a));const A=yr(b==="sandbox"?E.nodes()[0].contentDocument.body:"body").select("#"+a);A.append("g");const I=p.db.getTasks(),B=p.db.getCommonDb().getDiagramTitle();Ut.debug("task",I),DT.initGraphics(A);const N=p.db.getSections();Ut.debug("sections",N);let R=0,z=0,W=0,et=0,st=50+m,at=50;et=50;let bt=0,mt=!0;N.forEach(function(U){const Tt={number:bt,descr:U,section:bt,width:150,padding:20,maxHeight:R},nt=DT.getVirtualNodeHeight(A,Tt,w);Ut.debug("sectionHeight before draw",nt),R=Math.max(R,nt+20)});let yt=0,ft=0;Ut.debug("tasks.length",I.length);for(const[U,Tt]of I.entries()){const nt={number:U,descr:Tt,section:Tt.section,width:150,padding:20,maxHeight:z},It=DT.getVirtualNodeHeight(A,nt,w);Ut.debug("taskHeight before draw",It),z=Math.max(z,It+20),yt=Math.max(yt,Tt.events.length);let Ot=0;for(let Bt=0;Bt0?N.forEach(U=>{const Tt=I.filter(Bt=>Bt.section===U),nt={number:bt,descr:U,section:bt,width:200*Math.max(Tt.length,1)-50,padding:20,maxHeight:R};Ut.debug("sectionNode",nt);const It=A.append("g"),Ot=DT.drawNode(It,nt,bt,w);Ut.debug("sectionNode output",Ot),It.attr("transform",`translate(${st}, ${et})`),at+=R+50,Tt.length>0&&r$t(A,Tt,bt,st,at,z,w,yt,ft,R,!1),st+=200*Math.max(Tt.length,1),at=et,bt++}):(mt=!1,r$t(A,I,bt,st,at,z,w,yt,ft,R,!0));const ut=A.node().getBBox();Ut.debug("bounds",ut),B&&A.append("text").text(B).attr("x",ut.width/2-m).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),W=mt?R+z+150:z+100,A.append("g").attr("class","lineWrapper").append("line").attr("x1",m).attr("y1",W).attr("x2",ut.width+3*m).attr("y2",W).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),fT(void 0,A,((X=w.timeline)==null?void 0:X.padding)??50,((pt=w.timeline)==null?void 0:pt.useMaxWidth)??!1)},r$t=function(i,a,f,p,w,m,b,E,_,A,I){var B;for(const N of a){const R={descr:N.task,section:f,number:f,width:150,padding:20,maxHeight:m};Ut.debug("taskNode",R);const z=i.append("g").attr("class","taskWrapper"),et=DT.drawNode(z,R,f,b).height;if(Ut.debug("taskHeight after draw",et),z.attr("transform",`translate(${p}, ${w})`),m=Math.max(m,et),N.events){const st=i.append("g").attr("class","lineWrapper");let at=m;w+=100,at=at+BWe(i,N.events,f,p,w,b),w-=100,st.append("line").attr("x1",p+190/2).attr("y1",w+m).attr("x2",p+190/2).attr("y2",w+m+(I?m:A)+_+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}p=p+200,I&&!((B=b.timeline)!=null&&B.disableMulticolor)&&f++}w=w-10},BWe=function(i,a,f,p,w,m){let b=0;const E=w;w=w+100;for(const _ of a){const A={descr:_,section:f,number:f,width:150,padding:20,maxHeight:50};Ut.debug("eventNode",A);const I=i.append("g").attr("class","eventWrapper"),N=DT.drawNode(I,A,f,m).height;b=b+N,I.attr("transform",`translate(${p}, ${w})`),w=w+10+N}return w=E,b},RWe={setConf:()=>{},draw:NWe},jWe=i=>{let a="";for(let f=0;f` - .edge { - stroke-width: 3; - } - ${jWe(i)} - .section-root rect, .section-root path, .section-root circle { - fill: ${i.git0}; - } - .section-root text { - fill: ${i.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .eventWrapper { - filter: brightness(120%); - } -`}},Symbol.toStringTag,{value:"Module"}));var Qgt=function(){var i=function(mt,yt,ft,ut){for(ft=ft||{},ut=mt.length;ut--;ft[mt[ut]]=yt);return ft},a=[1,4],f=[1,13],p=[1,12],w=[1,15],m=[1,16],b=[1,20],E=[1,19],_=[6,7,8],A=[1,26],I=[1,24],B=[1,25],N=[6,7,11],R=[1,6,13,15,16,19,22],z=[1,33],W=[1,34],et=[1,6,7,11,13,15,16,19,22],st={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(yt,ft,ut,vt,X,pt,U){var Tt=pt.length-1;switch(X){case 6:case 7:return vt;case 8:vt.getLogger().trace("Stop NL ");break;case 9:vt.getLogger().trace("Stop EOF ");break;case 11:vt.getLogger().trace("Stop NL2 ");break;case 12:vt.getLogger().trace("Stop EOF2 ");break;case 15:vt.getLogger().info("Node: ",pt[Tt].id),vt.addNode(pt[Tt-1].length,pt[Tt].id,pt[Tt].descr,pt[Tt].type);break;case 16:vt.getLogger().trace("Icon: ",pt[Tt]),vt.decorateNode({icon:pt[Tt]});break;case 17:case 21:vt.decorateNode({class:pt[Tt]});break;case 18:vt.getLogger().trace("SPACELIST");break;case 19:vt.getLogger().trace("Node: ",pt[Tt].id),vt.addNode(0,pt[Tt].id,pt[Tt].descr,pt[Tt].type);break;case 20:vt.decorateNode({icon:pt[Tt]});break;case 25:vt.getLogger().trace("node found ..",pt[Tt-2]),this.$={id:pt[Tt-1],descr:pt[Tt-1],type:vt.getType(pt[Tt-2],pt[Tt])};break;case 26:this.$={id:pt[Tt],descr:pt[Tt],type:vt.nodeType.DEFAULT};break;case 27:vt.getLogger().trace("node found ..",pt[Tt-3]),this.$={id:pt[Tt-3],descr:pt[Tt-1],type:vt.getType(pt[Tt-2],pt[Tt])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:a},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:a},{6:f,7:[1,10],9:9,12:11,13:p,14:14,15:w,16:m,17:17,18:18,19:b,22:E},i(_,[2,3]),{1:[2,2]},i(_,[2,4]),i(_,[2,5]),{1:[2,6],6:f,12:21,13:p,14:14,15:w,16:m,17:17,18:18,19:b,22:E},{6:f,9:22,12:11,13:p,14:14,15:w,16:m,17:17,18:18,19:b,22:E},{6:A,7:I,10:23,11:B},i(N,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:b,22:E}),i(N,[2,18]),i(N,[2,19]),i(N,[2,20]),i(N,[2,21]),i(N,[2,23]),i(N,[2,24]),i(N,[2,26],{19:[1,30]}),{20:[1,31]},{6:A,7:I,10:32,11:B},{1:[2,7],6:f,12:21,13:p,14:14,15:w,16:m,17:17,18:18,19:b,22:E},i(R,[2,14],{7:z,11:W}),i(et,[2,8]),i(et,[2,9]),i(et,[2,10]),i(N,[2,15]),i(N,[2,16]),i(N,[2,17]),{20:[1,35]},{21:[1,36]},i(R,[2,13],{7:z,11:W}),i(et,[2,11]),i(et,[2,12]),{21:[1,37]},i(N,[2,25]),i(N,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(yt,ft){if(ft.recoverable)this.trace(yt);else{var ut=new Error(yt);throw ut.hash=ft,ut}},parse:function(yt){var ft=this,ut=[0],vt=[],X=[null],pt=[],U=this.table,Tt="",nt=0,It=0,Ot=2,Bt=1,Et=pt.slice.call(arguments,1),Z=Object.create(this.lexer),Ct={yy:{}};for(var xt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xt)&&(Ct.yy[xt]=this.yy[xt]);Z.setInput(yt,Ct.yy),Ct.yy.lexer=Z,Ct.yy.parser=this,typeof Z.yylloc>"u"&&(Z.yylloc={});var Ht=Z.yylloc;pt.push(Ht);var Le=Z.options&&Z.options.ranges;typeof Ct.yy.parseError=="function"?this.parseError=Ct.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ft(){var Pe;return Pe=vt.pop()||Z.lex()||Bt,typeof Pe!="number"&&(Pe instanceof Array&&(vt=Pe,Pe=vt.pop()),Pe=ft.symbols_[Pe]||Pe),Pe}for(var gn,Se,me,Ve,Ye={},ce,ke,zt,re;;){if(Se=ut[ut.length-1],this.defaultActions[Se]?me=this.defaultActions[Se]:((gn===null||typeof gn>"u")&&(gn=Ft()),me=U[Se]&&U[Se][gn]),typeof me>"u"||!me.length||!me[0]){var se="";re=[];for(ce in U[Se])this.terminals_[ce]&&ce>Ot&&re.push("'"+this.terminals_[ce]+"'");Z.showPosition?se="Parse error on line "+(nt+1)+`: -`+Z.showPosition()+` -Expecting `+re.join(", ")+", got '"+(this.terminals_[gn]||gn)+"'":se="Parse error on line "+(nt+1)+": Unexpected "+(gn==Bt?"end of input":"'"+(this.terminals_[gn]||gn)+"'"),this.parseError(se,{text:Z.match,token:this.terminals_[gn]||gn,line:Z.yylineno,loc:Ht,expected:re})}if(me[0]instanceof Array&&me.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Se+", token: "+gn);switch(me[0]){case 1:ut.push(gn),X.push(Z.yytext),pt.push(Z.yylloc),ut.push(me[1]),gn=null,It=Z.yyleng,Tt=Z.yytext,nt=Z.yylineno,Ht=Z.yylloc;break;case 2:if(ke=this.productions_[me[1]][1],Ye.$=X[X.length-ke],Ye._$={first_line:pt[pt.length-(ke||1)].first_line,last_line:pt[pt.length-1].last_line,first_column:pt[pt.length-(ke||1)].first_column,last_column:pt[pt.length-1].last_column},Le&&(Ye._$.range=[pt[pt.length-(ke||1)].range[0],pt[pt.length-1].range[1]]),Ve=this.performAction.apply(Ye,[Tt,It,nt,Ct.yy,me[1],X,pt].concat(Et)),typeof Ve<"u")return Ve;ke&&(ut=ut.slice(0,-1*ke*2),X=X.slice(0,-1*ke),pt=pt.slice(0,-1*ke)),ut.push(this.productions_[me[1]][0]),X.push(Ye.$),pt.push(Ye._$),zt=U[ut[ut.length-2]][ut[ut.length-1]],ut.push(zt);break;case 3:return!0}}return!0}},at=function(){var mt={EOF:1,parseError:function(ft,ut){if(this.yy.parser)this.yy.parser.parseError(ft,ut);else throw new Error(ft)},setInput:function(yt,ft){return this.yy=ft||this.yy||{},this._input=yt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var yt=this._input[0];this.yytext+=yt,this.yyleng++,this.offset++,this.match+=yt,this.matched+=yt;var ft=yt.match(/(?:\r\n?|\n).*/g);return ft?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),yt},unput:function(yt){var ft=yt.length,ut=yt.split(/(?:\r\n?|\n)/g);this._input=yt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ft),this.offset-=ft;var vt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ut.length-1&&(this.yylineno-=ut.length-1);var X=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ut?(ut.length===vt.length?this.yylloc.first_column:0)+vt[vt.length-ut.length].length-ut[0].length:this.yylloc.first_column-ft},this.options.ranges&&(this.yylloc.range=[X[0],X[0]+this.yyleng-ft]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(yt){this.unput(this.match.slice(yt))},pastInput:function(){var yt=this.matched.substr(0,this.matched.length-this.match.length);return(yt.length>20?"...":"")+yt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var yt=this.match;return yt.length<20&&(yt+=this._input.substr(0,20-yt.length)),(yt.substr(0,20)+(yt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var yt=this.pastInput(),ft=new Array(yt.length+1).join("-");return yt+this.upcomingInput()+` -`+ft+"^"},test_match:function(yt,ft){var ut,vt,X;if(this.options.backtrack_lexer&&(X={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(X.yylloc.range=this.yylloc.range.slice(0))),vt=yt[0].match(/(?:\r\n?|\n).*/g),vt&&(this.yylineno+=vt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:vt?vt[vt.length-1].length-vt[vt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+yt[0].length},this.yytext+=yt[0],this.match+=yt[0],this.matches=yt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(yt[0].length),this.matched+=yt[0],ut=this.performAction.call(this,this.yy,this,ft,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ut)return ut;if(this._backtrack){for(var pt in X)this[pt]=X[pt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var yt,ft,ut,vt;this._more||(this.yytext="",this.match="");for(var X=this._currentRules(),pt=0;ptft[0].length)){if(ft=ut,vt=pt,this.options.backtrack_lexer){if(yt=this.test_match(ut,X[pt]),yt!==!1)return yt;if(this._backtrack){ft=!1;continue}else return!1}else if(!this.options.flex)break}return ft?(yt=this.test_match(ft,X[vt]),yt!==!1?yt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ft=this.next();return ft||this.lex()},begin:function(ft){this.conditionStack.push(ft)},popState:function(){var ft=this.conditionStack.length-1;return ft>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ft){return ft=this.conditionStack.length-1-Math.abs(ft||0),ft>=0?this.conditionStack[ft]:"INITIAL"},pushState:function(ft){this.begin(ft)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ft,ut,vt,X){switch(vt){case 0:return ft.getLogger().trace("Found comment",ut.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:ft.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return ft.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:ft.getLogger().trace("end icon"),this.popState();break;case 10:return ft.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return ft.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return ft.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return ft.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:ft.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return ft.getLogger().trace("description:",ut.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),ft.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),ft.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),ft.getLogger().trace("node end ...",ut.yytext),"NODE_DEND";case 30:return this.popState(),ft.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),ft.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),ft.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),ft.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),ft.getLogger().trace("node end (("),"NODE_DEND";case 35:return ft.getLogger().trace("Long description:",ut.yytext),20;case 36:return ft.getLogger().trace("Long description:",ut.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return mt}();st.lexer=at;function bt(){this.yy={}}return bt.prototype=st,st.Parser=bt,new bt}();Qgt.parser=Qgt;const zWe=Qgt,rN=i=>Q1(i,Oe());let cw=[],i$t=0,Zgt={};const qWe=()=>{cw=[],i$t=0,Zgt={}},HWe=function(i){for(let a=cw.length-1;a>=0;a--)if(cw[a].levelcw.length>0?cw[0]:null,GWe=(i,a,f,p)=>{Ut.info("addNode",i,a,f,p);const w=Oe(),m={id:i$t++,nodeId:rN(a),level:i,descr:rN(f),type:p,children:[],width:Oe().mindmap.maxNodeWidth};switch(m.type){case Uu.ROUNDED_RECT:m.padding=2*w.mindmap.padding;break;case Uu.RECT:m.padding=2*w.mindmap.padding;break;case Uu.HEXAGON:m.padding=2*w.mindmap.padding;break;default:m.padding=w.mindmap.padding}const b=HWe(i);if(b)b.children.push(m),cw.push(m);else if(cw.length===0)cw.push(m);else{let E=new Error('There can be only one root. No parent could be found for ("'+m.descr+'")');throw E.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},E}},Uu={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},UWe=(i,a)=>{switch(Ut.debug("In get type",i,a),i){case"[":return Uu.RECT;case"(":return a===")"?Uu.ROUNDED_RECT:Uu.CLOUD;case"((":return Uu.CIRCLE;case")":return Uu.CLOUD;case"))":return Uu.BANG;case"{{":return Uu.HEXAGON;default:return Uu.DEFAULT}},s$t=(i,a)=>{Zgt[i]=a},WWe=i=>{const a=cw[cw.length-1];i&&i.icon&&(a.icon=rN(i.icon)),i&&i.class&&(a.class=rN(i.class))},IT=i=>{switch(i){case Uu.DEFAULT:return"no-border";case Uu.RECT:return"rect";case Uu.ROUNDED_RECT:return"rounded-rect";case Uu.CIRCLE:return"circle";case Uu.CLOUD:return"cloud";case Uu.BANG:return"bang";case Uu.HEXAGON:return"hexgon";default:return"no-border"}};let a$t;const YWe=i=>{a$t=i},KWe=()=>Ut,XWe=i=>cw[i],Jgt=i=>Zgt[i],QWe=Object.freeze(Object.defineProperty({__proto__:null,addNode:GWe,clear:qWe,decorateNode:WWe,getElementById:Jgt,getLogger:KWe,getMindmap:VWe,getNodeById:XWe,getType:UWe,nodeType:Uu,get parseError(){return a$t},sanitizeText:rN,setElementForId:s$t,setErrorHandler:YWe,type2Str:IT},Symbol.toStringTag,{value:"Module"})),o$t=12,ZWe=function(i,a,f){i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+IT(a.type)).attr("d",`M0 ${a.height-5} v${-a.height+2*5} q0,-5 5,-5 h${a.width-2*5} q5,0 5,5 v${a.height-5} H0 Z`),i.append("line").attr("class","node-line-"+f).attr("x1",0).attr("y1",a.height).attr("x2",a.width).attr("y2",a.height)},JWe=function(i,a){i.append("rect").attr("id","node-"+a.id).attr("class","node-bkg node-"+IT(a.type)).attr("height",a.height).attr("width",a.width)},tYe=function(i,a){const f=a.width,p=a.height,w=.15*f,m=.25*f,b=.35*f,E=.2*f;i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+IT(a.type)).attr("d",`M0 0 a${w},${w} 0 0,1 ${f*.25},${-1*f*.1} - a${b},${b} 1 0,1 ${f*.4},${-1*f*.1} - a${m},${m} 1 0,1 ${f*.35},${1*f*.2} - - a${w},${w} 1 0,1 ${f*.15},${1*p*.35} - a${E},${E} 1 0,1 ${-1*f*.15},${1*p*.65} - - a${m},${w} 1 0,1 ${-1*f*.25},${f*.15} - a${b},${b} 1 0,1 ${-1*f*.5},0 - a${w},${w} 1 0,1 ${-1*f*.25},${-1*f*.15} - - a${w},${w} 1 0,1 ${-1*f*.1},${-1*p*.35} - a${E},${E} 1 0,1 ${f*.1},${-1*p*.65} - - H0 V0 Z`)},eYe=function(i,a){const f=a.width,p=a.height,w=.15*f;i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+IT(a.type)).attr("d",`M0 0 a${w},${w} 1 0,0 ${f*.25},${-1*p*.1} - a${w},${w} 1 0,0 ${f*.25},0 - a${w},${w} 1 0,0 ${f*.25},0 - a${w},${w} 1 0,0 ${f*.25},${1*p*.1} - - a${w},${w} 1 0,0 ${f*.15},${1*p*.33} - a${w*.8},${w*.8} 1 0,0 0,${1*p*.34} - a${w},${w} 1 0,0 ${-1*f*.15},${1*p*.33} - - a${w},${w} 1 0,0 ${-1*f*.25},${p*.15} - a${w},${w} 1 0,0 ${-1*f*.25},0 - a${w},${w} 1 0,0 ${-1*f*.25},0 - a${w},${w} 1 0,0 ${-1*f*.25},${-1*p*.15} - - a${w},${w} 1 0,0 ${-1*f*.1},${-1*p*.33} - a${w*.8},${w*.8} 1 0,0 0,${-1*p*.34} - a${w},${w} 1 0,0 ${f*.1},${-1*p*.33} - - H0 V0 Z`)},nYe=function(i,a){i.append("circle").attr("id","node-"+a.id).attr("class","node-bkg node-"+IT(a.type)).attr("r",a.width/2)};function rYe(i,a,f,p,w){return i.insert("polygon",":first-child").attr("points",p.map(function(m){return m.x+","+m.y}).join(" ")).attr("transform","translate("+(w.width-a)/2+", "+f+")")}const iYe=function(i,a){const f=a.height,w=f/4,m=a.width-a.padding+2*w,b=[{x:w,y:0},{x:m-w,y:0},{x:m,y:-f/2},{x:m-w,y:-f},{x:w,y:-f},{x:0,y:-f/2}];rYe(i,m,f,b,a)},sYe=function(i,a){i.append("rect").attr("id","node-"+a.id).attr("class","node-bkg node-"+IT(a.type)).attr("height",a.height).attr("rx",a.padding).attr("ry",a.padding).attr("width",a.width)},c$t={drawNode:function(i,a,f,p){const w=p.htmlLabels,m=f%(o$t-1),b=i.append("g");a.section=m;let E="section-"+m;m<0&&(E+=" section-root"),b.attr("class",(a.class?a.class+" ":"")+"mindmap-node "+E);const _=b.append("g"),A=b.append("g"),I=a.descr.replace(/()/g,` -`);EY(A,I,{useHtmlLabels:w,width:a.width,classes:"mindmap-node-label"}),w||A.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const B=A.node().getBBox(),N=p.fontSize.replace?p.fontSize.replace("px",""):p.fontSize;if(a.height=B.height+N*1.1*.5+a.padding,a.width=B.width+2*a.padding,a.icon)if(a.type===Uu.CIRCLE)a.height+=50,a.width+=50,b.append("foreignObject").attr("height","50px").attr("width",a.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+m+" "+a.icon),A.attr("transform","translate("+a.width/2+", "+(a.height/2-1.5*a.padding)+")");else{a.width+=50;const R=a.height;a.height=Math.max(R,60);const z=Math.abs(a.height-R);b.append("foreignObject").attr("width","60px").attr("height",a.height).attr("style","text-align: center;margin-top:"+z/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+m+" "+a.icon),A.attr("transform","translate("+(25+a.width/2)+", "+(z/2+a.padding/2)+")")}else if(w){const R=(a.width-B.width)/2,z=(a.height-B.height)/2;A.attr("transform","translate("+R+", "+z+")")}else{const R=a.width/2,z=a.padding/2;A.attr("transform","translate("+R+", "+z+")")}switch(a.type){case Uu.DEFAULT:ZWe(_,a,m);break;case Uu.ROUNDED_RECT:sYe(_,a);break;case Uu.RECT:JWe(_,a);break;case Uu.CIRCLE:_.attr("transform","translate("+a.width/2+", "+ +a.height/2+")"),nYe(_,a);break;case Uu.CLOUD:tYe(_,a);break;case Uu.BANG:eYe(_,a);break;case Uu.HEXAGON:iYe(_,a);break}return s$t(a.id,b),a.height},positionNode:function(i){const a=Jgt(i.id),f=i.x||0,p=i.y||0;a.attr("transform","translate("+f+","+p+")")},drawEdge:function(a,f,p,w,m){const b=m%(o$t-1),E=p.x+p.width/2,_=p.y+p.height/2,A=f.x+f.width/2,I=f.y+f.height/2,B=A>E?E+Math.abs(E-A)/2:E-Math.abs(E-A)/2,N=I>_?_+Math.abs(_-I)/2:_-Math.abs(_-I)/2,R=A>E?Math.abs(E-B)/2+E:-Math.abs(E-B)/2+E,z=I>_?Math.abs(_-N)/2+_:-Math.abs(_-N)/2+_;a.append("path").attr("d",p.direction==="TB"||p.direction==="BT"?`M${E},${_} Q${E},${z} ${B},${N} T${A},${I}`:`M${E},${_} Q${R},${_} ${B},${N} T${A},${I}`).attr("class","edge section-edge-"+b+" edge-depth-"+w)}};var u$t={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(b0,function(){function f(y){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},f(y)}function p(y,g){if(!(y instanceof g))throw new TypeError("Cannot call a class as a function")}function w(y,g){for(var x=0;xy.length)&&(g=y.length);for(var x=0,T=new Array(g);x"u"?null:window,z=R?R.navigator:null;R&&R.document;var W=f(""),et=f({}),st=f(function(){}),at=typeof HTMLElement>"u"?"undefined":f(HTMLElement),bt=function(g){return g&&g.instanceString&&yt(g.instanceString)?g.instanceString():null},mt=function(g){return g!=null&&f(g)==W},yt=function(g){return g!=null&&f(g)===st},ft=function(g){return!Tt(g)&&(Array.isArray?Array.isArray(g):g!=null&&g instanceof Array)},ut=function(g){return g!=null&&f(g)===et&&!ft(g)&&g.constructor===Object},vt=function(g){return g!=null&&f(g)===et},X=function(g){return g!=null&&f(g)===f(1)&&!isNaN(g)},pt=function(g){return X(g)&&Math.floor(g)===g},U=function(g){if(at!=="undefined")return g!=null&&g instanceof HTMLElement},Tt=function(g){return nt(g)||It(g)},nt=function(g){return bt(g)==="collection"&&g._private.single},It=function(g){return bt(g)==="collection"&&!g._private.single},Ot=function(g){return bt(g)==="core"},Bt=function(g){return bt(g)==="stylesheet"},Et=function(g){return bt(g)==="event"},Z=function(g){return g==null?!0:!!(g===""||g.match(/^\s+$/))},Ct=function(g){return typeof HTMLElement>"u"?!1:g instanceof HTMLElement},xt=function(g){return ut(g)&&X(g.x1)&&X(g.x2)&&X(g.y1)&&X(g.y2)},Ht=function(g){return vt(g)&&yt(g.then)},Le=function(){return z&&z.userAgent.match(/msie|trident|edge/i)},Ft=function(g,x){x||(x=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var O=[],P=0;Px?1:0},Me=function(g,x){return-1*te(g,x)},de=Object.assign!=null?Object.assign.bind(Object):function(y){for(var g=arguments,x=1;x1&&(Lt-=1),Lt<1/6?ht+(dt-ht)*6*Lt:Lt<1/2?dt:Lt<2/3?ht+(dt-ht)*(2/3-Lt)*6:ht}var Y=new RegExp("^"+zt+"$").exec(g);if(Y){if(T=parseInt(Y[1]),T<0?T=(360- -1*T%360)%360:T>360&&(T=T%360),T/=360,L=parseFloat(Y[2]),L<0||L>100||(L=L/100,O=parseFloat(Y[3]),O<0||O>100)||(O=O/100,P=Y[4],P!==void 0&&(P=parseFloat(P),P<0||P>1)))return;if(L===0)$=q=S=Math.round(O*255);else{var rt=O<.5?O*(1+L):O+L-O*L,ot=2*O-rt;$=Math.round(255*V(ot,rt,T+1/3)),q=Math.round(255*V(ot,rt,T)),S=Math.round(255*V(ot,rt,T-1/3))}x=[$,q,S,P]}return x},Ks=function(g){var x,T=new RegExp("^"+ce+"$").exec(g);if(T){x=[];for(var L=[],O=1;O<=3;O++){var P=T[O];if(P[P.length-1]==="%"&&(L[O]=!0),P=parseFloat(P),L[O]&&(P=P/100*255),P<0||P>255)return;x.push(Math.floor(P))}var $=L[1]||L[2]||L[3],q=L[1]&&L[2]&&L[3];if($&&!q)return;var S=T[4];if(S!==void 0){if(S=parseFloat(S),S<0||S>1)return;x.push(S)}}return x},ws=function(g){return Xi[g.toLowerCase()]},fo=function(g){return(ft(g)?g:null)||ws(g)||on(g)||Ks(g)||ni(g)},Xi={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Er=function(g){for(var x=g.map,T=g.keys,L=T.length,O=0;O=g||qt<0||Y&&ne>=O}function kt(){var Yt=Po();if(Lt(Yt))return Dt(Yt);$=setTimeout(kt,dt(Yt))}function Dt(Yt){return $=void 0,rt&&T?ot(Yt):(T=L=void 0,P)}function Pt(){$!==void 0&&clearTimeout($),S=0,T=q=L=$=void 0}function $t(){return $===void 0?P:Dt(Po())}function Zt(){var Yt=Po(),qt=Lt(Yt);if(T=arguments,L=this,q=Yt,qt){if($===void 0)return ht(q);if(Y)return clearTimeout($),$=setTimeout(kt,g),ot(q)}return $===void 0&&($=setTimeout(kt,g)),P}return Zt.cancel=Pt,Zt.flush=$t,Zt}var Yc=xi,Ce=R?R.performance:null,vp=Ce&&Ce.now?function(){return Ce.now()}:function(){return Date.now()},Be=function(){if(R){if(R.requestAnimationFrame)return function(y){R.requestAnimationFrame(y)};if(R.mozRequestAnimationFrame)return function(y){R.mozRequestAnimationFrame(y)};if(R.webkitRequestAnimationFrame)return function(y){R.webkitRequestAnimationFrame(y)};if(R.msRequestAnimationFrame)return function(y){R.msRequestAnimationFrame(y)}}return function(y){y&&setTimeout(function(){y(vp())},1e3/60)}}(),Bf=function(g){return Be(g)},yg=vp,bm=9261,Ek=65599,E3=5381,Il=function(g){for(var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bm,T=x,L;L=g.next(),!L.done;)T=T*Ek+L.value|0;return T},L0=function(g){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bm;return x*Ek+g|0},hw=function(g){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:E3;return(x<<5)+x+g|0},H5=function(g,x){return g*2097152+x},Hb=function(g){return g[0]*2097152+g[1]},V5=function(g,x){return[L0(g[0],x[0]),hw(g[1],x[1])]},f1=function(g,x){var T={value:0,done:!1},L=0,O=g.length,P={next:function(){return L=0&&!(g[L]===x&&(g.splice(L,1),T));L--);},TL=function(g){g.splice(0,g.length)},aN=function(g,x){for(var T=0;T"u"?"undefined":f(Set))!==fK?Set:dK,FT=function(g,x){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(g===void 0||x===void 0||!Ot(g)){vl("An element must have a core reference and parameters set");return}var L=x.group;if(L==null&&(x.data&&x.data.source!=null&&x.data.target!=null?L="edges":L="nodes"),L!=="nodes"&&L!=="edges"){vl("An element must be of type `nodes` or `edges`; you specified `"+L+"`");return}this.length=1,this[0]=this;var O=this._private={cy:g,single:!0,data:x.data||{},position:x.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:L,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!x.selected,selectable:x.selectable===void 0?!0:!!x.selectable,locked:!!x.locked,grabbed:!1,grabbable:x.grabbable===void 0?!0:!!x.grabbable,pannable:x.pannable===void 0?L==="edges":!!x.pannable,active:!1,classes:new Y5,animation:{current:[],queue:[]},rscratch:{},scratch:x.scratch||{},edges:[],children:[],parent:x.parent&&x.parent.isNode()?x.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(O.position.x==null&&(O.position.x=0),O.position.y==null&&(O.position.y=0),x.renderedPosition){var P=x.renderedPosition,$=g.pan(),q=g.zoom();O.position={x:(P.x-$.x)/q,y:(P.y-$.y)/q}}var S=[];ft(x.classes)?S=x.classes:mt(x.classes)&&(S=x.classes.split(/\s+/));for(var V=0,Y=S.length;VDt?1:0},V=function(kt,Dt,Pt,$t,Zt){var Yt;if(Pt==null&&(Pt=0),Zt==null&&(Zt=T),Pt<0)throw new Error("lo must be non-negative");for($t==null&&($t=kt.length);Pt<$t;)Yt=L((Pt+$t)/2),Zt(Dt,kt[Yt])<0?$t=Yt:Pt=Yt+1;return[].splice.apply(kt,[Pt,Pt-Pt].concat(Dt)),Dt},$=function(kt,Dt,Pt){return Pt==null&&(Pt=T),kt.push(Dt),dt(kt,0,kt.length-1,Pt)},P=function(kt,Dt){var Pt,$t;return Dt==null&&(Dt=T),Pt=kt.pop(),kt.length?($t=kt[0],kt[0]=Pt,Lt(kt,0,Dt)):$t=Pt,$t},S=function(kt,Dt,Pt){var $t;return Pt==null&&(Pt=T),$t=kt[0],kt[0]=Dt,Lt(kt,0,Pt),$t},q=function(kt,Dt,Pt){var $t;return Pt==null&&(Pt=T),kt.length&&Pt(kt[0],Dt)<0&&($t=[kt[0],Dt],Dt=$t[0],kt[0]=$t[1],Lt(kt,0,Pt)),Dt},O=function(kt,Dt){var Pt,$t,Zt,Yt,qt,ne;for(Dt==null&&(Dt=T),Yt=(function(){ne=[];for(var Gt=0,ge=L(kt.length/2);0<=ge?Gtge;0<=ge?Gt++:Gt--)ne.push(Gt);return ne}).apply(this).reverse(),qt=[],$t=0,Zt=Yt.length;$tbe;0<=be?++ne:--ne)ie.push(P(kt,Pt));return ie},dt=function(kt,Dt,Pt,$t){var Zt,Yt,qt;for($t==null&&($t=T),Zt=kt[Pt];Pt>Dt;){if(qt=Pt-1>>1,Yt=kt[qt],$t(Zt,Yt)<0){kt[Pt]=Yt,Pt=qt;continue}break}return kt[Pt]=Zt},Lt=function(kt,Dt,Pt){var $t,Zt,Yt,qt,ne;for(Pt==null&&(Pt=T),Zt=kt.length,ne=Dt,Yt=kt[Dt],$t=2*Dt+1;$t0;){var Yt=Dt.pop(),qt=Lt(Yt),ne=Yt.id();if(rt[ne]=qt,qt!==1/0)for(var Gt=Yt.neighborhood().intersect(ht),ge=0;ge0)for(En.unshift(Ge);Y[Yn];){var Sn=Y[Yn];En.unshift(Sn.edge),En.unshift(Sn.node),In=Sn.node,Yn=In.id()}return $.spawn(En)}}}},wK={kruskal:function(g){g=g||function(Pt){return 1};for(var x=this.byGroup(),T=x.nodes,L=x.edges,O=T.length,P=new Array(O),$=T,q=function($t){for(var Zt=0;Zt0;){if(Zt(),qt++,$t===V){for(var ne=[],Gt=O,ge=V,be=kt[ge];ne.unshift(Gt),be!=null&&ne.unshift(be),Gt=Lt[ge],Gt!=null;)ge=Gt.id(),be=kt[ge];return{found:!0,distance:Y[$t],path:this.spawn(ne),steps:qt}}ot[$t]=!0;for(var ie=Pt._private.edges,Fe=0;Febe&&(ht[ge]=be,Dt[ge]=Gt,Pt[ge]=Zt),!O){var ie=Gt*V+ne;!O&&ht[ie]>be&&(ht[ie]=be,Dt[ie]=ne,Pt[ie]=Zt)}}}for(var Fe=0;Fe1&&arguments[1]!==void 0?arguments[1]:P,Va=Pt(Si),Qs=[],qs=Va;;){if(qs==null)return x.spawn();var Tr=Dt(qs),Qt=Tr.edge,jn=Tr.pred;if(Qs.unshift(qs[0]),qs.same(Ui)&&Qs.length>0)break;Qt!=null&&Qs.unshift(Qt),qs=jn}return q.spawn(Qs)},Yt=0;Yt=0;V--){var Y=S[V],rt=Y[1],ot=Y[2];(x[rt]===$&&x[ot]===q||x[rt]===q&&x[ot]===$)&&S.splice(V,1)}for(var ht=0;htL;){var O=Math.floor(Math.random()*x.length);x=CK(O,g,x),T--}return x},_K={kargerStein:function(){var g=this,x=this.byGroup(),T=x.nodes,L=x.edges;L.unmergeBy(function(En){return En.isLoop()});var O=T.length,P=L.length,$=Math.ceil(Math.pow(Math.log(O)/Math.LN2,2)),q=Math.floor(O/TK);if(O<2){vl("At least 2 nodes are required for Karger-Stein algorithm");return}for(var S=[],V=0;V1&&arguments[1]!==void 0?arguments[1]:0,T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g.length,L=1/0,O=x;O1&&arguments[1]!==void 0?arguments[1]:0,T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g.length,L=-1/0,O=x;O1&&arguments[1]!==void 0?arguments[1]:0,T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g.length,L=0,O=0,P=x;P1&&arguments[1]!==void 0?arguments[1]:0,T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g.length,L=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,O=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,P=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;L?g=g.slice(x,T):(T0&&g.splice(0,x));for(var $=0,q=g.length-1;q>=0;q--){var S=g[q];P?isFinite(S)||(g[q]=-1/0,$++):g.splice(q,1)}O&&g.sort(function(rt,ot){return rt-ot});var V=g.length,Y=Math.floor(V/2);return V%2!==0?g[Y+1+$]:(g[Y-1+$]+g[Y+$])/2},IK=function(g){return Math.PI*g/180},BT=function(g,x){return Math.atan2(x,g)-Math.PI/2},_L=Math.log2||function(y){return Math.log(y)/Math.log(2)},uN=function(g){return g>0?1:g<0?-1:0},C3=function(g,x){return Math.sqrt(_3(g,x))},_3=function(g,x){var T=x.x-g.x,L=x.y-g.y;return T*T+L*L},OK=function(g){for(var x=g.length,T=0,L=0;L=g.x1&&g.y2>=g.y1)return{x1:g.x1,y1:g.y1,x2:g.x2,y2:g.y2,w:g.x2-g.x1,h:g.y2-g.y1};if(g.w!=null&&g.h!=null&&g.w>=0&&g.h>=0)return{x1:g.x1,y1:g.y1,x2:g.x1+g.w,y2:g.y1+g.h,w:g.w,h:g.h}}},FK=function(g){return{x1:g.x1,x2:g.x2,w:g.w,y1:g.y1,y2:g.y2,h:g.h}},NK=function(g){g.x1=1/0,g.y1=1/0,g.x2=-1/0,g.y2=-1/0,g.w=0,g.h=0},BK=function(g,x){g.x1=Math.min(g.x1,x.x1),g.x2=Math.max(g.x2,x.x2),g.w=g.x2-g.x1,g.y1=Math.min(g.y1,x.y1),g.y2=Math.max(g.y2,x.y2),g.h=g.y2-g.y1},RK=function(g,x,T){g.x1=Math.min(g.x1,x),g.x2=Math.max(g.x2,x),g.w=g.x2-g.x1,g.y1=Math.min(g.y1,T),g.y2=Math.max(g.y2,T),g.h=g.y2-g.y1},RT=function(g){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return g.x1-=x,g.x2+=x,g.y1-=x,g.y2+=x,g.w=g.x2-g.x1,g.h=g.y2-g.y1,g},SL=function(g){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],T,L,O,P;if(x.length===1)T=L=O=P=x[0];else if(x.length===2)T=O=x[0],P=L=x[1];else if(x.length===4){var $=E(x,4);T=$[0],L=$[1],O=$[2],P=$[3]}return g.x1-=P,g.x2+=L,g.y1-=T,g.y2+=O,g.w=g.x2-g.x1,g.h=g.y2-g.y1,g},lN=function(g,x){g.x1=x.x1,g.y1=x.y1,g.x2=x.x2,g.y2=x.y2,g.w=g.x2-g.x1,g.h=g.y2-g.y1},AL=function(g,x){return!(g.x1>x.x2||x.x1>g.x2||g.x2x.y2||x.y1>g.y2)},Q5=function(g,x,T){return g.x1<=x&&x<=g.x2&&g.y1<=T&&T<=g.y2},jK=function(g,x){return Q5(g,x.x,x.y)},hN=function(g,x){return Q5(g,x.x1,x.y1)&&Q5(g,x.x2,x.y2)},fN=function(g,x,T,L,O,P,$){var q=Lk(O,P),S=O/2,V=P/2,Y;{var rt=T-S+q-$,ot=L-V-$,ht=T+S-q+$,dt=ot;if(Y=ym(g,x,T,L,rt,ot,ht,dt,!1),Y.length>0)return Y}{var Lt=T+S+$,kt=L-V+q-$,Dt=Lt,Pt=L+V-q+$;if(Y=ym(g,x,T,L,Lt,kt,Dt,Pt,!1),Y.length>0)return Y}{var $t=T-S+q-$,Zt=L+V+$,Yt=T+S-q+$,qt=Zt;if(Y=ym(g,x,T,L,$t,Zt,Yt,qt,!1),Y.length>0)return Y}{var ne=T-S-$,Gt=L-V+q-$,ge=ne,be=L+V-q+$;if(Y=ym(g,x,T,L,ne,Gt,ge,be,!1),Y.length>0)return Y}var ie;{var Fe=T-S+q,we=L-V+q;if(ie=Sk(g,x,T,L,Fe,we,q+$),ie.length>0&&ie[0]<=Fe&&ie[1]<=we)return[ie[0],ie[1]]}{var bn=T+S-q,ze=L-V+q;if(ie=Sk(g,x,T,L,bn,ze,q+$),ie.length>0&&ie[0]>=bn&&ie[1]<=ze)return[ie[0],ie[1]]}{var Ge=T+S-q,En=L+V-q;if(ie=Sk(g,x,T,L,Ge,En,q+$),ie.length>0&&ie[0]>=Ge&&ie[1]>=En)return[ie[0],ie[1]]}{var In=T-S+q,Yn=L+V-q;if(ie=Sk(g,x,T,L,In,Yn,q+$),ie.length>0&&ie[0]<=In&&ie[1]>=Yn)return[ie[0],ie[1]]}return[]},$K=function(g,x,T,L,O,P,$){var q=$,S=Math.min(T,O),V=Math.max(T,O),Y=Math.min(L,P),rt=Math.max(L,P);return S-q<=g&&g<=V+q&&Y-q<=x&&x<=rt+q},zK=function(g,x,T,L,O,P,$,q,S){var V={x1:Math.min(T,$,O)-S,x2:Math.max(T,$,O)+S,y1:Math.min(L,q,P)-S,y2:Math.max(L,q,P)+S};return!(gV.x2||xV.y2)},qK=function(g,x,T,L){T-=L;var O=x*x-4*g*T;if(O<0)return[];var P=Math.sqrt(O),$=2*g,q=(-x+P)/$,S=(-x-P)/$;return[q,S]},HK=function(g,x,T,L,O){var P=1e-5;g===0&&(g=P),x/=g,T/=g,L/=g;var $,q,S,V,Y,rt,ot,ht;if(q=(3*T-x*x)/9,S=-(27*L)+x*(9*T-2*(x*x)),S/=54,$=q*q*q+S*S,O[1]=0,ot=x/3,$>0){Y=S+Math.sqrt($),Y=Y<0?-Math.pow(-Y,1/3):Math.pow(Y,1/3),rt=S-Math.sqrt($),rt=rt<0?-Math.pow(-rt,1/3):Math.pow(rt,1/3),O[0]=-ot+Y+rt,ot+=(Y+rt)/2,O[4]=O[2]=-ot,ot=Math.sqrt(3)*(-rt+Y)/2,O[3]=ot,O[5]=-ot;return}if(O[5]=O[3]=0,$===0){ht=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),O[0]=-ot+2*ht,O[4]=O[2]=-(ht+ot);return}q=-q,V=q*q*q,V=Math.acos(S/Math.sqrt(V)),ht=2*Math.sqrt(q),O[0]=-ot+ht*Math.cos(V/3),O[2]=-ot+ht*Math.cos((V+2*Math.PI)/3),O[4]=-ot+ht*Math.cos((V+4*Math.PI)/3)},VK=function(g,x,T,L,O,P,$,q){var S=1*T*T-4*T*O+2*T*$+4*O*O-4*O*$+$*$+L*L-4*L*P+2*L*q+4*P*P-4*P*q+q*q,V=1*9*T*O-3*T*T-3*T*$-6*O*O+3*O*$+9*L*P-3*L*L-3*L*q-6*P*P+3*P*q,Y=1*3*T*T-6*T*O+T*$-T*g+2*O*O+2*O*g-$*g+3*L*L-6*L*P+L*q-L*x+2*P*P+2*P*x-q*x,rt=1*T*O-T*T+T*g-O*g+L*P-L*L+L*x-P*x,ot=[];HK(S,V,Y,rt,ot);for(var ht=1e-7,dt=[],Lt=0;Lt<6;Lt+=2)Math.abs(ot[Lt+1])=0&&ot[Lt]<=1&&dt.push(ot[Lt]);dt.push(1),dt.push(0);for(var kt=-1,Dt,Pt,$t,Zt=0;Zt=0?$tS?(g-O)*(g-O)+(x-P)*(x-P):V-rt},qd=function(g,x,T){for(var L,O,P,$,q,S=0,V=0;V=g&&g>=P||L<=g&&g<=P)q=(g-L)/(P-L)*($-O)+O,q>x&&S++;else continue;return S%2!==0},dw=function(g,x,T,L,O,P,$,q,S){var V=new Array(T.length),Y;q[0]!=null?(Y=Math.atan(q[1]/q[0]),q[0]<0?Y=Y+Math.PI/2:Y=-Y-Math.PI/2):Y=q;for(var rt=Math.cos(-Y),ot=Math.sin(-Y),ht=0;ht0){var Lt=gN(V,-S);dt=dN(Lt)}else dt=V;return qd(g,x,dt)},UK=function(g,x,T,L,O,P,$){for(var q=new Array(T.length),S=P/2,V=$/2,Y=DL(P,$),rt=Y*Y,ot=0;ot=0&&Lt<=1&&Dt.push(Lt),kt>=0&&kt<=1&&Dt.push(kt),Dt.length===0)return[];var Pt=Dt[0]*q[0]+g,$t=Dt[0]*q[1]+x;if(Dt.length>1){if(Dt[0]==Dt[1])return[Pt,$t];var Zt=Dt[1]*q[0]+g,Yt=Dt[1]*q[1]+x;return[Pt,$t,Zt,Yt]}else return[Pt,$t]},LL=function(g,x,T){return x<=g&&g<=T||T<=g&&g<=x?g:g<=x&&x<=T||T<=x&&x<=g?x:T},ym=function(g,x,T,L,O,P,$,q,S){var V=g-O,Y=T-g,rt=$-O,ot=x-P,ht=L-x,dt=q-P,Lt=rt*ot-dt*V,kt=Y*ot-ht*V,Dt=dt*Y-rt*ht;if(Dt!==0){var Pt=Lt/Dt,$t=kt/Dt,Zt=.001,Yt=0-Zt,qt=1+Zt;return Yt<=Pt&&Pt<=qt&&Yt<=$t&&$t<=qt?[g+Pt*Y,x+Pt*ht]:S?[g+Pt*Y,x+Pt*ht]:[]}else return Lt===0||kt===0?LL(g,T,$)===$?[$,q]:LL(g,T,O)===O?[O,P]:LL(O,$,T)===T?[T,L]:[]:[]},Ak=function(g,x,T,L,O,P,$,q){var S=[],V,Y=new Array(T.length),rt=!0;P==null&&(rt=!1);var ot;if(rt){for(var ht=0;ht0){var dt=gN(Y,-q);ot=dN(dt)}else ot=Y}else ot=T;for(var Lt,kt,Dt,Pt,$t=0;$t2){for(var ze=[S[0],S[1]],Ge=Math.pow(ze[0]-g,2)+Math.pow(ze[1]-x,2),En=1;EnV&&(V=$t)},get:function(Pt){return S[Pt]}},rt=0;rt<$.length;rt++){var ot=$[rt],ht=ot.id();T?q[ht]=ot.outgoers().nodes():q[ht]=ot.openNeighborhood().nodes(),Y.set(ht,0)}for(var dt=function(Pt){for(var $t=$[Pt].id(),Zt=[],Yt={},qt={},ne={},Gt=new Ck(function(ur,er){return ne[ur]-ne[er]}),ge=0;ge<$.length;ge++){var be=$[ge].id();Yt[be]=[],qt[be]=0,ne[be]=1/0}for(qt[$t]=1,ne[$t]=0,Gt.push($t);!Gt.empty();){var ie=Gt.pop();if(Zt.push(ie),O)for(var Fe=0;Fe0?ze=bn.edgesTo(we)[0]:ze=we.edgesTo(bn)[0];var Ge=L(ze);we=we.id(),ne[we]>ne[ie]+Ge&&(ne[we]=ne[ie]+Ge,Gt.nodes.indexOf(we)<0?Gt.push(we):Gt.updateItem(we),qt[we]=0,Yt[we]=[]),ne[we]==ne[ie]+Ge&&(qt[we]=qt[we]+qt[ie],Yt[we].push(ie))}else for(var En=0;En0;){for(var Wn=Zt.pop(),rr=0;rr0&&$.push(T[q]);$.length!==0&&O.push(L.collection($))}return O},oX=function(g,x){for(var T=0;T5&&arguments[5]!==void 0?arguments[5]:lX,$=L,q,S,V=0;V=2?Mk(g,x,T,0,TN,hX):Mk(g,x,T,0,EN)},squaredEuclidean:function(g,x,T){return Mk(g,x,T,0,TN)},manhattan:function(g,x,T){return Mk(g,x,T,0,EN)},max:function(g,x,T){return Mk(g,x,T,-1/0,fX)}};tx["squared-euclidean"]=tx.squaredEuclidean,tx.squaredeuclidean=tx.squaredEuclidean;function $T(y,g,x,T,L,O){var P;return yt(y)?P=y:P=tx[y]||tx.euclidean,g===0&&yt(y)?P(L,O):P(g,x,T,L,O)}var dX=Rf({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),PL=function(g){return dX(g)},zT=function(g,x,T,L,O){var P=O!=="kMedoids",$=P?function(Y){return T[Y]}:function(Y){return L[Y](T)},q=function(rt){return L[rt](x)},S=T,V=x;return $T(g,L.length,$,q,S,V)},FL=function(g,x,T){for(var L=T.length,O=new Array(L),P=new Array(L),$=new Array(x),q=null,S=0;ST)return!1}return!0},bX=function(g,x,T){for(var L=0;L$&&($=x[S][V],q=V);O[q].push(g[S])}for(var Y=0;Y=O.threshold||O.mode==="dendrogram"&&g.length===1)return!1;var ht=x[P],dt=x[L[P]],Lt;O.mode==="dendrogram"?Lt={left:ht,right:dt,key:ht.key}:Lt={value:ht.value.concat(dt.value),key:ht.key},g[ht.index]=Lt,g.splice(dt.index,1),x[ht.key]=Lt;for(var kt=0;ktT[dt.key][Dt.key]&&(q=T[dt.key][Dt.key])):O.linkage==="max"?(q=T[ht.key][Dt.key],T[ht.key][Dt.key]0&&L.push(O);return L},IN=function(g,x,T){for(var L=[],O=0;O$&&(P=S,$=x[O*g+S])}P>0&&L.push(P)}for(var V=0;VS&&(q=V,S=Y)}T[O]=P[q]}return L=IN(g,x,T),L},ON=function(g){for(var x=this.cy(),T=this.nodes(),L=MX(g),O={},P=0;P=be?(ie=be,be=we,Fe=bn):we>ie&&(ie=we);for(var ze=0;ze<$;ze++)Y[ge*$+ze]=(1-L.damping)*(S[ge*$+ze]-be)+L.damping*Pt[ze];Y[ge*$+Fe]=(1-L.damping)*(S[ge*$+Fe]-ie)+L.damping*Pt[Fe]}for(var Ge=0;Ge<$;Ge++){for(var En=0,In=0;In<$;In++)Pt[In]=rt[In*$+Ge],$t[In]=Math.max(0,Y[In*$+Ge]),En+=$t[In];En-=$t[Ge],$t[Ge]=Y[Ge*$+Ge],En+=$t[Ge];for(var Yn=0;Yn<$;Yn++)rt[Yn*$+Ge]=(1-L.damping)*Math.min(0,En-$t[Yn])+L.damping*Pt[Yn];rt[Ge*$+Ge]=(1-L.damping)*(En-$t[Ge])+L.damping*Pt[Ge]}for(var Sn=0,Wn=0;Wn<$;Wn++){var rr=rt[Wn*$+Wn]+Y[Wn*$+Wn]>0?1:0;qt[Gt%L.minIterations*$+Wn]=rr,Sn+=rr}if(Sn>0&&(Gt>=L.minIterations-1||Gt==L.maxIterations-1)){for(var wr=0,ur=0;ur<$;ur++){Zt[ur]=0;for(var er=0;er1||Yt>1)&&($=!0),Y[Pt]=[],Dt.outgoers().forEach(function(ne){ne.isEdge()&&Y[Pt].push(ne.id())})}else rt[Pt]=[void 0,Dt.target().id()]}):P.forEach(function(Dt){var Pt=Dt.id();if(Dt.isNode()){var $t=Dt.degree(!0);$t%2&&(q?S?$=!0:S=Pt:q=Pt),Y[Pt]=[],Dt.connectedEdges().forEach(function(Zt){return Y[Pt].push(Zt.id())})}else rt[Pt]=[Dt.source().id(),Dt.target().id()]});var ot={found:!1,trail:void 0};if($)return ot;if(S&&q)if(O){if(V&&S!=V)return ot;V=S}else{if(V&&S!=V&&q!=V)return ot;V||(V=S)}else V||(V=P[0].id());var ht=function(Pt){for(var $t=Pt,Zt=[Pt],Yt,qt,ne;Y[$t].length;)Yt=Y[$t].shift(),qt=rt[Yt][0],ne=rt[Yt][1],$t!=ne?(Y[ne]=Y[ne].filter(function(Gt){return Gt!=Yt}),$t=ne):!O&&$t!=qt&&(Y[qt]=Y[qt].filter(function(Gt){return Gt!=Yt}),$t=qt),Zt.unshift(Yt),Zt.unshift($t);return Zt},dt=[],Lt=[];for(Lt=ht(V);Lt.length!=1;)Y[Lt[0]].length==0?(dt.unshift(P.getElementById(Lt.shift())),dt.unshift(P.getElementById(Lt.shift()))):Lt=ht(Lt.shift()).concat(Lt);dt.unshift(P.getElementById(Lt.shift()));for(var kt in Y)if(Y[kt].length)return ot;return ot.found=!0,ot.trail=this.spawn(dt,!0),ot}},HT=function(){var g=this,x={},T=0,L=0,O=[],P=[],$={},q=function(rt,ot){for(var ht=P.length-1,dt=[],Lt=g.spawn();P[ht].x!=rt||P[ht].y!=ot;)dt.push(P.pop().edge),ht--;dt.push(P.pop().edge),dt.forEach(function(kt){var Dt=kt.connectedNodes().intersection(g);Lt.merge(kt),Dt.forEach(function(Pt){var $t=Pt.id(),Zt=Pt.connectedEdges().intersection(g);Lt.merge(Pt),x[$t].cutVertex?Lt.merge(Zt.filter(function(Yt){return Yt.isLoop()})):Lt.merge(Zt)})}),O.push(Lt)},S=function Y(rt,ot,ht){rt===ht&&(L+=1),x[ot]={id:T,low:T++,cutVertex:!1};var dt=g.getElementById(ot).connectedEdges().intersection(g);if(dt.size()===0)O.push(g.spawn(g.getElementById(ot)));else{var Lt,kt,Dt,Pt;dt.forEach(function($t){Lt=$t.source().id(),kt=$t.target().id(),Dt=Lt===ot?kt:Lt,Dt!==ht&&(Pt=$t.id(),$[Pt]||($[Pt]=!0,P.push({x:ot,y:Dt,edge:$t})),Dt in x?x[ot].low=Math.min(x[ot].low,x[Dt].id):(Y(rt,Dt,ot),x[ot].low=Math.min(x[ot].low,x[Dt].low),x[ot].id<=x[Dt].low&&(x[ot].cutVertex=!0,q(ot,Dt))))})}};g.forEach(function(Y){if(Y.isNode()){var rt=Y.id();rt in x||(L=0,S(rt,rt),x[rt].cutVertex=L>1)}});var V=Object.keys(x).filter(function(Y){return x[Y].cutVertex}).map(function(Y){return g.getElementById(Y)});return{cut:g.spawn(V),components:O}},RX={hopcroftTarjanBiconnected:HT,htbc:HT,htb:HT,hopcroftTarjanBiconnectedComponents:HT},VT=function(){var g=this,x={},T=0,L=[],O=[],P=g.spawn(g),$=function q(S){O.push(S),x[S]={index:T,low:T++,explored:!1};var V=g.getElementById(S).connectedEdges().intersection(g);if(V.forEach(function(dt){var Lt=dt.target().id();Lt!==S&&(Lt in x||q(Lt),x[Lt].explored||(x[S].low=Math.min(x[S].low,x[Lt].low)))}),x[S].index===x[S].low){for(var Y=g.spawn();;){var rt=O.pop();if(Y.merge(g.getElementById(rt)),x[rt].low=x[S].index,x[rt].explored=!0,rt===S)break}var ot=Y.edgesWith(Y),ht=Y.merge(ot);L.push(ht),P=P.difference(ht)}};return g.forEach(function(q){if(q.isNode()){var S=q.id();S in x||$(S)}}),{cut:P,components:L}},jX={tarjanStronglyConnected:VT,tsc:VT,tscc:VT,tarjanStronglyConnectedComponents:VT},PN={};[Tk,bK,wK,mK,xK,EK,_K,QK,Z5,J5,OL,uX,kX,AX,FX,BX,RX,jX].forEach(function(y){de(PN,y)});/*! -Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable -Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) -Licensed under The MIT License (http://opensource.org/licenses/MIT) -*/var FN=0,NN=1,BN=2,gw=function y(g){if(!(this instanceof y))return new y(g);this.id="Thenable/1.0.7",this.state=FN,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof g=="function"&&g.call(this,this.fulfill.bind(this),this.reject.bind(this))};gw.prototype={fulfill:function(g){return RN(this,NN,"fulfillValue",g)},reject:function(g){return RN(this,BN,"rejectReason",g)},then:function(g,x){var T=this,L=new gw;return T.onFulfilled.push(zN(g,L,"fulfill")),T.onRejected.push(zN(x,L,"reject")),jN(T),L.proxy}};var RN=function(g,x,T,L){return g.state===FN&&(g.state=x,g[T]=L,jN(g)),g},jN=function(g){g.state===NN?$N(g,"onFulfilled",g.fulfillValue):g.state===BN&&$N(g,"onRejected",g.rejectReason)},$N=function(g,x,T){if(g[x].length!==0){var L=g[x];g[x]=[];var O=function(){for(var $=0;$0}},clearQueue:function(){return function(){var x=this,T=x.length!==void 0,L=T?x:[x],O=this._private.cy||this;if(!O.styleEnabled())return this;for(var P=0;P-1}var $Q=jQ;function zQ(y,g){var x=this.__data__,T=WT(x,y);return T<0?(++this.size,x.push([y,g])):x[T][1]=g,this}var qQ=zQ;function rx(y){var g=-1,x=y==null?0:y.length;for(this.clear();++g-1&&y%1==0&&y0&&this.spawn(L).updateStyle().emit("class"),x},addClass:function(g){return this.toggleClass(g,!0)},hasClass:function(g){var x=this[0];return x!=null&&x._private.classes.has(g)},toggleClass:function(g,x){ft(g)||(g=g.match(/\S+/g)||[]);for(var T=this,L=x===void 0,O=[],P=0,$=T.length;P<$;P++)for(var q=T[P],S=q._private.classes,V=!1,Y=0;Y0&&this.spawn(O).updateStyle().emit("class"),T},removeClass:function(g){return this.toggleClass(g,!1)},flashClass:function(g,x){var T=this;if(x==null)x=250;else if(x===0)return T;return T.addClass(g),setTimeout(function(){T.removeClass(g)},x),T}};QT.className=QT.classNames=QT.classes;var tc={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Ye,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};tc.variable="(?:[\\w-.]|(?:\\\\"+tc.metaChar+"))+",tc.className="(?:[\\w-]|(?:\\\\"+tc.metaChar+"))+",tc.value=tc.string+"|"+tc.number,tc.id=tc.variable,function(){var y,g,x;for(y=tc.comparatorOp.split("|"),x=0;x=0)&&g!=="="&&(tc.comparatorOp+="|\\!"+g)}();var Kc=function(){return{checks:[]}},zi={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},zL=[{selector:":selected",matches:function(g){return g.selected()}},{selector:":unselected",matches:function(g){return!g.selected()}},{selector:":selectable",matches:function(g){return g.selectable()}},{selector:":unselectable",matches:function(g){return!g.selectable()}},{selector:":locked",matches:function(g){return g.locked()}},{selector:":unlocked",matches:function(g){return!g.locked()}},{selector:":visible",matches:function(g){return g.visible()}},{selector:":hidden",matches:function(g){return!g.visible()}},{selector:":transparent",matches:function(g){return g.transparent()}},{selector:":grabbed",matches:function(g){return g.grabbed()}},{selector:":free",matches:function(g){return!g.grabbed()}},{selector:":removed",matches:function(g){return g.removed()}},{selector:":inside",matches:function(g){return!g.removed()}},{selector:":grabbable",matches:function(g){return g.grabbable()}},{selector:":ungrabbable",matches:function(g){return!g.grabbable()}},{selector:":animated",matches:function(g){return g.animated()}},{selector:":unanimated",matches:function(g){return!g.animated()}},{selector:":parent",matches:function(g){return g.isParent()}},{selector:":childless",matches:function(g){return g.isChildless()}},{selector:":child",matches:function(g){return g.isChild()}},{selector:":orphan",matches:function(g){return g.isOrphan()}},{selector:":nonorphan",matches:function(g){return g.isChild()}},{selector:":compound",matches:function(g){return g.isNode()?g.isParent():g.source().isParent()||g.target().isParent()}},{selector:":loop",matches:function(g){return g.isLoop()}},{selector:":simple",matches:function(g){return g.isSimple()}},{selector:":active",matches:function(g){return g.active()}},{selector:":inactive",matches:function(g){return!g.active()}},{selector:":backgrounding",matches:function(g){return g.backgrounding()}},{selector:":nonbackgrounding",matches:function(g){return!g.backgrounding()}}].sort(function(y,g){return Me(y.selector,g.selector)}),qZ=function(){for(var y={},g,x=0;x0&&V.edgeCount>0)return Sc("The selector `"+g+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(V.edgeCount>1)return Sc("The selector `"+g+"` is invalid because it uses multiple edge selectors"),!1;V.edgeCount===1&&Sc("The selector `"+g+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},YZ=function(){if(this.toStringCache!=null)return this.toStringCache;for(var g=function(V){return V??""},x=function(V){return mt(V)?'"'+V+'"':g(V)},T=function(V){return" "+V+" "},L=function(V,Y){var rt=V.type,ot=V.value;switch(rt){case zi.GROUP:{var ht=g(ot);return ht.substring(0,ht.length-1)}case zi.DATA_COMPARE:{var dt=V.field,Lt=V.operator;return"["+dt+T(g(Lt))+x(ot)+"]"}case zi.DATA_BOOL:{var kt=V.operator,Dt=V.field;return"["+g(kt)+Dt+"]"}case zi.DATA_EXIST:{var Pt=V.field;return"["+Pt+"]"}case zi.META_COMPARE:{var $t=V.operator,Zt=V.field;return"[["+Zt+T(g($t))+x(ot)+"]]"}case zi.STATE:return ot;case zi.ID:return"#"+ot;case zi.CLASS:return"."+ot;case zi.PARENT:case zi.CHILD:return O(V.parent,Y)+T(">")+O(V.child,Y);case zi.ANCESTOR:case zi.DESCENDANT:return O(V.ancestor,Y)+" "+O(V.descendant,Y);case zi.COMPOUND_SPLIT:{var Yt=O(V.left,Y),qt=O(V.subject,Y),ne=O(V.right,Y);return Yt+(Yt.length>0?" ":"")+qt+ne}case zi.TRUE:return""}},O=function(V,Y){return V.checks.reduce(function(rt,ot,ht){return rt+(Y===V&&ht===0?"$":"")+L(ot,Y)},"")},P="",$=0;$1&&$=0&&(x=x.replace("!",""),Y=!0),x.indexOf("@")>=0&&(x=x.replace("@",""),V=!0),(O||$||V)&&(q=!O&&!P?"":""+g,S=""+T),V&&(g=q=q.toLowerCase(),T=S=S.toLowerCase()),x){case"*=":L=q.indexOf(S)>=0;break;case"$=":L=q.indexOf(S,q.length-S.length)>=0;break;case"^=":L=q.indexOf(S)===0;break;case"=":L=g===T;break;case">":rt=!0,L=g>T;break;case">=":rt=!0,L=g>=T;break;case"<":rt=!0,L=g0;){var V=L.shift();g(V),O.add(V.id()),$&&T(L,O,V)}return y}function Ik(y,g,x){if(x.isParent())for(var T=x._private.children,L=0;L1&&arguments[1]!==void 0?arguments[1]:!0;return ZT(this,y,g,Ik)};function aB(y,g,x){if(x.isChild()){var T=x._private.parent;g.has(T.id())||y.push(T)}}ax.forEachUp=function(y){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ZT(this,y,g,aB)};function nJ(y,g,x){aB(y,g,x),Ik(y,g,x)}ax.forEachUpAndDown=function(y){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ZT(this,y,g,nJ)},ax.ancestors=ax.parents;var Ok,oB;Ok=oB={data:Ac.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Ac.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Ac.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ac.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Ac.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Ac.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var g=this[0];if(g)return g._private.data.id}},Ok.attr=Ok.data,Ok.removeAttr=Ok.removeData;var rJ=oB,JT={};function ox(y){return function(g){var x=this;if(g===void 0&&(g=!0),x.length!==0)if(x.isNode()&&!x.removed()){for(var T=0,L=x[0],O=L._private.edges,P=0;Pg}),minIndegree:cx("indegree",function(y,g){return yg}),minOutdegree:cx("outdegree",function(y,g){return yg})}),de(JT,{totalDegree:function(g){for(var x=0,T=this.nodes(),L=0;L0,rt=Y;Y&&(V=V[0]);var ot=rt?V.position():{x:0,y:0};x!==void 0?S.position(g,x+ot[g]):O!==void 0&&S.position({x:O.x+ot.x,y:O.y+ot.y})}else{var ht=T.position(),dt=$?T.parent():null,Lt=dt&&dt.length>0,kt=Lt;Lt&&(dt=dt[0]);var Dt=kt?dt.position():{x:0,y:0};return O={x:ht.x-Dt.x,y:ht.y-Dt.y},g===void 0?O:O[g]}else if(!P)return;return this}},kp.modelPosition=kp.point=kp.position,kp.modelPositions=kp.points=kp.positions,kp.renderedPoint=kp.renderedPosition,kp.relativePoint=kp.relativePosition;var lB=cB,ux,Ub;ux=Ub={},Ub.renderedBoundingBox=function(y){var g=this.boundingBox(y),x=this.cy(),T=x.zoom(),L=x.pan(),O=g.x1*T+L.x,P=g.x2*T+L.x,$=g.y1*T+L.y,q=g.y2*T+L.y;return{x1:O,x2:P,y1:$,y2:q,w:P-O,h:q-$}},Ub.dirtyCompoundBoundsCache=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,g=this.cy();return!g.styleEnabled()||!g.hasCompoundNodes()?this:(this.forEachUp(function(x){if(x.isParent()){var T=x._private;T.compoundBoundsClean=!1,T.bbCache=null,y||x.emitAndNotify("bounds")}}),this)},Ub.updateCompoundBounds=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,g=this.cy();if(!g.styleEnabled()||!g.hasCompoundNodes())return this;if(!y&&g.batching())return this;function x(P){if(!P.isParent())return;var $=P._private,q=P.children(),S=P.pstyle("compound-sizing-wrt-labels").value==="include",V={width:{val:P.pstyle("min-width").pfValue,left:P.pstyle("min-width-bias-left"),right:P.pstyle("min-width-bias-right")},height:{val:P.pstyle("min-height").pfValue,top:P.pstyle("min-height-bias-top"),bottom:P.pstyle("min-height-bias-bottom")}},Y=q.boundingBox({includeLabels:S,includeOverlays:!1,useCache:!1}),rt=$.position;(Y.w===0||Y.h===0)&&(Y={w:P.pstyle("width").pfValue,h:P.pstyle("height").pfValue},Y.x1=rt.x-Y.w/2,Y.x2=rt.x+Y.w/2,Y.y1=rt.y-Y.h/2,Y.y2=rt.y+Y.h/2);function ot(Gt,ge,be){var ie=0,Fe=0,we=ge+be;return Gt>0&&we>0&&(ie=ge/we*Gt,Fe=be/we*Gt),{biasDiff:ie,biasComplementDiff:Fe}}function ht(Gt,ge,be,ie){if(be.units==="%")switch(ie){case"width":return Gt>0?be.pfValue*Gt:0;case"height":return ge>0?be.pfValue*ge:0;case"average":return Gt>0&&ge>0?be.pfValue*(Gt+ge)/2:0;case"min":return Gt>0&&ge>0?Gt>ge?be.pfValue*ge:be.pfValue*Gt:0;case"max":return Gt>0&&ge>0?Gt>ge?be.pfValue*Gt:be.pfValue*ge:0;default:return 0}else return be.units==="px"?be.pfValue:0}var dt=V.width.left.value;V.width.left.units==="px"&&V.width.val>0&&(dt=dt*100/V.width.val);var Lt=V.width.right.value;V.width.right.units==="px"&&V.width.val>0&&(Lt=Lt*100/V.width.val);var kt=V.height.top.value;V.height.top.units==="px"&&V.height.val>0&&(kt=kt*100/V.height.val);var Dt=V.height.bottom.value;V.height.bottom.units==="px"&&V.height.val>0&&(Dt=Dt*100/V.height.val);var Pt=ot(V.width.val-Y.w,dt,Lt),$t=Pt.biasDiff,Zt=Pt.biasComplementDiff,Yt=ot(V.height.val-Y.h,kt,Dt),qt=Yt.biasDiff,ne=Yt.biasComplementDiff;$.autoPadding=ht(Y.w,Y.h,P.pstyle("padding"),P.pstyle("padding-relative-to").value),$.autoWidth=Math.max(Y.w,V.width.val),rt.x=(-$t+Y.x1+Y.x2+Zt)/2,$.autoHeight=Math.max(Y.h,V.height.val),rt.y=(-qt+Y.y1+Y.y2+ne)/2}for(var T=0;Tg.x2?L:g.x2,g.y1=Tg.y2?O:g.y2,g.w=g.x2-g.x1,g.h=g.y2-g.y1)},L3=function(g,x){return x==null?g:Ep(g,x.x1,x.y1,x.x2,x.y2)},Fk=function(g,x,T){return yp(g,x,T)},tC=function(g,x,T){if(!x.cy().headless()){var L=x._private,O=L.rstyle,P=O.arrowWidth/2,$=x.pstyle(T+"-arrow-shape").value,q,S;if($!=="none"){T==="source"?(q=O.srcX,S=O.srcY):T==="target"?(q=O.tgtX,S=O.tgtY):(q=O.midX,S=O.midY);var V=L.arrowBounds=L.arrowBounds||{},Y=V[T]=V[T]||{};Y.x1=q-P,Y.y1=S-P,Y.x2=q+P,Y.y2=S+P,Y.w=Y.x2-Y.x1,Y.h=Y.y2-Y.y1,RT(Y,1),Ep(g,Y.x1,Y.y1,Y.x2,Y.y2)}}},hB=function(g,x,T){if(!x.cy().headless()){var L;T?L=T+"-":L="";var O=x._private,P=O.rstyle,$=x.pstyle(L+"label").strValue;if($){var q=x.pstyle("text-halign"),S=x.pstyle("text-valign"),V=Fk(P,"labelWidth",T),Y=Fk(P,"labelHeight",T),rt=Fk(P,"labelX",T),ot=Fk(P,"labelY",T),ht=x.pstyle(L+"text-margin-x").pfValue,dt=x.pstyle(L+"text-margin-y").pfValue,Lt=x.isEdge(),kt=x.pstyle(L+"text-rotation"),Dt=x.pstyle("text-outline-width").pfValue,Pt=x.pstyle("text-border-width").pfValue,$t=Pt/2,Zt=x.pstyle("text-background-padding").pfValue,Yt=2,qt=Y,ne=V,Gt=ne/2,ge=qt/2,be,ie,Fe,we;if(Lt)be=rt-Gt,ie=rt+Gt,Fe=ot-ge,we=ot+ge;else{switch(q.value){case"left":be=rt-ne,ie=rt;break;case"center":be=rt-Gt,ie=rt+Gt;break;case"right":be=rt,ie=rt+ne;break}switch(S.value){case"top":Fe=ot-qt,we=ot;break;case"center":Fe=ot-ge,we=ot+ge;break;case"bottom":Fe=ot,we=ot+qt;break}}be+=ht-Math.max(Dt,$t)-Zt-Yt,ie+=ht+Math.max(Dt,$t)+Zt+Yt,Fe+=dt-Math.max(Dt,$t)-Zt-Yt,we+=dt+Math.max(Dt,$t)+Zt+Yt;var bn=T||"main",ze=O.labelBounds,Ge=ze[bn]=ze[bn]||{};Ge.x1=be,Ge.y1=Fe,Ge.x2=ie,Ge.y2=we,Ge.w=ie-be,Ge.h=we-Fe;var En=Lt&&kt.strValue==="autorotate",In=kt.pfValue!=null&&kt.pfValue!==0;if(En||In){var Yn=En?Fk(O.rstyle,"labelAngle",T):kt.pfValue,Sn=Math.cos(Yn),Wn=Math.sin(Yn),rr=(be+ie)/2,wr=(Fe+we)/2;if(!Lt){switch(q.value){case"left":rr=ie;break;case"right":rr=be;break}switch(S.value){case"top":wr=we;break;case"bottom":wr=Fe;break}}var ur=function(Ea,Ci){return Ea=Ea-rr,Ci=Ci-wr,{x:Ea*Sn-Ci*Wn+rr,y:Ea*Wn+Ci*Sn+wr}},er=ur(be,Fe),vn=ur(be,we),gr=ur(ie,Fe),fr=ur(ie,we);be=Math.min(er.x,vn.x,gr.x,fr.x),ie=Math.max(er.x,vn.x,gr.x,fr.x),Fe=Math.min(er.y,vn.y,gr.y,fr.y),we=Math.max(er.y,vn.y,gr.y,fr.y)}var Jr=bn+"Rot",vi=ze[Jr]=ze[Jr]||{};vi.x1=be,vi.y1=Fe,vi.x2=ie,vi.y2=we,vi.w=ie-be,vi.h=we-Fe,Ep(g,be,Fe,ie,we),Ep(O.labelBounds.all,be,Fe,ie,we)}return g}},iJ=function(g,x){var T=g._private.cy,L=T.styleEnabled(),O=T.headless(),P=zd(),$=g._private,q=g.isNode(),S=g.isEdge(),V,Y,rt,ot,ht,dt,Lt=$.rstyle,kt=q&&L?g.pstyle("bounds-expansion").pfValue:[0],Dt=function(gs){return gs.pstyle("display").value!=="none"},Pt=!L||Dt(g)&&(!S||Dt(g.source())&&Dt(g.target()));if(Pt){var $t=0,Zt=0;L&&x.includeOverlays&&($t=g.pstyle("overlay-opacity").value,$t!==0&&(Zt=g.pstyle("overlay-padding").value));var Yt=0,qt=0;L&&x.includeUnderlays&&(Yt=g.pstyle("underlay-opacity").value,Yt!==0&&(qt=g.pstyle("underlay-padding").value));var ne=Math.max(Zt,qt),Gt=0,ge=0;if(L&&(Gt=g.pstyle("width").pfValue,ge=Gt/2),q&&x.includeNodes){var be=g.position();ht=be.x,dt=be.y;var ie=g.outerWidth(),Fe=ie/2,we=g.outerHeight(),bn=we/2;V=ht-Fe,Y=ht+Fe,rt=dt-bn,ot=dt+bn,Ep(P,V,rt,Y,ot)}else if(S&&x.includeEdges)if(L&&!O){var ze=g.pstyle("curve-style").strValue;if(V=Math.min(Lt.srcX,Lt.midX,Lt.tgtX),Y=Math.max(Lt.srcX,Lt.midX,Lt.tgtX),rt=Math.min(Lt.srcY,Lt.midY,Lt.tgtY),ot=Math.max(Lt.srcY,Lt.midY,Lt.tgtY),V-=ge,Y+=ge,rt-=ge,ot+=ge,Ep(P,V,rt,Y,ot),ze==="haystack"){var Ge=Lt.haystackPts;if(Ge&&Ge.length===2){if(V=Ge[0].x,rt=Ge[0].y,Y=Ge[1].x,ot=Ge[1].y,V>Y){var En=V;V=Y,Y=En}if(rt>ot){var In=rt;rt=ot,ot=In}Ep(P,V-ge,rt-ge,Y+ge,ot+ge)}}else if(ze==="bezier"||ze==="unbundled-bezier"||ze==="segments"||ze==="taxi"){var Yn;switch(ze){case"bezier":case"unbundled-bezier":Yn=Lt.bezierPts;break;case"segments":case"taxi":Yn=Lt.linePts;break}if(Yn!=null)for(var Sn=0;SnY){var vn=V;V=Y,Y=vn}if(rt>ot){var gr=rt;rt=ot,ot=gr}V-=ge,Y+=ge,rt-=ge,ot+=ge,Ep(P,V,rt,Y,ot)}if(L&&x.includeEdges&&S&&(tC(P,g,"mid-source"),tC(P,g,"mid-target"),tC(P,g,"source"),tC(P,g,"target")),L){var fr=g.pstyle("ghost").value==="yes";if(fr){var Jr=g.pstyle("ghost-offset-x").pfValue,vi=g.pstyle("ghost-offset-y").pfValue;Ep(P,P.x1+Jr,P.y1+vi,P.x2+Jr,P.y2+vi)}}var Xs=$.bodyBounds=$.bodyBounds||{};lN(Xs,P),SL(Xs,kt),RT(Xs,1),L&&(V=P.x1,Y=P.x2,rt=P.y1,ot=P.y2,Ep(P,V-ne,rt-ne,Y+ne,ot+ne));var Ea=$.overlayBounds=$.overlayBounds||{};lN(Ea,P),SL(Ea,kt),RT(Ea,1);var Ci=$.labelBounds=$.labelBounds||{};Ci.all!=null?NK(Ci.all):Ci.all=zd(),L&&x.includeLabels&&(x.includeMainLabels&&hB(P,g,null),S&&(x.includeSourceLabels&&hB(P,g,"source"),x.includeTargetLabels&&hB(P,g,"target")))}return P.x1=M0(P.x1),P.y1=M0(P.y1),P.x2=M0(P.x2),P.y2=M0(P.y2),P.w=M0(P.x2-P.x1),P.h=M0(P.y2-P.y1),P.w>0&&P.h>0&&Pt&&(SL(P,kt),RT(P,1)),P},fB=function(g){var x=0,T=function(P){return(P?1:0)<0&&arguments[0]!==void 0?arguments[0]:vJ,g=arguments.length>1?arguments[1]:void 0,x=0;x=0;$--)P($);return this},Cm.removeAllListeners=function(){return this.removeListener("*")},Cm.emit=Cm.trigger=function(y,g,x){var T=this.listeners,L=T.length;return this.emitting++,ft(g)||(g=[g]),mJ(this,function(O,P){x!=null&&(T=[{event:P.event,type:P.type,namespace:P.namespace,callback:x}],L=T.length);for(var $=function(V){var Y=T[V];if(Y.type===P.type&&(!Y.namespace||Y.namespace===P.namespace||Y.namespace===wJ)&&O.eventMatches(O.context,Y,P)){var rt=[P];g!=null&&aN(rt,g),O.beforeEmit(O.context,Y,P),Y.conf&&Y.conf.one&&(O.listeners=O.listeners.filter(function(dt){return dt!==Y}));var ot=O.callbackContext(O.context,Y,P),ht=Y.callback.apply(ot,rt);O.afterEmit(O.context,Y,P),ht===!1&&(P.stopPropagation(),P.preventDefault())}},q=0;q1&&!P){var $=this.length-1,q=this[$],S=q._private.data.id;this[$]=void 0,this[g]=q,O.set(S,{ele:q,index:g})}return this.length--,this},unmergeOne:function(g){g=g[0];var x=this._private,T=g._private.data.id,L=x.map,O=L.get(T);if(!O)return this;var P=O.index;return this.unmergeAt(P),this},unmerge:function(g){var x=this._private.cy;if(!g)return this;if(g&&mt(g)){var T=g;g=x.mutableElements().filter(T)}for(var L=0;L=0;x--){var T=this[x];g(T)&&this.unmergeAt(x)}return this},map:function(g,x){for(var T=[],L=this,O=0;OT&&(T=q,L=$)}return{value:T,ele:L}},min:function(g,x){for(var T=1/0,L,O=this,P=0;P=0&&O"u"?"undefined":f(Symbol))!=g&&f(Symbol.iterator)!=g;x&&(iC[Symbol.iterator]=function(){var T=this,L={value:void 0,done:!1},O=0,P=this.length;return b({next:function(){return O1&&arguments[1]!==void 0?arguments[1]:!0,T=this[0],L=T.cy();if(L.styleEnabled()&&T){this.cleanStyle();var O=T._private.style[g];return O??(x?L.style().getDefaultProperty(g):null)}},numericStyle:function(g){var x=this[0];if(x.cy().styleEnabled()&&x){var T=x.pstyle(g);return T.pfValue!==void 0?T.pfValue:T.value}},numericStyleUnits:function(g){var x=this[0];if(x.cy().styleEnabled()&&x)return x.pstyle(g).units},renderedStyle:function(g){var x=this.cy();if(!x.styleEnabled())return this;var T=this[0];if(T)return x.style().getRenderedStyle(T,g)},style:function(g,x){var T=this.cy();if(!T.styleEnabled())return this;var L=!1,O=T.style();if(ut(g)){var P=g;O.applyBypass(this,P,L),this.emitAndNotify("style")}else if(mt(g))if(x===void 0){var $=this[0];return $?O.getStylePropertyValue($,g):void 0}else O.applyBypass(this,g,x,L),this.emitAndNotify("style");else if(g===void 0){var q=this[0];return q?O.getRawStyle(q):void 0}return this},removeStyle:function(g){var x=this.cy();if(!x.styleEnabled())return this;var T=!1,L=x.style(),O=this;if(g===void 0)for(var P=0;P0&&g.push(V[0]),g.push($[0])}return this.spawn(g,!0).filter(y)},"neighborhood"),closedNeighborhood:function(g){return this.neighborhood().add(this).filter(g)},openNeighborhood:function(g){return this.neighborhood(g)}}),d1.neighbourhood=d1.neighborhood,d1.closedNeighbourhood=d1.closedNeighborhood,d1.openNeighbourhood=d1.openNeighborhood,de(d1,{source:ad(function(g){var x=this[0],T;return x&&(T=x._private.source||x.cy().collection()),T&&g?T.filter(g):T},"source"),target:ad(function(g){var x=this[0],T;return x&&(T=x._private.target||x.cy().collection()),T&&g?T.filter(g):T},"target"),sources:IB({attr:"source"}),targets:IB({attr:"target"})});function IB(y){return function(x){for(var T=[],L=0;L0);return P},component:function(){var g=this[0];return g.cy().mutableElements().components(g)[0]}}),d1.componentsOf=d1.components;var $f=function(g,x){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,L=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(g===void 0){vl("A collection must have a reference to the core");return}var O=new Gb,P=!1;if(!x)x=[];else if(x.length>0&&ut(x[0])&&!nt(x[0])){P=!0;for(var $=[],q=new Y5,S=0,V=x.length;S0&&arguments[0]!==void 0?arguments[0]:!0,g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,x=this,T=x.cy(),L=T._private,O=[],P=[],$,q=0,S=x.length;q0){for(var In=$.length===x.length?x:new $f(T,$),Yn=0;Yn0&&arguments[0]!==void 0?arguments[0]:!0,g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,x=this,T=[],L={},O=x._private.cy;function P(we){for(var bn=we._private.edges,ze=0;ze0&&(y?be.emitAndNotify("remove"):g&&be.emit("remove"));for(var ie=0;ie0?ie=we:be=we;while(Math.abs(Fe)>P&&++bn<$);return we}function Zt(ge){for(var be=0,ie=1,Fe=q-1;ie!==Fe&&rt[ie]<=ge;++ie)be+=S;--ie;var we=(ge-rt[ie])/(rt[ie+1]-rt[ie]),bn=be+we*S,ze=kt(bn,y,x);return ze>=O?Dt(ge,bn):ze===0?bn:$t(ge,be,be+S)}var Yt=!1;function qt(){Yt=!0,(y!==g||x!==T)&&Pt()}var ne=function(be){return Yt||qt(),y===g&&x===T?be:be===0?0:be===1?1:Lt(Zt(be),g,T)};ne.getControlPoints=function(){return[{x:y,y:g},{x,y:T}]};var Gt="generateBezier("+[y,g,x,T]+")";return ne.toString=function(){return Gt},ne}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var MJ=function(){function y(T){return-T.tension*T.x-T.friction*T.v}function g(T,L,O){var P={x:T.x+O.dx*L,v:T.v+O.dv*L,tension:T.tension,friction:T.friction};return{dx:P.v,dv:y(P)}}function x(T,L){var O={dx:T.v,dv:y(T)},P=g(T,L*.5,O),$=g(T,L*.5,P),q=g(T,L,$),S=1/6*(O.dx+2*(P.dx+$.dx)+q.dx),V=1/6*(O.dv+2*(P.dv+$.dv)+q.dv);return T.x=T.x+S*L,T.v=T.v+V*L,T}return function T(L,O,P){var $={x:-1,v:0,tension:null,friction:null},q=[0],S=0,V=1/1e4,Y=16/1e3,rt,ot,ht;for(L=parseFloat(L)||500,O=parseFloat(O)||20,P=P||null,$.tension=L,$.friction=O,rt=P!==null,rt?(S=T(L,O),ot=S/P*Y):ot=Y;ht=x(ht||$,ot),q.push(1+ht.x),S+=16,Math.abs(ht.x)>V&&Math.abs(ht.v)>V;);return rt?function(dt){return q[dt*(q.length-1)|0]}:S}}(),gu=function(g,x,T,L){var O=LJ(g,x,T,L);return function(P,$,q){return P+($-P)*O(q)}},cC={linear:function(g,x,T){return g+(x-g)*T},ease:gu(.25,.1,.25,1),"ease-in":gu(.42,0,1,1),"ease-out":gu(0,0,.58,1),"ease-in-out":gu(.42,0,.58,1),"ease-in-sine":gu(.47,0,.745,.715),"ease-out-sine":gu(.39,.575,.565,1),"ease-in-out-sine":gu(.445,.05,.55,.95),"ease-in-quad":gu(.55,.085,.68,.53),"ease-out-quad":gu(.25,.46,.45,.94),"ease-in-out-quad":gu(.455,.03,.515,.955),"ease-in-cubic":gu(.55,.055,.675,.19),"ease-out-cubic":gu(.215,.61,.355,1),"ease-in-out-cubic":gu(.645,.045,.355,1),"ease-in-quart":gu(.895,.03,.685,.22),"ease-out-quart":gu(.165,.84,.44,1),"ease-in-out-quart":gu(.77,0,.175,1),"ease-in-quint":gu(.755,.05,.855,.06),"ease-out-quint":gu(.23,1,.32,1),"ease-in-out-quint":gu(.86,0,.07,1),"ease-in-expo":gu(.95,.05,.795,.035),"ease-out-expo":gu(.19,1,.22,1),"ease-in-out-expo":gu(1,0,0,1),"ease-in-circ":gu(.6,.04,.98,.335),"ease-out-circ":gu(.075,.82,.165,1),"ease-in-out-circ":gu(.785,.135,.15,.86),spring:function(g,x,T){if(T===0)return cC.linear;var L=MJ(g,x,T);return function(O,P,$){return O+(P-O)*L($)}},"cubic-bezier":gu};function FB(y,g,x,T,L){if(T===1||g===x)return x;var O=L(g,x,T);return y==null||((y.roundValue||y.color)&&(O=Math.round(O)),y.min!==void 0&&(O=Math.max(O,y.min)),y.max!==void 0&&(O=Math.min(O,y.max))),O}function NB(y,g){return y.pfValue!=null||y.value!=null?y.pfValue!=null&&(g==null||g.type.units!=="%")?y.pfValue:y.value:y}function fx(y,g,x,T,L){var O=L!=null?L.type:null;x<0?x=0:x>1&&(x=1);var P=NB(y,L),$=NB(g,L);if(X(P)&&X($))return FB(O,P,$,x,T);if(ft(P)&&ft($)){for(var q=[],S=0;S<$.length;S++){var V=P[S],Y=$[S];if(V!=null&&Y!=null){var rt=FB(O,V,Y,x,T);q.push(rt)}else q.push(Y)}return q}}function DJ(y,g,x,T){var L=!T,O=y._private,P=g._private,$=P.easing,q=P.startTime,S=T?y:y.cy(),V=S.style();if(!P.easingImpl)if($==null)P.easingImpl=cC.linear;else{var Y;if(mt($)){var rt=V.parse("transition-timing-function",$);Y=rt.value}else Y=$;var ot,ht;mt(Y)?(ot=Y,ht=[]):(ot=Y[1],ht=Y.slice(2).map(function(In){return+In})),ht.length>0?(ot==="spring"&&ht.push(P.duration),P.easingImpl=cC[ot].apply(null,ht)):P.easingImpl=cC[ot]}var dt=P.easingImpl,Lt;if(P.duration===0?Lt=1:Lt=(x-q)/P.duration,P.applying&&(Lt=P.progress),Lt<0?Lt=0:Lt>1&&(Lt=1),P.delay==null){var kt=P.startPosition,Dt=P.position;if(Dt&&L&&!y.locked()){var Pt={};$k(kt.x,Dt.x)&&(Pt.x=fx(kt.x,Dt.x,Lt,dt)),$k(kt.y,Dt.y)&&(Pt.y=fx(kt.y,Dt.y,Lt,dt)),y.position(Pt)}var $t=P.startPan,Zt=P.pan,Yt=O.pan,qt=Zt!=null&&T;qt&&($k($t.x,Zt.x)&&(Yt.x=fx($t.x,Zt.x,Lt,dt)),$k($t.y,Zt.y)&&(Yt.y=fx($t.y,Zt.y,Lt,dt)),y.emit("pan"));var ne=P.startZoom,Gt=P.zoom,ge=Gt!=null&&T;ge&&($k(ne,Gt)&&(O.zoom=_k(O.minZoom,fx(ne,Gt,Lt,dt),O.maxZoom)),y.emit("zoom")),(qt||ge)&&y.emit("viewport");var be=P.style;if(be&&be.length>0&&L){for(var ie=0;ie=0;qt--){var ne=Yt[qt];ne()}Yt.splice(0,Yt.length)},Dt=ot.length-1;Dt>=0;Dt--){var Pt=ot[Dt],$t=Pt._private;if($t.stopped){ot.splice(Dt,1),$t.hooked=!1,$t.playing=!1,$t.started=!1,kt($t.frames);continue}!$t.playing&&!$t.applying||($t.playing&&$t.applying&&($t.applying=!1),$t.started||IJ(V,Pt,y),DJ(V,Pt,y,Y),$t.applying&&($t.applying=!1),kt($t.frames),$t.step!=null&&$t.step(y),Pt.completed()&&(ot.splice(Dt,1),$t.hooked=!1,$t.playing=!1,$t.started=!1,kt($t.completes)),dt=!0)}return!Y&&ot.length===0&&ht.length===0&&T.push(V),dt}for(var O=!1,P=0;P0?g.notify("draw",x):g.notify("draw")),x.unmerge(T),g.emit("step")}var OJ={animate:Ac.animate(),animation:Ac.animation(),animated:Ac.animated(),clearQueue:Ac.clearQueue(),delay:Ac.delay(),delayAnimation:Ac.delayAnimation(),stop:Ac.stop(),addToAnimationPool:function(g){var x=this;x.styleEnabled()&&x._private.aniEles.merge(g)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var g=this;if(g._private.animationsRunning=!0,!g.styleEnabled())return;function x(){g._private.animationsRunning&&Bf(function(O){BB(O,g),x()})}var T=g.renderer();T&&T.beforeRender?T.beforeRender(function(O,P){BB(P,g)},T.beforeRenderPriorities.animations):x()}},PJ={qualifierCompare:function(g,x){return g==null||x==null?g==null&&x==null:g.sameText(x)},eventMatches:function(g,x,T){var L=x.qualifier;return L!=null?g!==T.target&&nt(T.target)&&L.matches(T.target):!0},addEventFields:function(g,x){x.cy=g,x.target=g},callbackContext:function(g,x,T){return x.qualifier!=null?T.target:g}},uC=function(g){return mt(g)?new Em(g):g},RB={createEmitter:function(){var g=this._private;return g.emitter||(g.emitter=new nC(PJ,this)),this},emitter:function(){return this._private.emitter},on:function(g,x,T){return this.emitter().on(g,uC(x),T),this},removeListener:function(g,x,T){return this.emitter().removeListener(g,uC(x),T),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(g,x,T){return this.emitter().one(g,uC(x),T),this},once:function(g,x,T){return this.emitter().one(g,uC(x),T),this},emit:function(g,x){return this.emitter().emit(g,x),this},emitAndNotify:function(g,x){return this.emit(g),this.notify(g,x),this}};Ac.eventAliasesOn(RB);var UL={png:function(g){var x=this._private.renderer;return g=g||{},x.png(g)},jpg:function(g){var x=this._private.renderer;return g=g||{},g.bg=g.bg||"#fff",x.jpg(g)}};UL.jpeg=UL.jpg;var lC={layout:function(g){var x=this;if(g==null){vl("Layout options must be specified to make a layout");return}if(g.name==null){vl("A `name` must be specified to make a layout");return}var T=g.name,L=x.extension("layout",T);if(L==null){vl("No such layout `"+T+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var O;mt(g.eles)?O=x.$(g.eles):O=g.eles!=null?g.eles:x.$();var P=new L(de({},g,{cy:x,eles:O}));return P}};lC.createLayout=lC.makeLayout=lC.layout;var FJ={notify:function(g,x){var T=this._private;if(this.batching()){T.batchNotifications=T.batchNotifications||{};var L=T.batchNotifications[g]=T.batchNotifications[g]||this.collection();x!=null&&L.merge(x);return}if(T.notificationsEnabled){var O=this.renderer();this.destroyed()||!O||O.notify(g,x)}},notifications:function(g){var x=this._private;return g===void 0?x.notificationsEnabled:(x.notificationsEnabled=!!g,this)},noNotifications:function(g){this.notifications(!1),g(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var g=this._private;return g.batchCount==null&&(g.batchCount=0),g.batchCount===0&&(g.batchStyleEles=this.collection(),g.batchNotifications={}),g.batchCount++,this},endBatch:function(){var g=this._private;if(g.batchCount===0)return this;if(g.batchCount--,g.batchCount===0){g.batchStyleEles.updateStyle();var x=this.renderer();Object.keys(g.batchNotifications).forEach(function(T){var L=g.batchNotifications[T];L.empty()?x.notify(T):x.notify(T,L)})}return this},batch:function(g){return this.startBatch(),g(),this.endBatch(),this},batchData:function(g){var x=this;return this.batch(function(){for(var T=Object.keys(g),L=0;L0;)x.removeChild(x.childNodes[0]);g._private.renderer=null,g.mutableElements().forEach(function(T){var L=T._private;L.rscratch={},L.rstyle={},L.animation.current=[],L.animation.queue=[]})},onRender:function(g){return this.on("render",g)},offRender:function(g){return this.off("render",g)}};WL.invalidateDimensions=WL.resize;var hC={collection:function(g,x){return mt(g)?this.$(g):Tt(g)?g.collection():ft(g)?(x||(x={}),new $f(this,g,x.unique,x.removed)):new $f(this)},nodes:function(g){var x=this.$(function(T){return T.isNode()});return g?x.filter(g):x},edges:function(g){var x=this.$(function(T){return T.isEdge()});return g?x.filter(g):x},$:function(g){var x=this._private.elements;return g?x.filter(g):x.spawnSelf()},mutableElements:function(){return this._private.elements}};hC.elements=hC.filter=hC.$;var g1={},zk="t",BJ="f";g1.apply=function(y){for(var g=this,x=g._private,T=x.cy,L=T.collection(),O=0;O0;if(rt||Y&&ot){var ht=void 0;rt&&ot||rt?ht=S.properties:ot&&(ht=S.mappedProperties);for(var dt=0;dt1&&($t=1),$.color){var Yt=T.valueMin[0],qt=T.valueMax[0],ne=T.valueMin[1],Gt=T.valueMax[1],ge=T.valueMin[2],be=T.valueMax[2],ie=T.valueMin[3]==null?1:T.valueMin[3],Fe=T.valueMax[3]==null?1:T.valueMax[3],we=[Math.round(Yt+(qt-Yt)*$t),Math.round(ne+(Gt-ne)*$t),Math.round(ge+(be-ge)*$t),Math.round(ie+(Fe-ie)*$t)];O={bypass:T.bypass,name:T.name,value:we,strValue:"rgb("+we[0]+", "+we[1]+", "+we[2]+")"}}else if($.number){var bn=T.valueMin+(T.valueMax-T.valueMin)*$t;O=this.parse(T.name,bn,T.bypass,rt)}else return!1;if(!O)return dt(),!1;O.mapping=T,T=O;break}case P.data:{for(var ze=T.field.split("."),Ge=Y.data,En=0;En0&&O>0){for(var $={},q=!1,S=0;S0?y.delayAnimation(P).play().promise().then(Pt):Pt()}).then(function(){return y.animation({style:$,duration:O,easing:y.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){x.removeBypasses(y,L),y.emitAndNotify("style"),T.transitioning=!1})}else T.transitioning&&(this.removeBypasses(y,L),y.emitAndNotify("style"),T.transitioning=!1)},g1.checkTrigger=function(y,g,x,T,L,O){var P=this.properties[g],$=L(P);$!=null&&$(x,T)&&O(P)},g1.checkZOrderTrigger=function(y,g,x,T){var L=this;this.checkTrigger(y,g,x,T,function(O){return O.triggersZOrder},function(){L._private.cy.notify("zorder",y)})},g1.checkBoundsTrigger=function(y,g,x,T){this.checkTrigger(y,g,x,T,function(L){return L.triggersBounds},function(L){y.dirtyCompoundBoundsCache(),y.dirtyBoundingBoxCache(),L.triggersBoundsOfParallelBeziers&&(g==="curve-style"&&(x==="bezier"||T==="bezier")||g==="display"&&(x==="none"||T==="none"))&&y.parallelEdges().forEach(function(O){O.isBundledBezier()&&O.dirtyBoundingBoxCache()})})},g1.checkTriggers=function(y,g,x,T){y.dirtyStyleCache(),this.checkZOrderTrigger(y,g,x,T),this.checkBoundsTrigger(y,g,x,T)};var qk={};qk.applyBypass=function(y,g,x,T){var L=this,O=[],P=!0;if(g==="*"||g==="**"){if(x!==void 0)for(var $=0;$L.length?T=T.substr(L.length):T=""}function q(){O.length>P.length?O=O.substr(P.length):O=""}for(;;){var S=T.match(/^\s*$/);if(S)break;var V=T.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!V){Sc("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+T);break}L=V[0];var Y=V[1];if(Y!=="core"){var rt=new Em(Y);if(rt.invalid){Sc("Skipping parsing of block: Invalid selector found in string stylesheet: "+Y),$();continue}}var ot=V[2],ht=!1;O=ot;for(var dt=[];;){var Lt=O.match(/^\s*$/);if(Lt)break;var kt=O.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!kt){Sc("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+ot),ht=!0;break}P=kt[0];var Dt=kt[1],Pt=kt[2],$t=g.properties[Dt];if(!$t){Sc("Skipping property: Invalid property name in: "+P),q();continue}var Zt=x.parse(Dt,Pt);if(!Zt){Sc("Skipping property: Invalid property definition in: "+P),q();continue}dt.push({name:Dt,val:Pt}),q()}if(ht){$();break}x.selector(Y);for(var Yt=0;Yt=7&&g[0]==="d"&&(V=new RegExp($.data.regex).exec(g))){if(x)return!1;var rt=$.data;return{name:y,value:V,strValue:""+g,mapped:rt,field:V[1],bypass:x}}else if(g.length>=10&&g[0]==="m"&&(Y=new RegExp($.mapData.regex).exec(g))){if(x||S.multiple)return!1;var ot=$.mapData;if(!(S.color||S.number))return!1;var ht=this.parse(y,Y[4]);if(!ht||ht.mapped)return!1;var dt=this.parse(y,Y[5]);if(!dt||dt.mapped)return!1;if(ht.pfValue===dt.pfValue||ht.strValue===dt.strValue)return Sc("`"+y+": "+g+"` is not a valid mapper because the output range is zero; converting to `"+y+": "+ht.strValue+"`"),this.parse(y,ht.strValue);if(S.color){var Lt=ht.value,kt=dt.value,Dt=Lt[0]===kt[0]&&Lt[1]===kt[1]&&Lt[2]===kt[2]&&(Lt[3]===kt[3]||(Lt[3]==null||Lt[3]===1)&&(kt[3]==null||kt[3]===1));if(Dt)return!1}return{name:y,value:Y,strValue:""+g,mapped:ot,field:Y[1],fieldMin:parseFloat(Y[2]),fieldMax:parseFloat(Y[3]),valueMin:ht.value,valueMax:dt.value,bypass:x}}}if(S.multiple&&T!=="multiple"){var Pt;if(q?Pt=g.split(/\s+/):ft(g)?Pt=g:Pt=[g],S.evenMultiple&&Pt.length%2!==0)return null;for(var $t=[],Zt=[],Yt=[],qt="",ne=!1,Gt=0;Gt0?" ":"")+ge.strValue}return S.validate&&!S.validate($t,Zt)?null:S.singleEnum&&ne?$t.length===1&&mt($t[0])?{name:y,value:$t[0],strValue:$t[0],bypass:x}:null:{name:y,value:$t,pfValue:Yt,strValue:qt,bypass:x,units:Zt}}var be=function(){for(var fr=0;frS.max||S.strictMax&&g===S.max))return null;var ze={name:y,value:g,strValue:""+g+(ie||""),units:ie,bypass:x};return S.unitless||ie!=="px"&&ie!=="em"?ze.pfValue=g:ze.pfValue=ie==="px"||!ie?g:this.getEmSizeInPixels()*g,(ie==="ms"||ie==="s")&&(ze.pfValue=ie==="ms"?g:1e3*g),(ie==="deg"||ie==="rad")&&(ze.pfValue=ie==="rad"?g:IK(g)),ie==="%"&&(ze.pfValue=g/100),ze}else if(S.propList){var Ge=[],En=""+g;if(En!=="none"){for(var In=En.split(/\s*,\s*|\s+/),Yn=0;Yn0&&$>0&&!isNaN(T.w)&&!isNaN(T.h)&&T.w>0&&T.h>0){q=Math.min((P-2*x)/T.w,($-2*x)/T.h),q=q>this._private.maxZoom?this._private.maxZoom:q,q=q=T.minZoom&&(T.maxZoom=x),this},minZoom:function(g){return g===void 0?this._private.minZoom:this.zoomRange({min:g})},maxZoom:function(g){return g===void 0?this._private.maxZoom:this.zoomRange({max:g})},getZoomedViewport:function(g){var x=this._private,T=x.pan,L=x.zoom,O,P,$=!1;if(x.zoomingEnabled||($=!0),X(g)?P=g:ut(g)&&(P=g.level,g.position!=null?O=NT(g.position,L,T):g.renderedPosition!=null&&(O=g.renderedPosition),O!=null&&!x.panningEnabled&&($=!0)),P=P>x.maxZoom?x.maxZoom:P,P=Px.maxZoom||!x.zoomingEnabled?P=!0:(x.zoom=q,O.push("zoom"))}if(L&&(!P||!g.cancelOnFailedZoom)&&x.panningEnabled){var S=g.pan;X(S.x)&&(x.pan.x=S.x,$=!1),X(S.y)&&(x.pan.y=S.y,$=!1),$||O.push("pan")}return O.length>0&&(O.push("viewport"),this.emit(O.join(" ")),this.notify("viewport")),this},center:function(g){var x=this.getCenterPan(g);return x&&(this._private.pan=x,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(g,x){if(this._private.panningEnabled){if(mt(g)){var T=g;g=this.mutableElements().filter(T)}else Tt(g)||(g=this.mutableElements());if(g.length!==0){var L=g.boundingBox(),O=this.width(),P=this.height();x=x===void 0?this._private.zoom:x;var $={x:(O-x*(L.x1+L.x2))/2,y:(P-x*(L.y1+L.y2))/2};return $}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var g=this._private,x=g.container;return g.sizeCache=g.sizeCache||(x?function(){var T=R.getComputedStyle(x),L=function(P){return parseFloat(T.getPropertyValue(P))};return{width:x.clientWidth-L("padding-left")-L("padding-right"),height:x.clientHeight-L("padding-top")-L("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var g=this._private.pan,x=this._private.zoom,T=this.renderedExtent(),L={x1:(T.x1-g.x)/x,x2:(T.x2-g.x)/x,y1:(T.y1-g.y)/x,y2:(T.y2-g.y)/x};return L.w=L.x2-L.x1,L.h=L.y2-L.y1,L},renderedExtent:function(){var g=this.width(),x=this.height();return{x1:0,y1:0,x2:g,y2:x,w:g,h:x}},multiClickDebounceTime:function(g){if(g)this._private.multiClickDebounceTime=g;else return this._private.multiClickDebounceTime;return this}};M3.centre=M3.center,M3.autolockNodes=M3.autolock,M3.autoungrabifyNodes=M3.autoungrabify;var Hk={data:Ac.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Ac.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Ac.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ac.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Hk.attr=Hk.data,Hk.removeAttr=Hk.removeData;var Vk=function(g){var x=this;g=de({},g);var T=g.container;T&&!U(T)&&U(T[0])&&(T=T[0]);var L=T?T._cyreg:null;L=L||{},L&&L.cy&&(L.cy.destroy(),L={});var O=L.readies=L.readies||[];T&&(T._cyreg=L),L.cy=x;var P=R!==void 0&&T!==void 0&&!g.headless,$=g;$.layout=de({name:P?"grid":"null"},$.layout),$.renderer=de({name:P?"canvas":"null"},$.renderer);var q=function(ht,dt,Lt){return dt!==void 0?dt:Lt!==void 0?Lt:ht},S=this._private={container:T,ready:!1,options:$,elements:new $f(this),listeners:[],aniEles:new $f(this),data:$.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:q(!0,$.zoomingEnabled),userZoomingEnabled:q(!0,$.userZoomingEnabled),panningEnabled:q(!0,$.panningEnabled),userPanningEnabled:q(!0,$.userPanningEnabled),boxSelectionEnabled:q(!0,$.boxSelectionEnabled),autolock:q(!1,$.autolock,$.autolockNodes),autoungrabify:q(!1,$.autoungrabify,$.autoungrabifyNodes),autounselectify:q(!1,$.autounselectify),styleEnabled:$.styleEnabled===void 0?P:$.styleEnabled,zoom:X($.zoom)?$.zoom:1,pan:{x:ut($.pan)&&X($.pan.x)?$.pan.x:0,y:ut($.pan)&&X($.pan.y)?$.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:q(250,$.multiClickDebounceTime)};this.createEmitter(),this.selectionType($.selectionType),this.zoomRange({min:$.minZoom,max:$.maxZoom});var V=function(ht,dt){var Lt=ht.some(Ht);if(Lt)return ex.all(ht).then(dt);dt(ht)};S.styleEnabled&&x.setStyle([]);var Y=de({},$,$.renderer);x.initRenderer(Y);var rt=function(ht,dt,Lt){x.notifications(!1);var kt=x.mutableElements();kt.length>0&&kt.remove(),ht!=null&&(ut(ht)||ft(ht))&&x.add(ht),x.one("layoutready",function(Pt){x.notifications(!0),x.emit(Pt),x.one("load",dt),x.emitAndNotify("load")}).one("layoutstop",function(){x.one("done",Lt),x.emit("done")});var Dt=de({},x._private.options.layout);Dt.eles=x.elements(),x.layout(Dt).run()};V([$.style,$.elements],function(ot){var ht=ot[0],dt=ot[1];S.styleEnabled&&x.style().append(ht),rt(dt,function(){x.startAnimationLoop(),S.ready=!0,yt($.ready)&&x.on("ready",$.ready);for(var Lt=0;Lt0,q=zd(g.boundingBox?g.boundingBox:{x1:0,y1:0,w:x.width(),h:x.height()}),S;if(Tt(g.roots))S=g.roots;else if(ft(g.roots)){for(var V=[],Y=0;Y0;){var bn=we(),ze=ge(bn,ie);if(ze)bn.outgoers().filter(function(Ci){return Ci.isNode()&&T.has(Ci)}).forEach(Fe);else if(ze===null){Sc("Detected double maximal shift for node `"+bn.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}Gt();var Ge=0;if(g.avoidOverlap)for(var En=0;En0&&kt[0].length<=3?qs/2:0),jn=2*Math.PI/kt[qi].length*Si;return qi===0&&kt[0].length===1&&(Qt=1),{x:vi.x+Qt*Math.cos(jn),y:vi.y+Qt*Math.sin(jn)}}else{var Tr={x:vi.x+(Si+1-(Ui+1)/2)*Va,y:(qi+1)*Qs};return Tr}};return T.nodes().layoutPositions(this,g,Ea),this};var zJ={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(g,x){return!0},ready:void 0,stop:void 0,transform:function(g,x){return x}};function pC(y){this.options=de({},zJ,y)}pC.prototype.run=function(){var y=this.options,g=y,x=y.cy,T=g.eles,L=g.counterclockwise!==void 0?!g.counterclockwise:g.clockwise,O=T.nodes().not(":parent");g.sort&&(O=O.sort(g.sort));for(var P=zd(g.boundingBox?g.boundingBox:{x1:0,y1:0,w:x.width(),h:x.height()}),$={x:P.x1+P.w/2,y:P.y1+P.h/2},q=g.sweep===void 0?2*Math.PI-2*Math.PI/O.length:g.sweep,S=q/Math.max(1,O.length-1),V,Y=0,rt=0;rt1&&g.avoidOverlap){Y*=1.75;var kt=Math.cos(S)-Math.cos(0),Dt=Math.sin(S)-Math.sin(0),Pt=Math.sqrt(Y*Y/(kt*kt+Dt*Dt));V=Math.max(Pt,V)}var $t=function(Yt,qt){var ne=g.startAngle+qt*S*(L?1:-1),Gt=V*Math.cos(ne),ge=V*Math.sin(ne),be={x:$.x+Gt,y:$.y+ge};return be};return T.nodes().layoutPositions(this,g,$t),this};var qJ={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(g){return g.degree()},levelWidth:function(g){return g.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(g,x){return!0},ready:void 0,stop:void 0,transform:function(g,x){return x}};function $B(y){this.options=de({},qJ,y)}$B.prototype.run=function(){for(var y=this.options,g=y,x=g.counterclockwise!==void 0?!g.counterclockwise:g.clockwise,T=y.cy,L=g.eles,O=L.nodes().not(":parent"),P=zd(g.boundingBox?g.boundingBox:{x1:0,y1:0,w:T.width(),h:T.height()}),$={x:P.x1+P.w/2,y:P.y1+P.h/2},q=[],S=0,V=0;V0){var Zt=Math.abs(Dt[0].value-$t.value);Zt>=Lt&&(Dt=[],kt.push(Dt))}Dt.push($t)}var Yt=S+g.minNodeSpacing;if(!g.avoidOverlap){var qt=kt.length>0&&kt[0].length>1,ne=Math.min(P.w,P.h)/2-Yt,Gt=ne/(kt.length+qt?1:0);Yt=Math.min(Yt,Gt)}for(var ge=0,be=0;be1&&g.avoidOverlap){var bn=Math.cos(we)-Math.cos(0),ze=Math.sin(we)-Math.sin(0),Ge=Math.sqrt(Yt*Yt/(bn*bn+ze*ze));ge=Math.max(Ge,ge)}ie.r=ge,ge+=Yt}if(g.equidistant){for(var En=0,In=0,Yn=0;Yn=y.numIter||(XJ(T,y),T.temperature=T.temperature*y.coolingFactor,T.temperature=y.animationThreshold&&O(),Bf(Y)}};V()}else{for(;S;)S=P(q),q++;HB(T,y),$()}return this},bC.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},bC.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var VJ=function(g,x,T){for(var L=T.eles.edges(),O=T.eles.nodes(),P={isCompound:g.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:O.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:L.size(),temperature:T.initialTemp,clientWidth:g.width(),clientHeight:g.width(),boundingBox:zd(T.boundingBox?T.boundingBox:{x1:0,y1:0,w:g.width(),h:g.height()})},$=T.eles.components(),q={},S=0;S<$.length;S++)for(var V=$[S],Y=0;Y0){P.graphSet.push(qt);for(var S=0;SL.count?0:L.graph},UJ=function y(g,x,T,L){var O=L.graphSet[T];if(-10)var Y=L.nodeOverlap*V,rt=Math.sqrt($*$+q*q),ot=Y*$/rt,ht=Y*q/rt;else var dt=wC(g,$,q),Lt=wC(x,-1*$,-1*q),kt=Lt.x-dt.x,Dt=Lt.y-dt.y,Pt=kt*kt+Dt*Dt,rt=Math.sqrt(Pt),Y=(g.nodeRepulsion+x.nodeRepulsion)/Pt,ot=Y*kt/rt,ht=Y*Dt/rt;g.isLocked||(g.offsetX-=ot,g.offsetY-=ht),x.isLocked||(x.offsetX+=ot,x.offsetY+=ht)}},JJ=function(g,x,T,L){if(T>0)var O=g.maxX-x.minX;else var O=x.maxX-g.minX;if(L>0)var P=g.maxY-x.minY;else var P=x.maxY-g.minY;return O>=0&&P>=0?Math.sqrt(O*O+P*P):0},wC=function(g,x,T){var L=g.positionX,O=g.positionY,P=g.height||1,$=g.width||1,q=T/x,S=P/$,V={};return x===0&&0T?(V.x=L,V.y=O+P/2,V):0x&&-1*S<=q&&q<=S?(V.x=L-$/2,V.y=O-$*T/2/x,V):0=S)?(V.x=L+P*x/2/T,V.y=O+P/2,V):(0>T&&(q<=-1*S||q>=S)&&(V.x=L-P*x/2/T,V.y=O-P/2),V)},ttt=function(g,x){for(var T=0;TT){var Lt=x.gravity*ot/dt,kt=x.gravity*ht/dt;rt.offsetX+=Lt,rt.offsetY+=kt}}}}},ntt=function(g,x){var T=[],L=0,O=-1;for(T.push.apply(T,g.graphSet[0]),O+=g.graphSet[0].length;L<=O;){var P=T[L++],$=g.idToIndex[P],q=g.layoutNodes[$],S=q.children;if(0T)var O={x:T*g/L,y:T*x/L};else var O={x:g,y:x};return O},stt=function y(g,x){var T=g.parentId;if(T!=null){var L=x.layoutNodes[x.idToIndex[T]],O=!1;if((L.maxX==null||g.maxX+L.padRight>L.maxX)&&(L.maxX=g.maxX+L.padRight,O=!0),(L.minX==null||g.minX-L.padLeftL.maxY)&&(L.maxY=g.maxY+L.padBottom,O=!0),(L.minY==null||g.minY-L.padTopkt&&(ht+=Lt+x.componentSpacing,ot=0,dt=0,Lt=0)}}},att={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(g){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(g,x){return!0},ready:void 0,stop:void 0,transform:function(g,x){return x}};function VB(y){this.options=de({},att,y)}VB.prototype.run=function(){var y=this.options,g=y,x=y.cy,T=g.eles,L=T.nodes().not(":parent");g.sort&&(L=L.sort(g.sort));var O=zd(g.boundingBox?g.boundingBox:{x1:0,y1:0,w:x.width(),h:x.height()});if(O.h===0||O.w===0)T.nodes().layoutPositions(this,g,function(rr){return{x:O.x1,y:O.y1}});else{var P=L.size(),$=Math.sqrt(P*O.h/O.w),q=Math.round($),S=Math.round(O.w/O.h*$),V=function(wr){if(wr==null)return Math.min(q,S);var ur=Math.min(q,S);ur==q?q=wr:S=wr},Y=function(wr){if(wr==null)return Math.max(q,S);var ur=Math.max(q,S);ur==q?q=wr:S=wr},rt=g.rows,ot=g.cols!=null?g.cols:g.columns;if(rt!=null&&ot!=null)q=rt,S=ot;else if(rt!=null&&ot==null)q=rt,S=Math.ceil(P/q);else if(rt==null&&ot!=null)S=ot,q=Math.ceil(P/S);else if(S*q>P){var ht=V(),dt=Y();(ht-1)*dt>=P?V(ht-1):(dt-1)*ht>=P&&Y(dt-1)}else for(;S*q=P?Y(kt+1):V(Lt+1)}var Dt=O.w/S,Pt=O.h/q;if(g.condense&&(Dt=0,Pt=0),g.avoidOverlap)for(var $t=0;$t=S&&(bn=0,we++)},Ge={},En=0;En(bn=GK(y,g,ze[Ge],ze[Ge+1],ze[Ge+2],ze[Ge+3])))return Lt(qt,bn),!0}else if(Gt.edgeType==="bezier"||Gt.edgeType==="multibezier"||Gt.edgeType==="self"||Gt.edgeType==="compound"){for(var ze=Gt.allpts,Ge=0;Ge+5(bn=VK(y,g,ze[Ge],ze[Ge+1],ze[Ge+2],ze[Ge+3],ze[Ge+4],ze[Ge+5])))return Lt(qt,bn),!0}for(var En=En||ne.source,In=In||ne.target,Yn=L.getArrowWidth(ge,be),Sn=[{name:"source",x:Gt.arrowStartX,y:Gt.arrowStartY,angle:Gt.srcArrowAngle},{name:"target",x:Gt.arrowEndX,y:Gt.arrowEndY,angle:Gt.tgtArrowAngle},{name:"mid-source",x:Gt.midX,y:Gt.midY,angle:Gt.midsrcArrowAngle},{name:"mid-target",x:Gt.midX,y:Gt.midY,angle:Gt.midtgtArrowAngle}],Ge=0;Ge0&&(kt(En),kt(In))}function Pt(qt,ne,Gt){return yp(qt,ne,Gt)}function $t(qt,ne){var Gt=qt._private,ge=rt,be;ne?be=ne+"-":be="",qt.boundingBox();var ie=Gt.labelBounds[ne||"main"],Fe=qt.pstyle(be+"label").value,we=qt.pstyle("text-events").strValue==="yes";if(!(!we||!Fe)){var bn=Pt(Gt.rscratch,"labelX",ne),ze=Pt(Gt.rscratch,"labelY",ne),Ge=Pt(Gt.rscratch,"labelAngle",ne),En=qt.pstyle(be+"text-margin-x").pfValue,In=qt.pstyle(be+"text-margin-y").pfValue,Yn=ie.x1-ge-En,Sn=ie.x2+ge-En,Wn=ie.y1-ge-In,rr=ie.y2+ge-In;if(Ge){var wr=Math.cos(Ge),ur=Math.sin(Ge),er=function(Ea,Ci){return Ea=Ea-bn,Ci=Ci-ze,{x:Ea*wr-Ci*ur+bn,y:Ea*ur+Ci*wr+ze}},vn=er(Yn,Wn),gr=er(Yn,rr),fr=er(Sn,Wn),Jr=er(Sn,rr),vi=[vn.x+En,vn.y+In,fr.x+En,fr.y+In,Jr.x+En,Jr.y+In,gr.x+En,gr.y+In];if(qd(y,g,vi))return Lt(qt),!0}else if(Q5(ie,y,g))return Lt(qt),!0}}for(var Zt=P.length-1;Zt>=0;Zt--){var Yt=P[Zt];Yt.isNode()?kt(Yt)||$t(Yt):Dt(Yt)||$t(Yt)||$t(Yt,"source")||$t(Yt,"target")}return $},D3.getAllInBox=function(y,g,x,T){var L=this.getCachedZSortedEles().interactive,O=[],P=Math.min(y,x),$=Math.max(y,x),q=Math.min(g,T),S=Math.max(g,T);y=P,x=$,g=q,T=S;for(var V=zd({x1:y,y1:g,x2:x,y2:T}),Y=0;Y0?Math.max(Yi-Fo,0):Math.min(Yi+Fo,0)},Fe=ie(ge,ne),we=ie(be,Gt),bn=!1;Dt===S?kt=Math.abs(Fe)>Math.abs(we)?L:T:Dt===q||Dt===$?(kt=T,bn=!0):(Dt===O||Dt===P)&&(kt=L,bn=!0);var ze=kt===T,Ge=ze?we:Fe,En=ze?be:ge,In=uN(En),Yn=!1;!(bn&&($t||Yt))&&(Dt===$&&En<0||Dt===q&&En>0||Dt===O&&En>0||Dt===P&&En<0)&&(In*=-1,Ge=In*Math.abs(Ge),Yn=!0);var Sn;if($t){var Wn=Zt<0?1+Zt:Zt;Sn=Wn*Ge}else{var rr=Zt<0?Ge:0;Sn=rr+Zt*In}var wr=function(Yi){return Math.abs(Yi)=Math.abs(Ge)},ur=wr(Sn),er=wr(Math.abs(Ge)-Math.abs(Sn)),vn=ur||er;if(vn&&!Yn)if(ze){var gr=Math.abs(En)<=rt/2,fr=Math.abs(ge)<=ot/2;if(gr){var Jr=(V.x1+V.x2)/2,vi=V.y1,Xs=V.y2;x.segpts=[Jr,vi,Jr,Xs]}else if(fr){var Ea=(V.y1+V.y2)/2,Ci=V.x1,hi=V.x2;x.segpts=[Ci,Ea,hi,Ea]}else x.segpts=[V.x1,V.y2]}else{var gs=Math.abs(En)<=Y/2,qi=Math.abs(be)<=ht/2;if(gs){var Si=(V.y1+V.y2)/2,Ui=V.x1,Va=V.x2;x.segpts=[Ui,Si,Va,Si]}else if(qi){var Qs=(V.x1+V.x2)/2,qs=V.y1,Tr=V.y2;x.segpts=[Qs,qs,Qs,Tr]}else x.segpts=[V.x2,V.y1]}else if(ze){var Qt=V.y1+Sn+(Lt?rt/2*In:0),jn=V.x1,Sr=V.x2;x.segpts=[jn,Qt,Sr,Qt]}else{var ir=V.x1+Sn+(Lt?Y/2*In:0),sr=V.y1,Ia=V.y2;x.segpts=[ir,sr,ir,Ia]}},od.tryToCorrectInvalidPoints=function(y,g){var x=y._private.rscratch;if(x.edgeType==="bezier"){var T=g.srcPos,L=g.tgtPos,O=g.srcW,P=g.srcH,$=g.tgtW,q=g.tgtH,S=g.srcShape,V=g.tgtShape,Y=!X(x.startX)||!X(x.startY),rt=!X(x.arrowStartX)||!X(x.arrowStartY),ot=!X(x.endX)||!X(x.endY),ht=!X(x.arrowEndX)||!X(x.arrowEndY),dt=3,Lt=this.getArrowWidth(y.pstyle("width").pfValue,y.pstyle("arrow-scale").value)*this.arrowShapeWidth,kt=dt*Lt,Dt=C3({x:x.ctrlpts[0],y:x.ctrlpts[1]},{x:x.startX,y:x.startY}),Pt=Dtwe.poolIndex()){var bn=Fe;Fe=we,we=bn}var ze=Gt.srcPos=Fe.position(),Ge=Gt.tgtPos=we.position(),En=Gt.srcW=Fe.outerWidth(),In=Gt.srcH=Fe.outerHeight(),Yn=Gt.tgtW=we.outerWidth(),Sn=Gt.tgtH=we.outerHeight(),Wn=Gt.srcShape=x.nodeShapes[g.getNodeShape(Fe)],rr=Gt.tgtShape=x.nodeShapes[g.getNodeShape(we)];Gt.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var wr=0;wr0){var gr=O,fr=_3(gr,K5(x)),Jr=_3(gr,K5(vn)),vi=fr;if(Jr2){var Xs=_3(gr,{x:vn[2],y:vn[3]});Xs0){var jn=P,Sr=_3(jn,K5(x)),ir=_3(jn,K5(Qt)),sr=Sr;if(ir2){var Ia=_3(jn,{x:Qt[2],y:Qt[3]});Ia=ht||qt){Lt={cp:$t,segment:Yt};break}}if(Lt)break}var ne=Lt.cp,Gt=Lt.segment,ge=(ht-kt)/Gt.length,be=Gt.t1-Gt.t0,ie=ot?Gt.t0+be*ge:Gt.t1-be*ge;ie=_k(0,ie,1),g=X5(ne.p0,ne.p1,ne.p2,ie),rt=JB(ne.p0,ne.p1,ne.p2,ie);break}case"straight":case"segments":case"haystack":{for(var Fe=0,we,bn,ze,Ge,En=T.allpts.length,In=0;In+3=ht));In+=2);var Yn=ht-bn,Sn=Yn/we;Sn=_k(0,Sn,1),g=PK(ze,Ge,Sn),rt=ZB(ze,Ge);break}}P("labelX",Y,g.x),P("labelY",Y,g.y),P("labelAutoAngle",Y,rt)}};S("source"),S("target"),this.applyLabelDimensions(y)}},Tp.applyLabelDimensions=function(y){this.applyPrefixedLabelDimensions(y),y.isEdge()&&(this.applyPrefixedLabelDimensions(y,"source"),this.applyPrefixedLabelDimensions(y,"target"))},Tp.applyPrefixedLabelDimensions=function(y,g){var x=y._private,T=this.getLabelText(y,g),L=this.calculateLabelDimensions(y,T),O=y.pstyle("line-height").pfValue,P=y.pstyle("text-wrap").strValue,$=yp(x.rscratch,"labelWrapCachedLines",g)||[],q=P!=="wrap"?1:Math.max($.length,1),S=L.height/q,V=S*O,Y=L.width,rt=L.height+(q-1)*(O-1)*S;mm(x.rstyle,"labelWidth",g,Y),mm(x.rscratch,"labelWidth",g,Y),mm(x.rstyle,"labelHeight",g,rt),mm(x.rscratch,"labelHeight",g,rt),mm(x.rscratch,"labelLineHeight",g,V)},Tp.getLabelText=function(y,g){var x=y._private,T=g?g+"-":"",L=y.pstyle(T+"label").strValue,O=y.pstyle("text-transform").value,P=function(Yn,Sn){return Sn?(mm(x.rscratch,Yn,g,Sn),Sn):yp(x.rscratch,Yn,g)};if(!L)return"";O=="none"||(O=="uppercase"?L=L.toUpperCase():O=="lowercase"&&(L=L.toLowerCase()));var $=y.pstyle("text-wrap").value;if($==="wrap"){var q=P("labelKey");if(q!=null&&P("labelWrapKey")===q)return P("labelWrapCachedText");for(var S="​",V=L.split(` -`),Y=y.pstyle("text-max-width").pfValue,rt=y.pstyle("text-overflow-wrap").value,ot=rt==="anywhere",ht=[],dt=/[\s\u200b]+/,Lt=ot?"":" ",kt=0;ktY){for(var Yt=Dt.split(dt),qt="",ne=0;neFe)break;we+=L[Ge],Ge===L.length-1&&(ze=!0)}return ze||(we+=bn),we}return L},Tp.getLabelJustification=function(y){var g=y.pstyle("text-justification").strValue,x=y.pstyle("text-halign").strValue;if(g==="auto")if(y.isNode())switch(x){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return g},Tp.calculateLabelDimensions=function(y,g){var x=this,T=rd(g,y._private.labelDimsKey),L=x.labelDimCache||(x.labelDimCache=[]),O=L[T];if(O!=null)return O;var P=0,$=y.pstyle("font-style").strValue,q=y.pstyle("font-size").pfValue,S=y.pstyle("font-family").strValue,V=y.pstyle("font-weight").strValue,Y=this.labelCalcCanvas,rt=this.labelCalcCanvasContext;if(!Y){Y=this.labelCalcCanvas=document.createElement("canvas"),rt=this.labelCalcCanvasContext=Y.getContext("2d");var ot=Y.style;ot.position="absolute",ot.left="-9999px",ot.top="-9999px",ot.zIndex="-1",ot.visibility="hidden",ot.pointerEvents="none"}rt.font="".concat($," ").concat(V," ").concat(q,"px ").concat(S);for(var ht=0,dt=0,Lt=g.split(` -`),kt=0;kt1&&arguments[1]!==void 0?arguments[1]:!0;if(g.merge(P),$)for(var q=0;q=y.desktopTapThreshold2}var mw=T(Qt);qf&&(y.hoverData.tapholdCancelled=!0);var Lm=function(){var Yb=y.hoverData.dragDelta=y.hoverData.dragDelta||[];Yb.length===0?(Yb.push(Ja[0]),Yb.push(Ja[1])):(Yb[0]+=Ja[0],Yb[1]+=Ja[1])};Sr=!0,x(Za,["mousemove","vmousemove","tapdrag"],Qt,{x:$r[0],y:$r[1]});var xx=function(){y.data.bgActivePosistion=void 0,y.hoverData.selecting||ir.emit({originalEvent:Qt,type:"boxstart",position:{x:$r[0],y:$r[1]}}),Pc[4]=1,y.hoverData.selecting=!0,y.redrawHint("select",!0),y.redraw()};if(y.hoverData.which===3){if(qf){var F3={originalEvent:Qt,type:"cxtdrag",position:{x:$r[0],y:$r[1]}};Ta?Ta.emit(F3):ir.emit(F3),y.hoverData.cxtDragged=!0,(!y.hoverData.cxtOver||Za!==y.hoverData.cxtOver)&&(y.hoverData.cxtOver&&y.hoverData.cxtOver.emit({originalEvent:Qt,type:"cxtdragout",position:{x:$r[0],y:$r[1]}}),y.hoverData.cxtOver=Za,Za&&Za.emit({originalEvent:Qt,type:"cxtdragover",position:{x:$r[0],y:$r[1]}}))}}else if(y.hoverData.dragging){if(Sr=!0,ir.panningEnabled()&&ir.userPanningEnabled()){var kx;if(y.hoverData.justStartedPan){var SC=y.hoverData.mdownPos;kx={x:($r[0]-SC[0])*sr,y:($r[1]-SC[1])*sr},y.hoverData.justStartedPan=!1}else kx={x:Ja[0]*sr,y:Ja[1]*sr};ir.panBy(kx),ir.emit("dragpan"),y.hoverData.dragged=!0}$r=y.projectIntoViewport(Qt.clientX,Qt.clientY)}else if(Pc[4]==1&&(Ta==null||Ta.pannable())){if(qf){if(!y.hoverData.dragging&&ir.boxSelectionEnabled()&&(mw||!ir.panningEnabled()||!ir.userPanningEnabled()))xx();else if(!y.hoverData.selecting&&ir.panningEnabled()&&ir.userPanningEnabled()){var N3=L(Ta,y.hoverData.downs);N3&&(y.hoverData.dragging=!0,y.hoverData.justStartedPan=!0,Pc[4]=0,y.data.bgActivePosistion=K5(Yi),y.redrawHint("select",!0),y.redraw())}Ta&&Ta.pannable()&&Ta.active()&&Ta.unactivate()}}else{if(Ta&&Ta.pannable()&&Ta.active()&&Ta.unactivate(),(!Ta||!Ta.grabbed())&&Za!=mc&&(mc&&x(mc,["mouseout","tapdragout"],Qt,{x:$r[0],y:$r[1]}),Za&&x(Za,["mouseover","tapdragover"],Qt,{x:$r[0],y:$r[1]}),y.hoverData.last=Za),Ta)if(qf){if(ir.boxSelectionEnabled()&&mw)Ta&&Ta.grabbed()&&(dt(ml),Ta.emit("freeon"),ml.emit("free"),y.dragData.didDrag&&(Ta.emit("dragfreeon"),ml.emit("dragfree"))),xx();else if(Ta&&Ta.grabbed()&&y.nodeIsDraggable(Ta)){var Hd=!y.dragData.didDrag;Hd&&y.redrawHint("eles",!0),y.dragData.didDrag=!0,y.hoverData.draggingEles||ot(ml,{inDragLayer:!0});var y1={x:0,y:0};if(X(Ja[0])&&X(Ja[1])&&(y1.x+=Ja[0],y1.y+=Ja[1],Hd)){var Vd=y.hoverData.dragDelta;Vd&&X(Vd[0])&&X(Vd[1])&&(y1.x+=Vd[0],y1.y+=Vd[1])}y.hoverData.draggingEles=!0,ml.silentShift(y1).emit("position drag"),y.redrawHint("drag",!0),y.redraw()}}else Lm();Sr=!0}if(Pc[2]=$r[0],Pc[3]=$r[1],Sr)return Qt.stopPropagation&&Qt.stopPropagation(),Qt.preventDefault&&Qt.preventDefault(),!1}},!1);var Gt,ge,be;y.registerBinding(window,"mouseup",function(Qt){var jn=y.hoverData.capture;if(jn){y.hoverData.capture=!1;var Sr=y.cy,ir=y.projectIntoViewport(Qt.clientX,Qt.clientY),sr=y.selection,Ia=y.findNearestElement(ir[0],ir[1],!0,!1),$r=y.dragData.possibleDragElements,Yi=y.hoverData.down,Fo=T(Qt);if(y.data.bgActivePosistion&&(y.redrawHint("select",!0),y.redraw()),y.hoverData.tapholdCancelled=!0,y.data.bgActivePosistion=void 0,Yi&&Yi.unactivate(),y.hoverData.which===3){var Pc={originalEvent:Qt,type:"cxttapend",position:{x:ir[0],y:ir[1]}};if(Yi?Yi.emit(Pc):Sr.emit(Pc),!y.hoverData.cxtDragged){var Za={originalEvent:Qt,type:"cxttap",position:{x:ir[0],y:ir[1]}};Yi?Yi.emit(Za):Sr.emit(Za)}y.hoverData.cxtDragged=!1,y.hoverData.which=null}else if(y.hoverData.which===1){if(x(Ia,["mouseup","tapend","vmouseup"],Qt,{x:ir[0],y:ir[1]}),!y.dragData.didDrag&&!y.hoverData.dragged&&!y.hoverData.selecting&&!y.hoverData.isOverThresholdDrag&&(x(Yi,["click","tap","vclick"],Qt,{x:ir[0],y:ir[1]}),ge=!1,Qt.timeStamp-be<=Sr.multiClickDebounceTime()?(Gt&&clearTimeout(Gt),ge=!0,be=null,x(Yi,["dblclick","dbltap","vdblclick"],Qt,{x:ir[0],y:ir[1]})):(Gt=setTimeout(function(){ge||x(Yi,["oneclick","onetap","voneclick"],Qt,{x:ir[0],y:ir[1]})},Sr.multiClickDebounceTime()),be=Qt.timeStamp)),Yi==null&&!y.dragData.didDrag&&!y.hoverData.selecting&&!y.hoverData.dragged&&!T(Qt)&&(Sr.$(g).unselect(["tapunselect"]),$r.length>0&&y.redrawHint("eles",!0),y.dragData.possibleDragElements=$r=Sr.collection()),Ia==Yi&&!y.dragData.didDrag&&!y.hoverData.selecting&&Ia!=null&&Ia._private.selectable&&(y.hoverData.dragging||(Sr.selectionType()==="additive"||Fo?Ia.selected()?Ia.unselect(["tapunselect"]):Ia.select(["tapselect"]):Fo||(Sr.$(g).unmerge(Ia).unselect(["tapunselect"]),Ia.select(["tapselect"]))),y.redrawHint("eles",!0)),y.hoverData.selecting){var mc=Sr.collection(y.getAllInBox(sr[0],sr[1],sr[2],sr[3]));y.redrawHint("select",!0),mc.length>0&&y.redrawHint("eles",!0),Sr.emit({type:"boxend",originalEvent:Qt,position:{x:ir[0],y:ir[1]}});var Ta=function(qf){return qf.selectable()&&!qf.selected()};Sr.selectionType()==="additive"||Fo||Sr.$(g).unmerge(mc).unselect(),mc.emit("box").stdFilter(Ta).select().emit("boxselect"),y.redraw()}if(y.hoverData.dragging&&(y.hoverData.dragging=!1,y.redrawHint("select",!0),y.redrawHint("eles",!0),y.redraw()),!sr[4]){y.redrawHint("drag",!0),y.redrawHint("eles",!0);var Ja=Yi&&Yi.grabbed();dt($r),Ja&&(Yi.emit("freeon"),$r.emit("free"),y.dragData.didDrag&&(Yi.emit("dragfreeon"),$r.emit("dragfree")))}}sr[4]=0,y.hoverData.down=null,y.hoverData.cxtStarted=!1,y.hoverData.draggingEles=!1,y.hoverData.selecting=!1,y.hoverData.isOverThresholdDrag=!1,y.dragData.didDrag=!1,y.hoverData.dragged=!1,y.hoverData.dragDelta=[],y.hoverData.mdownPos=null,y.hoverData.mdownGPos=null}},!1);var ie=function(Qt){if(!y.scrollingPage){var jn=y.cy,Sr=jn.zoom(),ir=jn.pan(),sr=y.projectIntoViewport(Qt.clientX,Qt.clientY),Ia=[sr[0]*Sr+ir.x,sr[1]*Sr+ir.y];if(y.hoverData.draggingEles||y.hoverData.dragging||y.hoverData.cxtStarted||qt()){Qt.preventDefault();return}if(jn.panningEnabled()&&jn.userPanningEnabled()&&jn.zoomingEnabled()&&jn.userZoomingEnabled()){Qt.preventDefault(),y.data.wheelZooming=!0,clearTimeout(y.data.wheelTimeout),y.data.wheelTimeout=setTimeout(function(){y.data.wheelZooming=!1,y.redrawHint("eles",!0),y.redraw()},150);var $r;Qt.deltaY!=null?$r=Qt.deltaY/-250:Qt.wheelDeltaY!=null?$r=Qt.wheelDeltaY/1e3:$r=Qt.wheelDelta/1e3,$r=$r*y.wheelSensitivity;var Yi=Qt.deltaMode===1;Yi&&($r*=33);var Fo=jn.zoom()*Math.pow(10,$r);Qt.type==="gesturechange"&&(Fo=y.gestureStartZoom*Qt.scale),jn.zoom({level:Fo,renderedPosition:{x:Ia[0],y:Ia[1]}}),jn.emit(Qt.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};y.registerBinding(y.container,"wheel",ie,!0),y.registerBinding(window,"scroll",function(Qt){y.scrollingPage=!0,clearTimeout(y.scrollingPageTimeout),y.scrollingPageTimeout=setTimeout(function(){y.scrollingPage=!1},250)},!0),y.registerBinding(y.container,"gesturestart",function(Qt){y.gestureStartZoom=y.cy.zoom(),y.hasTouchStarted||Qt.preventDefault()},!0),y.registerBinding(y.container,"gesturechange",function(Tr){y.hasTouchStarted||ie(Tr)},!0),y.registerBinding(y.container,"mouseout",function(Qt){var jn=y.projectIntoViewport(Qt.clientX,Qt.clientY);y.cy.emit({originalEvent:Qt,type:"mouseout",position:{x:jn[0],y:jn[1]}})},!1),y.registerBinding(y.container,"mouseover",function(Qt){var jn=y.projectIntoViewport(Qt.clientX,Qt.clientY);y.cy.emit({originalEvent:Qt,type:"mouseover",position:{x:jn[0],y:jn[1]}})},!1);var Fe,we,bn,ze,Ge,En,In,Yn,Sn,Wn,rr,wr,ur,er=function(Qt,jn,Sr,ir){return Math.sqrt((Sr-Qt)*(Sr-Qt)+(ir-jn)*(ir-jn))},vn=function(Qt,jn,Sr,ir){return(Sr-Qt)*(Sr-Qt)+(ir-jn)*(ir-jn)},gr;y.registerBinding(y.container,"touchstart",gr=function(Qt){if(y.hasTouchStarted=!0,!!ne(Qt)){kt(),y.touchData.capture=!0,y.data.bgActivePosistion=void 0;var jn=y.cy,Sr=y.touchData.now,ir=y.touchData.earlier;if(Qt.touches[0]){var sr=y.projectIntoViewport(Qt.touches[0].clientX,Qt.touches[0].clientY);Sr[0]=sr[0],Sr[1]=sr[1]}if(Qt.touches[1]){var sr=y.projectIntoViewport(Qt.touches[1].clientX,Qt.touches[1].clientY);Sr[2]=sr[0],Sr[3]=sr[1]}if(Qt.touches[2]){var sr=y.projectIntoViewport(Qt.touches[2].clientX,Qt.touches[2].clientY);Sr[4]=sr[0],Sr[5]=sr[1]}if(Qt.touches[1]){y.touchData.singleTouchMoved=!0,dt(y.dragData.touchDragEles);var Ia=y.findContainerClientCoords();Sn=Ia[0],Wn=Ia[1],rr=Ia[2],wr=Ia[3],Fe=Qt.touches[0].clientX-Sn,we=Qt.touches[0].clientY-Wn,bn=Qt.touches[1].clientX-Sn,ze=Qt.touches[1].clientY-Wn,ur=0<=Fe&&Fe<=rr&&0<=bn&&bn<=rr&&0<=we&&we<=wr&&0<=ze&&ze<=wr;var $r=jn.pan(),Yi=jn.zoom();Ge=er(Fe,we,bn,ze),En=vn(Fe,we,bn,ze),In=[(Fe+bn)/2,(we+ze)/2],Yn=[(In[0]-$r.x)/Yi,(In[1]-$r.y)/Yi];var Fo=200,Pc=Fo*Fo;if(En=1){for(var _p=y.touchData.startPosition=[],Hf=0;Hf=y.touchTapThreshold2}if(jn&&y.touchData.cxt){Qt.preventDefault();var _p=Qt.touches[0].clientX-Sn,Hf=Qt.touches[0].clientY-Wn,_g=Qt.touches[1].clientX-Sn,cd=Qt.touches[1].clientY-Wn,mw=vn(_p,Hf,_g,cd),Lm=mw/En,xx=150,F3=xx*xx,kx=1.5,SC=kx*kx;if(Lm>=SC||mw>=F3){y.touchData.cxt=!1,y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);var N3={originalEvent:Qt,type:"cxttapend",position:{x:sr[0],y:sr[1]}};y.touchData.start?(y.touchData.start.unactivate().emit(N3),y.touchData.start=null):ir.emit(N3)}}if(jn&&y.touchData.cxt){var N3={originalEvent:Qt,type:"cxtdrag",position:{x:sr[0],y:sr[1]}};y.data.bgActivePosistion=void 0,y.redrawHint("select",!0),y.touchData.start?y.touchData.start.emit(N3):ir.emit(N3),y.touchData.start&&(y.touchData.start._private.grabbed=!1),y.touchData.cxtDragged=!0;var Hd=y.findNearestElement(sr[0],sr[1],!0,!0);(!y.touchData.cxtOver||Hd!==y.touchData.cxtOver)&&(y.touchData.cxtOver&&y.touchData.cxtOver.emit({originalEvent:Qt,type:"cxtdragout",position:{x:sr[0],y:sr[1]}}),y.touchData.cxtOver=Hd,Hd&&Hd.emit({originalEvent:Qt,type:"cxtdragover",position:{x:sr[0],y:sr[1]}}))}else if(jn&&Qt.touches[2]&&ir.boxSelectionEnabled())Qt.preventDefault(),y.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,y.touchData.selecting||ir.emit({originalEvent:Qt,type:"boxstart",position:{x:sr[0],y:sr[1]}}),y.touchData.selecting=!0,y.touchData.didSelect=!0,Sr[4]=1,!Sr||Sr.length===0||Sr[0]===void 0?(Sr[0]=(sr[0]+sr[2]+sr[4])/3,Sr[1]=(sr[1]+sr[3]+sr[5])/3,Sr[2]=(sr[0]+sr[2]+sr[4])/3+1,Sr[3]=(sr[1]+sr[3]+sr[5])/3+1):(Sr[2]=(sr[0]+sr[2]+sr[4])/3,Sr[3]=(sr[1]+sr[3]+sr[5])/3),y.redrawHint("select",!0),y.redraw();else if(jn&&Qt.touches[1]&&!y.touchData.didSelect&&ir.zoomingEnabled()&&ir.panningEnabled()&&ir.userZoomingEnabled()&&ir.userPanningEnabled()){Qt.preventDefault(),y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);var y1=y.dragData.touchDragEles;if(y1){y.redrawHint("drag",!0);for(var Vd=0;Vd0&&!y.hoverData.draggingEles&&!y.swipePanning&&y.data.bgActivePosistion!=null&&(y.data.bgActivePosistion=void 0,y.redrawHint("select",!0),y.redraw())}},!1);var Jr;y.registerBinding(window,"touchcancel",Jr=function(Qt){var jn=y.touchData.start;y.touchData.capture=!1,jn&&jn.unactivate()});var vi,Xs,Ea,Ci;if(y.registerBinding(window,"touchend",vi=function(Qt){var jn=y.touchData.start,Sr=y.touchData.capture;if(Sr)Qt.touches.length===0&&(y.touchData.capture=!1),Qt.preventDefault();else return;var ir=y.selection;y.swipePanning=!1,y.hoverData.draggingEles=!1;var sr=y.cy,Ia=sr.zoom(),$r=y.touchData.now,Yi=y.touchData.earlier;if(Qt.touches[0]){var Fo=y.projectIntoViewport(Qt.touches[0].clientX,Qt.touches[0].clientY);$r[0]=Fo[0],$r[1]=Fo[1]}if(Qt.touches[1]){var Fo=y.projectIntoViewport(Qt.touches[1].clientX,Qt.touches[1].clientY);$r[2]=Fo[0],$r[3]=Fo[1]}if(Qt.touches[2]){var Fo=y.projectIntoViewport(Qt.touches[2].clientX,Qt.touches[2].clientY);$r[4]=Fo[0],$r[5]=Fo[1]}jn&&jn.unactivate();var Pc;if(y.touchData.cxt){if(Pc={originalEvent:Qt,type:"cxttapend",position:{x:$r[0],y:$r[1]}},jn?jn.emit(Pc):sr.emit(Pc),!y.touchData.cxtDragged){var Za={originalEvent:Qt,type:"cxttap",position:{x:$r[0],y:$r[1]}};jn?jn.emit(Za):sr.emit(Za)}y.touchData.start&&(y.touchData.start._private.grabbed=!1),y.touchData.cxt=!1,y.touchData.start=null,y.redraw();return}if(!Qt.touches[2]&&sr.boxSelectionEnabled()&&y.touchData.selecting){y.touchData.selecting=!1;var mc=sr.collection(y.getAllInBox(ir[0],ir[1],ir[2],ir[3]));ir[0]=void 0,ir[1]=void 0,ir[2]=void 0,ir[3]=void 0,ir[4]=0,y.redrawHint("select",!0),sr.emit({type:"boxend",originalEvent:Qt,position:{x:$r[0],y:$r[1]}});var Ta=function(F3){return F3.selectable()&&!F3.selected()};mc.emit("box").stdFilter(Ta).select().emit("boxselect"),mc.nonempty()&&y.redrawHint("eles",!0),y.redraw()}if(jn!=null&&jn.unactivate(),Qt.touches[2])y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);else if(!Qt.touches[1]){if(!Qt.touches[0]){if(!Qt.touches[0]){y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);var Ja=y.dragData.touchDragEles;if(jn!=null){var ml=jn._private.grabbed;dt(Ja),y.redrawHint("drag",!0),y.redrawHint("eles",!0),ml&&(jn.emit("freeon"),Ja.emit("free"),y.dragData.didDrag&&(jn.emit("dragfreeon"),Ja.emit("dragfree"))),x(jn,["touchend","tapend","vmouseup","tapdragout"],Qt,{x:$r[0],y:$r[1]}),jn.unactivate(),y.touchData.start=null}else{var qf=y.findNearestElement($r[0],$r[1],!0,!0);x(qf,["touchend","tapend","vmouseup","tapdragout"],Qt,{x:$r[0],y:$r[1]})}var Cp=y.touchData.startPosition[0]-$r[0],_p=Cp*Cp,Hf=y.touchData.startPosition[1]-$r[1],_g=Hf*Hf,cd=_p+_g,mw=cd*Ia*Ia;y.touchData.singleTouchMoved||(jn||sr.$(":selected").unselect(["tapunselect"]),x(jn,["tap","vclick"],Qt,{x:$r[0],y:$r[1]}),Xs=!1,Qt.timeStamp-Ci<=sr.multiClickDebounceTime()?(Ea&&clearTimeout(Ea),Xs=!0,Ci=null,x(jn,["dbltap","vdblclick"],Qt,{x:$r[0],y:$r[1]})):(Ea=setTimeout(function(){Xs||x(jn,["onetap","voneclick"],Qt,{x:$r[0],y:$r[1]})},sr.multiClickDebounceTime()),Ci=Qt.timeStamp)),jn!=null&&!y.dragData.didDrag&&jn._private.selectable&&mw"u"){var hi=[],gs=function(Qt){return{clientX:Qt.clientX,clientY:Qt.clientY,force:1,identifier:Qt.pointerId,pageX:Qt.pageX,pageY:Qt.pageY,radiusX:Qt.width/2,radiusY:Qt.height/2,screenX:Qt.screenX,screenY:Qt.screenY,target:Qt.target}},qi=function(Qt){return{event:Qt,touch:gs(Qt)}},Si=function(Qt){hi.push(qi(Qt))},Ui=function(Qt){for(var jn=0;jn0)return Sn[0]}return null},ot=Object.keys(Y),ht=0;ht0?rt:fN(O,P,g,x,T,L,$)},checkPoint:function(g,x,T,L,O,P,$){var q=Lk(L,O),S=2*q;if(dw(g,x,this.points,P,$,L,O-S,[0,-1],T)||dw(g,x,this.points,P,$,L-S,O,[0,-1],T))return!0;var V=L/2+2*T,Y=O/2+2*T,rt=[P-V,$-Y,P-V,$,P+V,$,P+V,$-Y];return!!(qd(g,x,rt)||S3(g,x,S,S,P+L/2-q,$+O/2-q,T)||S3(g,x,S,S,P-L/2+q,$+O/2-q,T))}}},bw.registerNodeShapes=function(){var y=this.nodeShapes={},g=this;this.generateEllipse(),this.generatePolygon("triangle",sd(3,0)),this.generateRoundPolygon("round-triangle",sd(3,0)),this.generatePolygon("rectangle",sd(4,0)),y.square=y.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var x=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",x),this.generateRoundPolygon("round-diamond",x)}this.generatePolygon("pentagon",sd(5,0)),this.generateRoundPolygon("round-pentagon",sd(5,0)),this.generatePolygon("hexagon",sd(6,0)),this.generateRoundPolygon("round-hexagon",sd(6,0)),this.generatePolygon("heptagon",sd(7,0)),this.generateRoundPolygon("round-heptagon",sd(7,0)),this.generatePolygon("octagon",sd(8,0)),this.generateRoundPolygon("round-octagon",sd(8,0));var T=new Array(20);{var L=ML(5,0),O=ML(5,Math.PI/5),P=.5*(3-Math.sqrt(5));P*=1.57;for(var $=0;$=g.deqFastCost*$t)break}else if(S){if(Dt>=g.deqCost*ot||Dt>=g.deqAvgCost*rt)break}else if(Pt>=g.deqNoDrawCost*rM)break;var Zt=g.deq(T,Lt,dt);if(Zt.length>0)for(var Yt=0;Yt0&&(g.onDeqd(T,ht),!S&&g.shouldRedraw(T,ht,Lt,dt)&&O())},$=g.priority||EL;L.beforeRender(P,$(T))}}}},dtt=function(){function y(g){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wm;p(this,y),this.idsByKey=new Gb,this.keyForId=new Gb,this.cachesByLvl=new Gb,this.lvls=[],this.getKey=g,this.doesEleInvalidateKey=x}return m(y,[{key:"getIdsFor",value:function(x){x==null&&vl("Can not get id list for null key");var T=this.idsByKey,L=this.idsByKey.get(x);return L||(L=new Y5,T.set(x,L)),L}},{key:"addIdForKey",value:function(x,T){x!=null&&this.getIdsFor(x).add(T)}},{key:"deleteIdForKey",value:function(x,T){x!=null&&this.getIdsFor(x).delete(T)}},{key:"getNumberOfIdsForKey",value:function(x){return x==null?0:this.getIdsFor(x).size}},{key:"updateKeyMappingFor",value:function(x){var T=x.id(),L=this.keyForId.get(T),O=this.getKey(x);this.deleteIdForKey(L,T),this.addIdForKey(O,T),this.keyForId.set(T,O)}},{key:"deleteKeyMappingFor",value:function(x){var T=x.id(),L=this.keyForId.get(T);this.deleteIdForKey(L,T),this.keyForId.delete(T)}},{key:"keyHasChangedFor",value:function(x){var T=x.id(),L=this.keyForId.get(T),O=this.getKey(x);return L!==O}},{key:"isInvalid",value:function(x){return this.keyHasChangedFor(x)||this.doesEleInvalidateKey(x)}},{key:"getCachesAt",value:function(x){var T=this.cachesByLvl,L=this.lvls,O=T.get(x);return O||(O=new Gb,T.set(x,O),L.push(x)),O}},{key:"getCache",value:function(x,T){return this.getCachesAt(T).get(x)}},{key:"get",value:function(x,T){var L=this.getKey(x),O=this.getCache(L,T);return O!=null&&this.updateKeyMappingFor(x),O}},{key:"getForCachedKey",value:function(x,T){var L=this.keyForId.get(x.id()),O=this.getCache(L,T);return O}},{key:"hasCache",value:function(x,T){return this.getCachesAt(T).has(x)}},{key:"has",value:function(x,T){var L=this.getKey(x);return this.hasCache(L,T)}},{key:"setCache",value:function(x,T,L){L.key=x,this.getCachesAt(T).set(x,L)}},{key:"set",value:function(x,T,L){var O=this.getKey(x);this.setCache(O,T,L),this.updateKeyMappingFor(x)}},{key:"deleteCache",value:function(x,T){this.getCachesAt(T).delete(x)}},{key:"delete",value:function(x,T){var L=this.getKey(x);this.deleteCache(L,T)}},{key:"invalidateKey",value:function(x){var T=this;this.lvls.forEach(function(L){return T.deleteCache(x,L)})}},{key:"invalidate",value:function(x){var T=x.id(),L=this.keyForId.get(T);this.deleteKeyMappingFor(x);var O=this.doesEleInvalidateKey(x);return O&&this.invalidateKey(L),O||this.getNumberOfIdsForKey(L)===0}}]),y}(),xC=25,kC=50,px=-4,iM=3,sM=7.99,gtt=8,ptt=1024,btt=1024,rR=1024,wtt=.2,vtt=.8,mtt=10,ytt=.15,xtt=.1,ktt=.9,Ett=.9,Ttt=100,Ctt=1,bx={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},_tt=Rf({getKey:null,doesEleInvalidateKey:wm,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:T3,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Kk=function(g,x){var T=this;T.renderer=g,T.onDequeues=[];var L=_tt(x);de(T,L),T.lookup=new dtt(L.getKey,L.doesEleInvalidateKey),T.setupDequeueing()},Th=Kk.prototype;Th.reasons=bx,Th.getTextureQueue=function(y){var g=this;return g.eleImgCaches=g.eleImgCaches||{},g.eleImgCaches[y]=g.eleImgCaches[y]||[]},Th.getRetiredTextureQueue=function(y){var g=this,x=g.eleImgCaches.retired=g.eleImgCaches.retired||{},T=x[y]=x[y]||[];return T},Th.getElementQueue=function(){var y=this,g=y.eleCacheQueue=y.eleCacheQueue||new Ck(function(x,T){return T.reqs-x.reqs});return g},Th.getElementKeyToQueue=function(){var y=this,g=y.eleKeyToCacheQueue=y.eleKeyToCacheQueue||{};return g},Th.getElement=function(y,g,x,T,L){var O=this,P=this.renderer,$=P.cy.zoom(),q=this.lookup;if(!g||g.w===0||g.h===0||isNaN(g.w)||isNaN(g.h)||!y.visible()||y.removed()||!O.allowEdgeTxrCaching&&y.isEdge()||!O.allowParentTxrCaching&&y.isParent())return null;if(T==null&&(T=Math.ceil(_L($*x))),T=sM||T>iM)return null;var S=Math.pow(2,T),V=g.h*S,Y=g.w*S,rt=P.eleTextBiggerThanMin(y,S);if(!this.isVisible(y,rt))return null;var ot=q.get(y,T);if(ot&&ot.invalidated&&(ot.invalidated=!1,ot.texture.invalidatedWidth-=ot.width),ot)return ot;var ht;if(V<=xC?ht=xC:V<=kC?ht=kC:ht=Math.ceil(V/kC)*kC,V>rR||Y>btt)return null;var dt=O.getTextureQueue(ht),Lt=dt[dt.length-2],kt=function(){return O.recycleTexture(ht,Y)||O.addTexture(ht,Y)};Lt||(Lt=dt[dt.length-1]),Lt||(Lt=kt()),Lt.width-Lt.usedWidthT;be--)Gt=O.getElement(y,g,x,be,bx.downscale);ge()}else return O.queueElement(y,Yt.level-1),Yt;else{var ie;if(!Pt&&!$t&&!Zt)for(var Fe=T-1;Fe>=px;Fe--){var we=q.get(y,Fe);if(we){ie=we;break}}if(Dt(ie))return O.queueElement(y,T),ie;Lt.context.translate(Lt.usedWidth,0),Lt.context.scale(S,S),this.drawElement(Lt.context,y,g,rt,!1),Lt.context.scale(1/S,1/S),Lt.context.translate(-Lt.usedWidth,0)}return ot={x:Lt.usedWidth,texture:Lt,level:T,scale:S,width:Y,height:V,scaledLabelShown:rt},Lt.usedWidth+=Math.ceil(Y+gtt),Lt.eleCaches.push(ot),q.set(y,T,ot),O.checkTextureFullness(Lt),ot},Th.invalidateElements=function(y){for(var g=0;g=wtt*y.width&&this.retireTexture(y)},Th.checkTextureFullness=function(y){var g=this,x=g.getTextureQueue(y.height);y.usedWidth/y.width>vtt&&y.fullnessChecks>=mtt?vm(x,y):y.fullnessChecks++},Th.retireTexture=function(y){var g=this,x=y.height,T=g.getTextureQueue(x),L=this.lookup;vm(T,y),y.retired=!0;for(var O=y.eleCaches,P=0;P=g)return P.retired=!1,P.usedWidth=0,P.invalidatedWidth=0,P.fullnessChecks=0,TL(P.eleCaches),P.context.setTransform(1,0,0,1,0,0),P.context.clearRect(0,0,P.width,P.height),vm(L,P),T.push(P),P}},Th.queueElement=function(y,g){var x=this,T=x.getElementQueue(),L=x.getElementKeyToQueue(),O=this.getKey(y),P=L[O];if(P)P.level=Math.max(P.level,g),P.eles.merge(y),P.reqs++,T.updateItem(P);else{var $={eles:y.spawn().merge(y),level:g,reqs:1,key:O};T.push($),L[O]=$}},Th.dequeue=function(y){for(var g=this,x=g.getElementQueue(),T=g.getElementKeyToQueue(),L=[],O=g.lookup,P=0;P0;P++){var $=x.pop(),q=$.key,S=$.eles[0],V=O.hasCache(S,$.level);if(T[q]=null,V)continue;L.push($);var Y=g.getBoundingBox(S);g.getElement(S,Y,y,$.level,bx.dequeue)}return L},Th.removeFromQueue=function(y){var g=this,x=g.getElementQueue(),T=g.getElementKeyToQueue(),L=this.getKey(y),O=T[L];O!=null&&(O.eles.length===1?(O.reqs=W5,x.updateItem(O),x.pop(),T[L]=null):O.eles.unmerge(y))},Th.onDequeue=function(y){this.onDequeues.push(y)},Th.offDequeue=function(y){vm(this.onDequeues,y)},Th.setupDequeueing=yC.setupDequeueing({deqRedrawThreshold:Ttt,deqCost:ytt,deqAvgCost:xtt,deqNoDrawCost:ktt,deqFastCost:Ett,deq:function(g,x,T){return g.dequeue(x,T)},onDeqd:function(g,x){for(var T=0;T=EC||x>Xk)return null}T.validateLayersElesOrdering(x,y);var q=T.layersByLevel,S=Math.pow(2,x),V=q[x]=q[x]||[],Y,rt=T.levelIsComplete(x,y),ot,ht=function(){var ge=function(bn){if(T.validateLayersElesOrdering(bn,y),T.levelIsComplete(bn,y))return ot=q[bn],!0},be=function(bn){if(!ot)for(var ze=x+bn;wx<=ze&&ze<=Xk&&!ge(ze);ze+=bn);};be(1),be(-1);for(var ie=V.length-1;ie>=0;ie--){var Fe=V[ie];Fe.invalid&&vm(V,Fe)}};if(!rt)ht();else return V;var dt=function(){if(!Y){Y=zd();for(var ge=0;gefpt)return null;var Fe=T.makeLayer(Y,x);if(be!=null){var we=V.indexOf(be)+1;V.splice(we,0,Fe)}else(ge.insert===void 0||ge.insert)&&V.unshift(Fe);return Fe};if(T.skipping&&!$)return null;for(var kt=null,Dt=y.length/Stt,Pt=!$,$t=0;$t=Dt||!hN(kt.bb,Zt.boundingBox()))&&(kt=Lt({insert:!0,after:kt}),!kt))return null;ot||Pt?T.queueLayer(kt,Zt):T.drawEleInLayer(kt,Zt,x,g),kt.eles.push(Zt),qt[x]=kt}return ot||(Pt?null:V)},w1.getEleLevelForLayerLevel=function(y,g){return y},w1.drawEleInLayer=function(y,g,x,T){var L=this,O=this.renderer,P=y.context,$=g.boundingBox();$.w===0||$.h===0||!g.visible()||(x=L.getEleLevelForLayerLevel(x,T),O.setImgSmoothing(P,!1),O.drawCachedElement(P,g,null,null,x,dpt),O.setImgSmoothing(P,!0))},w1.levelIsComplete=function(y,g){var x=this,T=x.layersByLevel[y];if(!T||T.length===0)return!1;for(var L=0,O=0;O0||P.invalid)return!1;L+=P.eles.length}return L===g.length},w1.validateLayersElesOrdering=function(y,g){var x=this.layersByLevel[y];if(x)for(var T=0;T0){g=!0;break}}return g},w1.invalidateElements=function(y){var g=this;y.length!==0&&(g.lastInvalidationTime=yg(),!(y.length===0||!g.haveLayers())&&g.updateElementsInLayers(y,function(T,L,O){g.invalidateLayer(T)}))},w1.invalidateLayer=function(y){if(this.lastInvalidationTime=yg(),!y.invalid){var g=y.level,x=y.eles,T=this.layersByLevel[g];vm(T,y),y.elesQueue=[],y.invalid=!0,y.replacement&&(y.replacement.invalid=!0);for(var L=0;L3&&arguments[3]!==void 0?arguments[3]:!0,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,P=this,$=g._private.rscratch;if(!(O&&!g.visible())&&!($.badLine||$.allpts==null||isNaN($.allpts[0]))){var q;x&&(q=x,y.translate(-q.x1,-q.y1));var S=O?g.pstyle("opacity").value:1,V=O?g.pstyle("line-opacity").value:1,Y=g.pstyle("curve-style").value,rt=g.pstyle("line-style").value,ot=g.pstyle("width").pfValue,ht=g.pstyle("line-cap").value,dt=S*V,Lt=S*V,kt=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:dt;Y==="straight-triangle"?(P.eleStrokeStyle(y,g,ie),P.drawEdgeTrianglePath(g,y,$.allpts)):(y.lineWidth=ot,y.lineCap=ht,P.eleStrokeStyle(y,g,ie),P.drawEdgePath(g,y,$.allpts,rt),y.lineCap="butt")},Dt=function(){L&&P.drawEdgeOverlay(y,g)},Pt=function(){L&&P.drawEdgeUnderlay(y,g)},$t=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Lt;P.drawArrowheads(y,g,ie)},Zt=function(){P.drawElementText(y,g,null,T)};y.lineJoin="round";var Yt=g.pstyle("ghost").value==="yes";if(Yt){var qt=g.pstyle("ghost-offset-x").pfValue,ne=g.pstyle("ghost-offset-y").pfValue,Gt=g.pstyle("ghost-opacity").value,ge=dt*Gt;y.translate(qt,ne),kt(ge),$t(ge),y.translate(-qt,-ne)}Pt(),kt(),$t(),Dt(),Zt(),x&&y.translate(q.x1,q.y1)}};var Ott=function(g){if(!["overlay","underlay"].includes(g))throw new Error("Invalid state");return function(x,T){if(T.visible()){var L=T.pstyle("".concat(g,"-opacity")).value;if(L!==0){var O=this,P=O.usePaths(),$=T._private.rscratch,q=T.pstyle("".concat(g,"-padding")).pfValue,S=2*q,V=T.pstyle("".concat(g,"-color")).value;x.lineWidth=S,$.edgeType==="self"&&!P?x.lineCap="butt":x.lineCap="round",O.colorStrokeStyle(x,V[0],V[1],V[2],L),O.drawEdgePath(T,x,$.allpts,"solid")}}}};vw.drawEdgeOverlay=Ott("overlay"),vw.drawEdgeUnderlay=Ott("underlay"),vw.drawEdgePath=function(y,g,x,T){var L=y._private.rscratch,O=g,P,$=!1,q=this.usePaths(),S=y.pstyle("line-dash-pattern").pfValue,V=y.pstyle("line-dash-offset").pfValue;if(q){var Y=x.join("$"),rt=L.pathCacheKey&&L.pathCacheKey===Y;rt?(P=g=L.pathCache,$=!0):(P=g=new Path2D,L.pathCacheKey=Y,L.pathCache=P)}if(O.setLineDash)switch(T){case"dotted":O.setLineDash([1,1]);break;case"dashed":O.setLineDash(S),O.lineDashOffset=V;break;case"solid":O.setLineDash([]);break}if(!$&&!L.badLine)switch(g.beginPath&&g.beginPath(),g.moveTo(x[0],x[1]),L.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var ot=2;ot+35&&arguments[5]!==void 0?arguments[5]:!0,P=this;if(T==null){if(O&&!P.eleTextBiggerThanMin(g))return}else if(T===!1)return;if(g.isNode()){var $=g.pstyle("label");if(!$||!$.value)return;var q=P.getLabelJustification(g);y.textAlign=q,y.textBaseline="bottom"}else{var S=g.element()._private.rscratch.badLine,V=g.pstyle("label"),Y=g.pstyle("source-label"),rt=g.pstyle("target-label");if(S||(!V||!V.value)&&(!Y||!Y.value)&&(!rt||!rt.value))return;y.textAlign="center",y.textBaseline="bottom"}var ot=!x,ht;x&&(ht=x,y.translate(-ht.x1,-ht.y1)),L==null?(P.drawText(y,g,null,ot,O),g.isEdge()&&(P.drawText(y,g,"source",ot,O),P.drawText(y,g,"target",ot,O))):P.drawText(y,g,L,ot,O),x&&y.translate(ht.x1,ht.y1)},vx.getFontCache=function(y){var g;this.fontCaches=this.fontCaches||[];for(var x=0;x2&&arguments[2]!==void 0?arguments[2]:!0,T=g.pstyle("font-style").strValue,L=g.pstyle("font-size").pfValue+"px",O=g.pstyle("font-family").strValue,P=g.pstyle("font-weight").strValue,$=x?g.effectiveOpacity()*g.pstyle("text-opacity").value:1,q=g.pstyle("text-outline-opacity").value*$,S=g.pstyle("color").value,V=g.pstyle("text-outline-color").value;y.font=T+" "+P+" "+L+" "+O,y.lineJoin="round",this.colorFillStyle(y,S[0],S[1],S[2],$),this.colorStrokeStyle(y,V[0],V[1],V[2],q)};function mpt(y,g,x,T,L){var O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5;y.beginPath(),y.moveTo(g+O,x),y.lineTo(g+T-O,x),y.quadraticCurveTo(g+T,x,g+T,x+O),y.lineTo(g+T,x+L-O),y.quadraticCurveTo(g+T,x+L,g+T-O,x+L),y.lineTo(g+O,x+L),y.quadraticCurveTo(g,x+L,g,x+L-O),y.lineTo(g,x+O),y.quadraticCurveTo(g,x,g+O,x),y.closePath(),y.fill()}vx.getTextAngle=function(y,g){var x,T=y._private,L=T.rscratch,O=g?g+"-":"",P=y.pstyle(O+"text-rotation"),$=yp(L,"labelAngle",g);return P.strValue==="autorotate"?x=y.isEdge()?$:0:P.strValue==="none"?x=0:x=P.pfValue,x},vx.drawText=function(y,g,x){var T=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=g._private,P=O.rscratch,$=L?g.effectiveOpacity():1;if(!(L&&($===0||g.pstyle("text-opacity").value===0))){x==="main"&&(x=null);var q=yp(P,"labelX",x),S=yp(P,"labelY",x),V,Y,rt=this.getLabelText(g,x);if(rt!=null&&rt!==""&&!isNaN(q)&&!isNaN(S)){this.setupTextStyle(y,g,L);var ot=x?x+"-":"",ht=yp(P,"labelWidth",x),dt=yp(P,"labelHeight",x),Lt=g.pstyle(ot+"text-margin-x").pfValue,kt=g.pstyle(ot+"text-margin-y").pfValue,Dt=g.isEdge(),Pt=g.pstyle("text-halign").value,$t=g.pstyle("text-valign").value;Dt&&(Pt="center",$t="center"),q+=Lt,S+=kt;var Zt;switch(T?Zt=this.getTextAngle(g,x):Zt=0,Zt!==0&&(V=q,Y=S,y.translate(V,Y),y.rotate(Zt),q=0,S=0),$t){case"top":break;case"center":S+=dt/2;break;case"bottom":S+=dt;break}var Yt=g.pstyle("text-background-opacity").value,qt=g.pstyle("text-border-opacity").value,ne=g.pstyle("text-border-width").pfValue,Gt=g.pstyle("text-background-padding").pfValue;if(Yt>0||ne>0&&qt>0){var ge=q-Gt;switch(Pt){case"left":ge-=ht;break;case"center":ge-=ht/2;break}var be=S-dt-Gt,ie=ht+2*Gt,Fe=dt+2*Gt;if(Yt>0){var we=y.fillStyle,bn=g.pstyle("text-background-color").value;y.fillStyle="rgba("+bn[0]+","+bn[1]+","+bn[2]+","+Yt*$+")";var ze=g.pstyle("text-background-shape").strValue;ze.indexOf("round")===0?mpt(y,ge,be,ie,Fe,2):y.fillRect(ge,be,ie,Fe),y.fillStyle=we}if(ne>0&&qt>0){var Ge=y.strokeStyle,En=y.lineWidth,In=g.pstyle("text-border-color").value,Yn=g.pstyle("text-border-style").value;if(y.strokeStyle="rgba("+In[0]+","+In[1]+","+In[2]+","+qt*$+")",y.lineWidth=ne,y.setLineDash)switch(Yn){case"dotted":y.setLineDash([1,1]);break;case"dashed":y.setLineDash([4,2]);break;case"double":y.lineWidth=ne/4,y.setLineDash([]);break;case"solid":y.setLineDash([]);break}if(y.strokeRect(ge,be,ie,Fe),Yn==="double"){var Sn=ne/2;y.strokeRect(ge+Sn,be+Sn,ie-Sn*2,Fe-Sn*2)}y.setLineDash&&y.setLineDash([]),y.lineWidth=En,y.strokeStyle=Ge}}var Wn=2*g.pstyle("text-outline-width").pfValue;if(Wn>0&&(y.lineWidth=Wn),g.pstyle("text-wrap").value==="wrap"){var rr=yp(P,"labelWrapCachedLines",x),wr=yp(P,"labelLineHeight",x),ur=ht/2,er=this.getLabelJustification(g);switch(er==="auto"||(Pt==="left"?er==="left"?q+=-ht:er==="center"&&(q+=-ur):Pt==="center"?er==="left"?q+=-ur:er==="right"&&(q+=ur):Pt==="right"&&(er==="center"?q+=ur:er==="right"&&(q+=ht))),$t){case"top":S-=(rr.length-1)*wr;break;case"center":case"bottom":S-=(rr.length-1)*wr;break}for(var vn=0;vn0&&y.strokeText(rr[vn],q,S),y.fillText(rr[vn],q,S),S+=wr}else Wn>0&&y.strokeText(rt,q,S),y.fillText(rt,q,S);Zt!==0&&(y.rotate(-Zt),y.translate(-V,-Y))}}};var Zk={};Zk.drawNode=function(y,g,x){var T=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,P=this,$,q,S=g._private,V=S.rscratch,Y=g.position();if(!(!X(Y.x)||!X(Y.y))&&!(O&&!g.visible())){var rt=O?g.effectiveOpacity():1,ot=P.usePaths(),ht,dt=!1,Lt=g.padding();$=g.width()+2*Lt,q=g.height()+2*Lt;var kt;x&&(kt=x,y.translate(-kt.x1,-kt.y1));for(var Dt=g.pstyle("background-image"),Pt=Dt.value,$t=new Array(Pt.length),Zt=new Array(Pt.length),Yt=0,qt=0;qt0&&arguments[0]!==void 0?arguments[0]:Fe;P.eleFillStyle(y,g,Si)},En=function(){var Si=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ze;P.colorStrokeStyle(y,we[0],we[1],we[2],Si)},In=g.pstyle("shape").strValue,Yn=g.pstyle("shape-polygon-points").pfValue;if(ot){y.translate(Y.x,Y.y);var Sn=P.nodePathCache=P.nodePathCache||[],Wn=id(In==="polygon"?In+","+Yn.join(","):In,""+q,""+$),rr=Sn[Wn];rr!=null?(ht=rr,dt=!0,V.pathCache=ht):(ht=new Path2D,Sn[Wn]=V.pathCache=ht)}var wr=function(){if(!dt){var Si=Y;ot&&(Si={x:0,y:0}),P.nodeShapes[P.getNodeShape(g)].draw(ht||y,Si.x,Si.y,$,q)}ot?y.fill(ht):y.fill()},ur=function(){for(var Si=arguments.length>0&&arguments[0]!==void 0?arguments[0]:rt,Ui=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Va=S.backgrounding,Qs=0,qs=0;qs0&&arguments[0]!==void 0?arguments[0]:!1,Ui=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rt;P.hasPie(g)&&(P.drawPie(y,g,Ui),Si&&(ot||P.nodeShapes[P.getNodeShape(g)].draw(y,Y.x,Y.y,$,q)))},vn=function(){var Si=arguments.length>0&&arguments[0]!==void 0?arguments[0]:rt,Ui=(be>0?be:-be)*Si,Va=be>0?0:255;be!==0&&(P.colorFillStyle(y,Va,Va,Va,Ui),ot?y.fill(ht):y.fill())},gr=function(){if(ie>0){if(y.lineWidth=ie,y.lineCap="butt",y.setLineDash)switch(bn){case"dotted":y.setLineDash([1,1]);break;case"dashed":y.setLineDash([4,2]);break;case"solid":case"double":y.setLineDash([]);break}if(ot?y.stroke(ht):y.stroke(),bn==="double"){y.lineWidth=ie/3;var Si=y.globalCompositeOperation;y.globalCompositeOperation="destination-out",ot?y.stroke(ht):y.stroke(),y.globalCompositeOperation=Si}y.setLineDash&&y.setLineDash([])}},fr=function(){L&&P.drawNodeOverlay(y,g,Y,$,q)},Jr=function(){L&&P.drawNodeUnderlay(y,g,Y,$,q)},vi=function(){P.drawElementText(y,g,null,T)},Xs=g.pstyle("ghost").value==="yes";if(Xs){var Ea=g.pstyle("ghost-offset-x").pfValue,Ci=g.pstyle("ghost-offset-y").pfValue,hi=g.pstyle("ghost-opacity").value,gs=hi*rt;y.translate(Ea,Ci),Ge(hi*Fe),wr(),ur(gs,!0),En(hi*ze),gr(),er(be!==0||ie!==0),ur(gs,!1),vn(gs),y.translate(-Ea,-Ci)}ot&&y.translate(-Y.x,-Y.y),Jr(),ot&&y.translate(Y.x,Y.y),Ge(),wr(),ur(rt,!0),En(),gr(),er(be!==0||ie!==0),ur(rt,!1),vn(),ot&&y.translate(-Y.x,-Y.y),vi(),fr(),x&&y.translate(kt.x1,kt.y1)}};var Ptt=function(g){if(!["overlay","underlay"].includes(g))throw new Error("Invalid state");return function(x,T,L,O,P){var $=this;if(T.visible()){var q=T.pstyle("".concat(g,"-padding")).pfValue,S=T.pstyle("".concat(g,"-opacity")).value,V=T.pstyle("".concat(g,"-color")).value,Y=T.pstyle("".concat(g,"-shape")).value;if(S>0){if(L=L||T.position(),O==null||P==null){var rt=T.padding();O=T.width()+2*rt,P=T.height()+2*rt}$.colorFillStyle(x,V[0],V[1],V[2],S),$.nodeShapes[Y].draw(x,L.x,L.y,O+q*2,P+q*2),x.fill()}}}};Zk.drawNodeOverlay=Ptt("overlay"),Zk.drawNodeUnderlay=Ptt("underlay"),Zk.hasPie=function(y){return y=y[0],y._private.hasPie},Zk.drawPie=function(y,g,x,T){g=g[0],T=T||g.position();var L=g.cy().style(),O=g.pstyle("pie-size"),P=T.x,$=T.y,q=g.width(),S=g.height(),V=Math.min(q,S)/2,Y=0,rt=this.usePaths();rt&&(P=0,$=0),O.units==="%"?V=V*O.pfValue:O.pfValue!==void 0&&(V=O.pfValue/2);for(var ot=1;ot<=L.pieBackgroundN;ot++){var ht=g.pstyle("pie-"+ot+"-background-size").value,dt=g.pstyle("pie-"+ot+"-background-color").value,Lt=g.pstyle("pie-"+ot+"-background-opacity").value*x,kt=ht/100;kt+Y>1&&(kt=1-Y);var Dt=1.5*Math.PI+2*Math.PI*Y,Pt=2*Math.PI*kt,$t=Dt+Pt;ht===0||Y>=1||Y+kt>1||(y.beginPath(),y.moveTo(P,$),y.arc(P,$,V,Dt,$t),y.closePath(),this.colorFillStyle(y,dt[0],dt[1],dt[2],Lt),y.fill(),Y+=kt)}};var Tg={},ypt=100;Tg.getPixelRatio=function(){var y=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var g=y.backingStorePixelRatio||y.webkitBackingStorePixelRatio||y.mozBackingStorePixelRatio||y.msBackingStorePixelRatio||y.oBackingStorePixelRatio||y.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/g},Tg.paintCache=function(y){for(var g=this.paintCaches=this.paintCaches||[],x=!0,T,L=0;LP.minMbLowQualFrames&&(P.motionBlurPxRatio=P.mbPxRBlurry)),P.clearingMotionBlur&&(P.motionBlurPxRatio=1),P.textureDrawLastFrame&&!Y&&(V[P.NODE]=!0,V[P.SELECT_BOX]=!0);var Dt=q.style(),Pt=q.zoom(),$t=L!==void 0?L:Pt,Zt=q.pan(),Yt={x:Zt.x,y:Zt.y},qt={zoom:Pt,pan:{x:Zt.x,y:Zt.y}},ne=P.prevViewport,Gt=ne===void 0||qt.zoom!==ne.zoom||qt.pan.x!==ne.pan.x||qt.pan.y!==ne.pan.y;!Gt&&!(dt&&!ht)&&(P.motionBlurPxRatio=1),O&&(Yt=O),$t*=$,Yt.x*=$,Yt.y*=$;var ge=P.getCachedZSortedEles();function be(Ci,hi,gs,qi,Si){var Ui=Ci.globalCompositeOperation;Ci.globalCompositeOperation="destination-out",P.colorFillStyle(Ci,255,255,255,P.motionBlurTransparency),Ci.fillRect(hi,gs,qi,Si),Ci.globalCompositeOperation=Ui}function ie(Ci,hi){var gs,qi,Si,Ui;!P.clearingMotionBlur&&(Ci===S.bufferContexts[P.MOTIONBLUR_BUFFER_NODE]||Ci===S.bufferContexts[P.MOTIONBLUR_BUFFER_DRAG])?(gs={x:Zt.x*ot,y:Zt.y*ot},qi=Pt*ot,Si=P.canvasWidth*ot,Ui=P.canvasHeight*ot):(gs=Yt,qi=$t,Si=P.canvasWidth,Ui=P.canvasHeight),Ci.setTransform(1,0,0,1,0,0),hi==="motionBlur"?be(Ci,0,0,Si,Ui):!g&&(hi===void 0||hi)&&Ci.clearRect(0,0,Si,Ui),x||(Ci.translate(gs.x,gs.y),Ci.scale(qi,qi)),O&&Ci.translate(O.x,O.y),L&&Ci.scale(L,L)}if(Y||(P.textureDrawLastFrame=!1),Y){if(P.textureDrawLastFrame=!0,!P.textureCache){P.textureCache={},P.textureCache.bb=q.mutableElements().boundingBox(),P.textureCache.texture=P.data.bufferCanvases[P.TEXTURE_BUFFER];var Fe=P.data.bufferContexts[P.TEXTURE_BUFFER];Fe.setTransform(1,0,0,1,0,0),Fe.clearRect(0,0,P.canvasWidth*P.textureMult,P.canvasHeight*P.textureMult),P.render({forcedContext:Fe,drawOnlyNodeLayer:!0,forcedPxRatio:$*P.textureMult});var qt=P.textureCache.viewport={zoom:q.zoom(),pan:q.pan(),width:P.canvasWidth,height:P.canvasHeight};qt.mpan={x:(0-qt.pan.x)/qt.zoom,y:(0-qt.pan.y)/qt.zoom}}V[P.DRAG]=!1,V[P.NODE]=!1;var we=S.contexts[P.NODE],bn=P.textureCache.texture,qt=P.textureCache.viewport;we.setTransform(1,0,0,1,0,0),rt?be(we,0,0,qt.width,qt.height):we.clearRect(0,0,qt.width,qt.height);var ze=Dt.core("outside-texture-bg-color").value,Ge=Dt.core("outside-texture-bg-opacity").value;P.colorFillStyle(we,ze[0],ze[1],ze[2],Ge),we.fillRect(0,0,qt.width,qt.height);var Pt=q.zoom();ie(we,!1),we.clearRect(qt.mpan.x,qt.mpan.y,qt.width/qt.zoom/$,qt.height/qt.zoom/$),we.drawImage(bn,qt.mpan.x,qt.mpan.y,qt.width/qt.zoom/$,qt.height/qt.zoom/$)}else P.textureOnViewport&&!g&&(P.textureCache=null);var En=q.extent(),In=P.pinching||P.hoverData.dragging||P.swipePanning||P.data.wheelZooming||P.hoverData.draggingEles||P.cy.animated(),Yn=P.hideEdgesOnViewport&&In,Sn=[];if(Sn[P.NODE]=!V[P.NODE]&&rt&&!P.clearedForMotionBlur[P.NODE]||P.clearingMotionBlur,Sn[P.NODE]&&(P.clearedForMotionBlur[P.NODE]=!0),Sn[P.DRAG]=!V[P.DRAG]&&rt&&!P.clearedForMotionBlur[P.DRAG]||P.clearingMotionBlur,Sn[P.DRAG]&&(P.clearedForMotionBlur[P.DRAG]=!0),V[P.NODE]||x||T||Sn[P.NODE]){var Wn=rt&&!Sn[P.NODE]&&ot!==1,we=g||(Wn?P.data.bufferContexts[P.MOTIONBLUR_BUFFER_NODE]:S.contexts[P.NODE]),rr=rt&&!Wn?"motionBlur":void 0;ie(we,rr),Yn?P.drawCachedNodes(we,ge.nondrag,$,En):P.drawLayeredElements(we,ge.nondrag,$,En),P.debug&&P.drawDebugPoints(we,ge.nondrag),!x&&!rt&&(V[P.NODE]=!1)}if(!T&&(V[P.DRAG]||x||Sn[P.DRAG])){var Wn=rt&&!Sn[P.DRAG]&&ot!==1,we=g||(Wn?P.data.bufferContexts[P.MOTIONBLUR_BUFFER_DRAG]:S.contexts[P.DRAG]);ie(we,rt&&!Wn?"motionBlur":void 0),Yn?P.drawCachedNodes(we,ge.drag,$,En):P.drawCachedElements(we,ge.drag,$,En),P.debug&&P.drawDebugPoints(we,ge.drag),!x&&!rt&&(V[P.DRAG]=!1)}if(P.showFps||!T&&V[P.SELECT_BOX]&&!x){var we=g||S.contexts[P.SELECT_BOX];if(ie(we),P.selection[4]==1&&(P.hoverData.selecting||P.touchData.selecting)){var Pt=P.cy.zoom(),wr=Dt.core("selection-box-border-width").value/Pt;we.lineWidth=wr,we.fillStyle="rgba("+Dt.core("selection-box-color").value[0]+","+Dt.core("selection-box-color").value[1]+","+Dt.core("selection-box-color").value[2]+","+Dt.core("selection-box-opacity").value+")",we.fillRect(P.selection[0],P.selection[1],P.selection[2]-P.selection[0],P.selection[3]-P.selection[1]),wr>0&&(we.strokeStyle="rgba("+Dt.core("selection-box-border-color").value[0]+","+Dt.core("selection-box-border-color").value[1]+","+Dt.core("selection-box-border-color").value[2]+","+Dt.core("selection-box-opacity").value+")",we.strokeRect(P.selection[0],P.selection[1],P.selection[2]-P.selection[0],P.selection[3]-P.selection[1]))}if(S.bgActivePosistion&&!P.hoverData.selecting){var Pt=P.cy.zoom(),ur=S.bgActivePosistion;we.fillStyle="rgba("+Dt.core("active-bg-color").value[0]+","+Dt.core("active-bg-color").value[1]+","+Dt.core("active-bg-color").value[2]+","+Dt.core("active-bg-opacity").value+")",we.beginPath(),we.arc(ur.x,ur.y,Dt.core("active-bg-size").pfValue/Pt,0,2*Math.PI),we.fill()}var er=P.lastRedrawTime;if(P.showFps&&er){er=Math.round(er);var vn=Math.round(1e3/er);we.setTransform(1,0,0,1,0,0),we.fillStyle="rgba(255, 0, 0, 0.75)",we.strokeStyle="rgba(255, 0, 0, 0.75)",we.lineWidth=1,we.fillText("1 frame = "+er+" ms = "+vn+" fps",0,20);var gr=60;we.strokeRect(0,30,250,20),we.fillRect(0,30,250*Math.min(vn/gr,1),20)}x||(V[P.SELECT_BOX]=!1)}if(rt&&ot!==1){var fr=S.contexts[P.NODE],Jr=P.data.bufferCanvases[P.MOTIONBLUR_BUFFER_NODE],vi=S.contexts[P.DRAG],Xs=P.data.bufferCanvases[P.MOTIONBLUR_BUFFER_DRAG],Ea=function(hi,gs,qi){hi.setTransform(1,0,0,1,0,0),qi||!kt?hi.clearRect(0,0,P.canvasWidth,P.canvasHeight):be(hi,0,0,P.canvasWidth,P.canvasHeight);var Si=ot;hi.drawImage(gs,0,0,P.canvasWidth*Si,P.canvasHeight*Si,0,0,P.canvasWidth,P.canvasHeight)};(V[P.NODE]||Sn[P.NODE])&&(Ea(fr,Jr,Sn[P.NODE]),V[P.NODE]=!1),(V[P.DRAG]||Sn[P.DRAG])&&(Ea(vi,Xs,Sn[P.DRAG]),V[P.DRAG]=!1)}P.prevViewport=qt,P.clearingMotionBlur&&(P.clearingMotionBlur=!1,P.motionBlurCleared=!0,P.motionBlur=!0),rt&&(P.motionBlurTimeout=setTimeout(function(){P.motionBlurTimeout=null,P.clearedForMotionBlur[P.NODE]=!1,P.clearedForMotionBlur[P.DRAG]=!1,P.motionBlur=!1,P.clearingMotionBlur=!Y,P.mbFrames=0,V[P.NODE]=!0,V[P.DRAG]=!0,P.redraw()},ypt)),g||q.emit("render")};var O3={};O3.drawPolygonPath=function(y,g,x,T,L,O){var P=T/2,$=L/2;y.beginPath&&y.beginPath(),y.moveTo(g+P*O[0],x+$*O[1]);for(var q=1;q0&&P>0){ot.clearRect(0,0,O,P),ot.globalCompositeOperation="source-over";var ht=this.getCachedZSortedEles();if(y.full)ot.translate(-T.x1*S,-T.y1*S),ot.scale(S,S),this.drawElements(ot,ht),ot.scale(1/S,1/S),ot.translate(T.x1*S,T.y1*S);else{var dt=g.pan(),Lt={x:dt.x*S,y:dt.y*S};S*=g.zoom(),ot.translate(Lt.x,Lt.y),ot.scale(S,S),this.drawElements(ot,ht),ot.scale(1/S,1/S),ot.translate(-Lt.x,-Lt.y)}y.bg&&(ot.globalCompositeOperation="destination-over",ot.fillStyle=y.bg,ot.rect(0,0,O,P),ot.fill())}return rt};function xpt(y,g){for(var x=atob(y),T=new ArrayBuffer(x.length),L=new Uint8Array(T),O=0;O"u"?"undefined":f(OffscreenCanvas))!=="undefined"?x=new OffscreenCanvas(y,g):(x=document.createElement("canvas"),x.width=y,x.height=g),x},[D0,ww,vw,CC,vx,Zk,Tg,O3,_C,$tt].forEach(function(y){de(vc,y)});var mx=[{name:"null",impl:WB},{name:"base",impl:nM},{name:"canvas",impl:kpt}],Cg=[{type:"layout",extensions:ltt},{type:"renderer",extensions:mx}],Sm={},cM={};function v1(y,g,x){var T=x,L=function(ne){Sc("Can not register `"+g+"` for `"+y+"` since `"+ne+"` already exists in the prototype and can not be overridden")};if(y==="core"){if(Vk.prototype[g])return L(g);Vk.prototype[g]=x}else if(y==="collection"){if($f.prototype[g])return L(g);$f.prototype[g]=x}else if(y==="layout"){for(var O=function(ne){this.options=ne,x.call(this,ne),ut(this._private)||(this._private={}),this._private.cy=ne.cy,this._private.listeners=[],this.createEmitter()},P=O.prototype=Object.create(x.prototype),$=[],q=0;q<$.length;q++){var S=$[q];P[S]=P[S]||function(){return this}}P.start&&!P.run?P.run=function(){return this.start(),this}:!P.start&&P.run&&(P.start=function(){return this.run(),this});var V=x.prototype.stop;P.stop=function(){var qt=this.options;if(qt&&qt.animate){var ne=this.animations;if(ne)for(var Gt=0;Gtz&&(this.rect.x-=(this.labelWidth-z)/2,this.setWidth(this.labelWidth)),this.labelHeight>W&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-W)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-W),this.setHeight(this.labelHeight))}}},B.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==b.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},B.prototype.transform=function(R){var z=this.rect.x;z>_.WORLD_BOUNDARY?z=_.WORLD_BOUNDARY:z<-_.WORLD_BOUNDARY&&(z=-_.WORLD_BOUNDARY);var W=this.rect.y;W>_.WORLD_BOUNDARY?W=_.WORLD_BOUNDARY:W<-_.WORLD_BOUNDARY&&(W=-_.WORLD_BOUNDARY);var et=new I(z,W),st=R.inverseTransformPoint(et);this.setLocation(st.x,st.y)},B.prototype.getLeft=function(){return this.rect.x},B.prototype.getRight=function(){return this.rect.x+this.rect.width},B.prototype.getTop=function(){return this.rect.y},B.prototype.getBottom=function(){return this.rect.y+this.rect.height},B.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},f.exports=B},function(f,p,w){function m(b,E){b==null&&E==null?(this.x=0,this.y=0):(this.x=b,this.y=E)}m.prototype.getX=function(){return this.x},m.prototype.getY=function(){return this.y},m.prototype.setX=function(b){this.x=b},m.prototype.setY=function(b){this.y=b},m.prototype.getDifference=function(b){return new DimensionD(this.x-b.x,this.y-b.y)},m.prototype.getCopy=function(){return new m(this.x,this.y)},m.prototype.translate=function(b){return this.x+=b.width,this.y+=b.height,this},f.exports=m},function(f,p,w){var m=w(2),b=w(10),E=w(0),_=w(6),A=w(3),I=w(1),B=w(13),N=w(12),R=w(11);function z(et,st,at){m.call(this,at),this.estimatedSize=b.MIN_VALUE,this.margin=E.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=et,st!=null&&st instanceof _?this.graphManager=st:st!=null&&st instanceof Layout&&(this.graphManager=st.graphManager)}z.prototype=Object.create(m.prototype);for(var W in m)z[W]=m[W];z.prototype.getNodes=function(){return this.nodes},z.prototype.getEdges=function(){return this.edges},z.prototype.getGraphManager=function(){return this.graphManager},z.prototype.getParent=function(){return this.parent},z.prototype.getLeft=function(){return this.left},z.prototype.getRight=function(){return this.right},z.prototype.getTop=function(){return this.top},z.prototype.getBottom=function(){return this.bottom},z.prototype.isConnected=function(){return this.isConnected},z.prototype.add=function(et,st,at){if(st==null&&at==null){var bt=et;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(bt)>-1)throw"Node already in graph!";return bt.owner=this,this.getNodes().push(bt),bt}else{var mt=et;if(!(this.getNodes().indexOf(st)>-1&&this.getNodes().indexOf(at)>-1))throw"Source or target not in graph!";if(!(st.owner==at.owner&&st.owner==this))throw"Both owners must be this graph!";return st.owner!=at.owner?null:(mt.source=st,mt.target=at,mt.isInterGraph=!1,this.getEdges().push(mt),st.edges.push(mt),at!=st&&at.edges.push(mt),mt)}},z.prototype.remove=function(et){var st=et;if(et instanceof A){if(st==null)throw"Node is null!";if(!(st.owner!=null&&st.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var at=st.edges.slice(),bt,mt=at.length,yt=0;yt-1&&vt>-1))throw"Source and/or target doesn't know this edge!";bt.source.edges.splice(ut,1),bt.target!=bt.source&&bt.target.edges.splice(vt,1);var ft=bt.source.owner.getEdges().indexOf(bt);if(ft==-1)throw"Not in owner's edge list!";bt.source.owner.getEdges().splice(ft,1)}},z.prototype.updateLeftTop=function(){for(var et=b.MAX_VALUE,st=b.MAX_VALUE,at,bt,mt,yt=this.getNodes(),ft=yt.length,ut=0;utat&&(et=at),st>bt&&(st=bt)}return et==b.MAX_VALUE?null:(yt[0].getParent().paddingLeft!=null?mt=yt[0].getParent().paddingLeft:mt=this.margin,this.left=st-mt,this.top=et-mt,new N(this.left,this.top))},z.prototype.updateBounds=function(et){for(var st=b.MAX_VALUE,at=-b.MAX_VALUE,bt=b.MAX_VALUE,mt=-b.MAX_VALUE,yt,ft,ut,vt,X,pt=this.nodes,U=pt.length,Tt=0;Ttyt&&(st=yt),atut&&(bt=ut),mtyt&&(st=yt),atut&&(bt=ut),mt=this.nodes.length){var U=0;at.forEach(function(Tt){Tt.owner==et&&U++}),U==this.nodes.length&&(this.isConnected=!0)}},f.exports=z},function(f,p,w){var m,b=w(1);function E(_){m=w(5),this.layout=_,this.graphs=[],this.edges=[]}E.prototype.addRoot=function(){var _=this.layout.newGraph(),A=this.layout.newNode(null),I=this.add(_,A);return this.setRootGraph(I),this.rootGraph},E.prototype.add=function(_,A,I,B,N){if(I==null&&B==null&&N==null){if(_==null)throw"Graph is null!";if(A==null)throw"Parent node is null!";if(this.graphs.indexOf(_)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(_),_.parent!=null)throw"Already has a parent!";if(A.child!=null)throw"Already has a child!";return _.parent=A,A.child=_,_}else{N=I,B=A,I=_;var R=B.getOwner(),z=N.getOwner();if(!(R!=null&&R.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(z!=null&&z.getGraphManager()==this))throw"Target not in this graph mgr!";if(R==z)return I.isInterGraph=!1,R.add(I,B,N);if(I.isInterGraph=!0,I.source=B,I.target=N,this.edges.indexOf(I)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(I),!(I.source!=null&&I.target!=null))throw"Edge source and/or target is null!";if(!(I.source.edges.indexOf(I)==-1&&I.target.edges.indexOf(I)==-1))throw"Edge already in source and/or target incidency list!";return I.source.edges.push(I),I.target.edges.push(I),I}},E.prototype.remove=function(_){if(_ instanceof m){var A=_;if(A.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(A==this.rootGraph||A.parent!=null&&A.parent.graphManager==this))throw"Invalid parent node!";var I=[];I=I.concat(A.getEdges());for(var B,N=I.length,R=0;R=_.getRight()?A[0]+=Math.min(_.getX()-E.getX(),E.getRight()-_.getRight()):_.getX()<=E.getX()&&_.getRight()>=E.getRight()&&(A[0]+=Math.min(E.getX()-_.getX(),_.getRight()-E.getRight())),E.getY()<=_.getY()&&E.getBottom()>=_.getBottom()?A[1]+=Math.min(_.getY()-E.getY(),E.getBottom()-_.getBottom()):_.getY()<=E.getY()&&_.getBottom()>=E.getBottom()&&(A[1]+=Math.min(E.getY()-_.getY(),_.getBottom()-E.getBottom()));var N=Math.abs((_.getCenterY()-E.getCenterY())/(_.getCenterX()-E.getCenterX()));_.getCenterY()===E.getCenterY()&&_.getCenterX()===E.getCenterX()&&(N=1);var R=N*A[0],z=A[1]/N;A[0]R)return A[0]=I,A[1]=W,A[2]=N,A[3]=pt,!1;if(BN)return A[0]=z,A[1]=B,A[2]=vt,A[3]=R,!1;if(IN?(A[0]=st,A[1]=at,It=!0):(A[0]=et,A[1]=W,It=!0):Bt===Z&&(I>N?(A[0]=z,A[1]=W,It=!0):(A[0]=bt,A[1]=at,It=!0)),-Et===Z?N>I?(A[2]=X,A[3]=pt,Ot=!0):(A[2]=vt,A[3]=ut,Ot=!0):Et===Z&&(N>I?(A[2]=ft,A[3]=ut,Ot=!0):(A[2]=U,A[3]=pt,Ot=!0)),It&&Ot)return!1;if(I>N?B>R?(Ct=this.getCardinalDirection(Bt,Z,4),xt=this.getCardinalDirection(Et,Z,2)):(Ct=this.getCardinalDirection(-Bt,Z,3),xt=this.getCardinalDirection(-Et,Z,1)):B>R?(Ct=this.getCardinalDirection(-Bt,Z,1),xt=this.getCardinalDirection(-Et,Z,3)):(Ct=this.getCardinalDirection(Bt,Z,2),xt=this.getCardinalDirection(Et,Z,4)),!It)switch(Ct){case 1:Le=W,Ht=I+-yt/Z,A[0]=Ht,A[1]=Le;break;case 2:Ht=bt,Le=B+mt*Z,A[0]=Ht,A[1]=Le;break;case 3:Le=at,Ht=I+yt/Z,A[0]=Ht,A[1]=Le;break;case 4:Ht=st,Le=B+-mt*Z,A[0]=Ht,A[1]=Le;break}if(!Ot)switch(xt){case 1:gn=ut,Ft=N+-nt/Z,A[2]=Ft,A[3]=gn;break;case 2:Ft=U,gn=R+Tt*Z,A[2]=Ft,A[3]=gn;break;case 3:gn=pt,Ft=N+nt/Z,A[2]=Ft,A[3]=gn;break;case 4:Ft=X,gn=R+-Tt*Z,A[2]=Ft,A[3]=gn;break}}return!1},b.getCardinalDirection=function(E,_,A){return E>_?A:1+A%4},b.getIntersection=function(E,_,A,I){if(I==null)return this.getIntersection2(E,_,A);var B=E.x,N=E.y,R=_.x,z=_.y,W=A.x,et=A.y,st=I.x,at=I.y,bt=void 0,mt=void 0,yt=void 0,ft=void 0,ut=void 0,vt=void 0,X=void 0,pt=void 0,U=void 0;return yt=z-N,ut=B-R,X=R*N-B*z,ft=at-et,vt=W-st,pt=st*et-W*at,U=yt*vt-ft*ut,U===0?null:(bt=(ut*pt-vt*X)/U,mt=(ft*X-yt*pt)/U,new m(bt,mt))},b.angleOfVector=function(E,_,A,I){var B=void 0;return E!==A?(B=Math.atan((I-_)/(A-E)),A0?1:b<0?-1:0},m.floor=function(b){return b<0?Math.ceil(b):Math.floor(b)},m.ceil=function(b){return b<0?Math.floor(b):Math.ceil(b)},f.exports=m},function(f,p,w){function m(){}m.MAX_VALUE=2147483647,m.MIN_VALUE=-2147483648,f.exports=m},function(f,p,w){var m=function(){function B(N,R){for(var z=0;z"u"?"undefined":m(E);return E==null||_!="object"&&_!="function"},f.exports=b},function(f,p,w){function m(W){if(Array.isArray(W)){for(var et=0,st=Array(W.length);et0&&et;){for(yt.push(ut[0]);yt.length>0&&et;){var vt=yt[0];yt.splice(0,1),mt.add(vt);for(var X=vt.getEdges(),bt=0;bt-1&&ut.splice(nt,1)}mt=new Set,ft=new Map}}return W},z.prototype.createDummyNodesForBendpoints=function(W){for(var et=[],st=W.source,at=this.graphManager.calcLowestCommonAncestor(W.source,W.target),bt=0;bt0){for(var at=this.edgeToDummyNodes.get(st),bt=0;bt=0&&et.splice(pt,1);var U=ft.getNeighborsList();U.forEach(function(It){if(st.indexOf(It)<0){var Ot=at.get(It),Bt=Ot-1;Bt==1&&vt.push(It),at.set(It,Bt)}})}st=st.concat(vt),(et.length==1||et.length==2)&&(bt=!0,mt=et[0])}return mt},z.prototype.setGraphManager=function(W){this.graphManager=W},f.exports=z},function(f,p,w){function m(){}m.seed=1,m.x=0,m.nextDouble=function(){return m.x=Math.sin(m.seed++)*1e4,m.x-Math.floor(m.x)},f.exports=m},function(f,p,w){var m=w(4);function b(E,_){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}b.prototype.getWorldOrgX=function(){return this.lworldOrgX},b.prototype.setWorldOrgX=function(E){this.lworldOrgX=E},b.prototype.getWorldOrgY=function(){return this.lworldOrgY},b.prototype.setWorldOrgY=function(E){this.lworldOrgY=E},b.prototype.getWorldExtX=function(){return this.lworldExtX},b.prototype.setWorldExtX=function(E){this.lworldExtX=E},b.prototype.getWorldExtY=function(){return this.lworldExtY},b.prototype.setWorldExtY=function(E){this.lworldExtY=E},b.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},b.prototype.setDeviceOrgX=function(E){this.ldeviceOrgX=E},b.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},b.prototype.setDeviceOrgY=function(E){this.ldeviceOrgY=E},b.prototype.getDeviceExtX=function(){return this.ldeviceExtX},b.prototype.setDeviceExtX=function(E){this.ldeviceExtX=E},b.prototype.getDeviceExtY=function(){return this.ldeviceExtY},b.prototype.setDeviceExtY=function(E){this.ldeviceExtY=E},b.prototype.transformX=function(E){var _=0,A=this.lworldExtX;return A!=0&&(_=this.ldeviceOrgX+(E-this.lworldOrgX)*this.ldeviceExtX/A),_},b.prototype.transformY=function(E){var _=0,A=this.lworldExtY;return A!=0&&(_=this.ldeviceOrgY+(E-this.lworldOrgY)*this.ldeviceExtY/A),_},b.prototype.inverseTransformX=function(E){var _=0,A=this.ldeviceExtX;return A!=0&&(_=this.lworldOrgX+(E-this.ldeviceOrgX)*this.lworldExtX/A),_},b.prototype.inverseTransformY=function(E){var _=0,A=this.ldeviceExtY;return A!=0&&(_=this.lworldOrgY+(E-this.ldeviceOrgY)*this.lworldExtY/A),_},b.prototype.inverseTransformPoint=function(E){var _=new m(this.inverseTransformX(E.x),this.inverseTransformY(E.y));return _},f.exports=b},function(f,p,w){function m(R){if(Array.isArray(R)){for(var z=0,W=Array(R.length);zE.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*E.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(R-E.ADAPTATION_LOWER_NODE_LIMIT)/(E.ADAPTATION_UPPER_NODE_LIMIT-E.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-E.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=E.MAX_NODE_DISPLACEMENT_INCREMENTAL):(R>E.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(E.COOLING_ADAPTATION_FACTOR,1-(R-E.ADAPTATION_LOWER_NODE_LIMIT)/(E.ADAPTATION_UPPER_NODE_LIMIT-E.ADAPTATION_LOWER_NODE_LIMIT)*(1-E.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=E.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},B.prototype.calcSpringForces=function(){for(var R=this.getAllEdges(),z,W=0;W0&&arguments[0]!==void 0?arguments[0]:!0,z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,W,et,st,at,bt=this.getAllNodes(),mt;if(this.useFRGridVariant)for(this.totalIterations%E.GRID_CALCULATION_CHECK_PERIOD==1&&R&&this.updateGrid(),mt=new Set,W=0;Wyt||mt>yt)&&(R.gravitationForceX=-this.gravityConstant*st,R.gravitationForceY=-this.gravityConstant*at)):(yt=z.getEstimatedSize()*this.compoundGravityRangeFactor,(bt>yt||mt>yt)&&(R.gravitationForceX=-this.gravityConstant*st*this.compoundGravityConstant,R.gravitationForceY=-this.gravityConstant*at*this.compoundGravityConstant))},B.prototype.isConverged=function(){var R,z=!1;return this.totalIterations>this.maxIterations/3&&(z=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),R=this.totalDisplacement=bt.length||yt>=bt[0].length)){for(var ft=0;ftB}}]),A}();f.exports=_},function(f,p,w){var m=function(){function _(A,I){for(var B=0;B2&&arguments[2]!==void 0?arguments[2]:1,N=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,R=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;b(this,_),this.sequence1=A,this.sequence2=I,this.match_score=B,this.mismatch_penalty=N,this.gap_penalty=R,this.iMax=A.length+1,this.jMax=I.length+1,this.grid=new Array(this.iMax);for(var z=0;z=0;A--){var I=this.listeners[A];I.event===E&&I.callback===_&&this.listeners.splice(A,1)}},b.emit=function(E,_){for(var A=0;AI.coolingFactor*I.maxNodeDisplacement&&(this.displacementX=I.coolingFactor*I.maxNodeDisplacement*E.sign(this.displacementX)),Math.abs(this.displacementY)>I.coolingFactor*I.maxNodeDisplacement&&(this.displacementY=I.coolingFactor*I.maxNodeDisplacement*E.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),I.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},_.prototype.propogateDisplacementToChildren=function(I,B){for(var N=this.getChild().getNodes(),R,z=0;z0)this.positionNodesRadially(ut);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var vt=new Set(this.getAllNodes()),X=this.nodesWithGravity.filter(function(pt){return vt.has(pt)});this.graphManager.setAllNodesToApplyGravitation(X),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},yt.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%N.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var ut=new Set(this.getAllNodes()),vt=this.nodesWithGravity.filter(function(U){return ut.has(U)});this.graphManager.setAllNodesToApplyGravitation(vt),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=N.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=N.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var X=!this.isTreeGrowing&&!this.isGrowthFinished,pt=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(X,pt),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},yt.prototype.getPositionsData=function(){for(var ut=this.graphManager.getAllNodes(),vt={},X=0;X1){var It;for(It=0;Itpt&&(pt=Math.floor(nt.y)),Tt=Math.floor(nt.x+B.DEFAULT_COMPONENT_SEPERATION)}this.transform(new W(R.WORLD_CENTER_X-nt.x/2,R.WORLD_CENTER_Y-nt.y/2))},yt.radialLayout=function(ut,vt,X){var pt=Math.max(this.maxDiagonalInTree(ut),B.DEFAULT_RADIAL_SEPARATION);yt.branchRadialLayout(vt,null,0,359,0,pt);var U=bt.calculateBounds(ut),Tt=new mt;Tt.setDeviceOrgX(U.getMinX()),Tt.setDeviceOrgY(U.getMinY()),Tt.setWorldOrgX(X.x),Tt.setWorldOrgY(X.y);for(var nt=0;nt1;){var gn=Ft[0];Ft.splice(0,1);var Se=Z.indexOf(gn);Se>=0&&Z.splice(Se,1),Ht--,Ct--}vt!=null?Le=(Z.indexOf(Ft[0])+1)%Ht:Le=0;for(var me=Math.abs(pt-X)/Ct,Ve=Le;xt!=Ct;Ve=++Ve%Ht){var Ye=Z[Ve].getOtherEnd(ut);if(Ye!=vt){var ce=(X+xt*me)%360,ke=(ce+me)%360;yt.branchRadialLayout(Ye,ut,ce,ke,U+Tt,Tt),xt++}}},yt.maxDiagonalInTree=function(ut){for(var vt=st.MIN_VALUE,X=0;Xvt&&(vt=U)}return vt},yt.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},yt.prototype.groupZeroDegreeMembers=function(){var ut=this,vt={};this.memberGroups={},this.idToDummyNode={};for(var X=[],pt=this.graphManager.getAllNodes(),U=0;U"u"&&(vt[It]=[]),vt[It]=vt[It].concat(Tt)}Object.keys(vt).forEach(function(Ot){if(vt[Ot].length>1){var Bt="DummyCompound_"+Ot;ut.memberGroups[Bt]=vt[Ot];var Et=vt[Ot][0].getParent(),Z=new A(ut.graphManager);Z.id=Bt,Z.paddingLeft=Et.paddingLeft||0,Z.paddingRight=Et.paddingRight||0,Z.paddingBottom=Et.paddingBottom||0,Z.paddingTop=Et.paddingTop||0,ut.idToDummyNode[Bt]=Z;var Ct=ut.getGraphManager().add(ut.newGraph(),Z),xt=Et.getChild();xt.add(Z);for(var Ht=0;Ht=0;ut--){var vt=this.compoundOrder[ut],X=vt.id,pt=vt.paddingLeft,U=vt.paddingTop;this.adjustLocations(this.tiledMemberPack[X],vt.rect.x,vt.rect.y,pt,U)}},yt.prototype.repopulateZeroDegreeMembers=function(){var ut=this,vt=this.tiledZeroDegreePack;Object.keys(vt).forEach(function(X){var pt=ut.idToDummyNode[X],U=pt.paddingLeft,Tt=pt.paddingTop;ut.adjustLocations(vt[X],pt.rect.x,pt.rect.y,U,Tt)})},yt.prototype.getToBeTiled=function(ut){var vt=ut.id;if(this.toBeTiled[vt]!=null)return this.toBeTiled[vt];var X=ut.getChild();if(X==null)return this.toBeTiled[vt]=!1,!1;for(var pt=X.getNodes(),U=0;U0)return this.toBeTiled[vt]=!1,!1;if(Tt.getChild()==null){this.toBeTiled[Tt.id]=!1;continue}if(!this.getToBeTiled(Tt))return this.toBeTiled[vt]=!1,!1}return this.toBeTiled[vt]=!0,!0},yt.prototype.getNodeDegree=function(ut){ut.id;for(var vt=ut.getEdges(),X=0,pt=0;ptOt&&(Ot=Et.rect.height)}X+=Ot+ut.verticalPadding}},yt.prototype.tileCompoundMembers=function(ut,vt){var X=this;this.tiledMemberPack=[],Object.keys(ut).forEach(function(pt){var U=vt[pt];X.tiledMemberPack[pt]=X.tileNodes(ut[pt],U.paddingLeft+U.paddingRight),U.rect.width=X.tiledMemberPack[pt].width,U.rect.height=X.tiledMemberPack[pt].height})},yt.prototype.tileNodes=function(ut,vt){var X=B.TILING_PADDING_VERTICAL,pt=B.TILING_PADDING_HORIZONTAL,U={rows:[],rowWidth:[],rowHeight:[],width:0,height:vt,verticalPadding:X,horizontalPadding:pt};ut.sort(function(It,Ot){return It.rect.width*It.rect.height>Ot.rect.width*Ot.rect.height?-1:It.rect.width*It.rect.height0&&(nt+=ut.horizontalPadding),ut.rowWidth[X]=nt,ut.width0&&(It+=ut.verticalPadding);var Ot=0;It>ut.rowHeight[X]&&(Ot=ut.rowHeight[X],ut.rowHeight[X]=It,Ot=ut.rowHeight[X]-Ot),ut.height+=Ot,ut.rows[X].push(vt)},yt.prototype.getShortestRowIndex=function(ut){for(var vt=-1,X=Number.MAX_VALUE,pt=0;ptX&&(vt=pt,X=ut.rowWidth[pt]);return vt},yt.prototype.canAddHorizontal=function(ut,vt,X){var pt=this.getShortestRowIndex(ut);if(pt<0)return!0;var U=ut.rowWidth[pt];if(U+ut.horizontalPadding+vt<=ut.width)return!0;var Tt=0;ut.rowHeight[pt]0&&(Tt=X+ut.verticalPadding-ut.rowHeight[pt]);var nt;ut.width-U>=vt+ut.horizontalPadding?nt=(ut.height+Tt)/(U+vt+ut.horizontalPadding):nt=(ut.height+Tt)/ut.width,Tt=X+ut.verticalPadding;var It;return ut.widthTt&&vt!=X){pt.splice(-1,1),ut.rows[X].push(U),ut.rowWidth[vt]=ut.rowWidth[vt]-Tt,ut.rowWidth[X]=ut.rowWidth[X]+Tt,ut.width=ut.rowWidth[instance.getLongestRowIndex(ut)];for(var nt=Number.MIN_VALUE,It=0;Itnt&&(nt=pt[It].height);vt>0&&(nt+=ut.verticalPadding);var Ot=ut.rowHeight[vt]+ut.rowHeight[X];ut.rowHeight[vt]=nt,ut.rowHeight[X]0)for(var xt=U;xt<=Tt;xt++)Ct[0]+=this.grid[xt][nt-1].length+this.grid[xt][nt].length-1;if(Tt0)for(var xt=nt;xt<=It;xt++)Ct[3]+=this.grid[U-1][xt].length+this.grid[U][xt].length-1;for(var Ht=st.MAX_VALUE,Le,Ft,gn=0;gn0){var It;It=mt.getGraphManager().add(mt.newGraph(),X),this.processChildrenList(It,vt,mt)}}},W.prototype.stop=function(){return this.stopped=!0,this};var st=function(bt){bt("layout","cose-bilkent",W)};typeof cytoscape<"u"&&st(cytoscape),p.exports=st}])})})(h$t);var uYe=h$t.exports;const lYe=G7(uYe);l$t.use(lYe);function g$t(i,a,f,p){c$t.drawNode(i,a,f,p),a.children&&a.children.forEach((w,m)=>{g$t(i,w,f<0?m:f,p)})}function hYe(i,a){a.edges().map((f,p)=>{const w=f.data();if(f[0]._private.bodyBounds){const m=f[0]._private.rscratch;Ut.trace("Edge: ",p,w),i.insert("path").attr("d",`M ${m.startX},${m.startY} L ${m.midX},${m.midY} L${m.endX},${m.endY} `).attr("class","edge section-edge-"+w.section+" edge-depth-"+w.depth)}})}function p$t(i,a,f,p){a.add({group:"nodes",data:{id:i.id,labelText:i.descr,height:i.height,width:i.width,level:p,nodeId:i.id,padding:i.padding,type:i.type},position:{x:i.x,y:i.y}}),i.children&&i.children.forEach(w=>{p$t(w,a,f,p+1),a.add({group:"edges",data:{id:`${i.id}_${w.id}`,source:i.id,target:w.id,depth:p,section:w.section}})})}function fYe(i,a){return new Promise(f=>{const p=yr("body").append("div").attr("id","cy").attr("style","display:none"),w=l$t({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});p.remove(),p$t(i,w,a,0),w.nodes().forEach(function(m){m.layoutDimensions=()=>{const b=m.data();return{w:b.width,h:b.height}}}),w.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),w.ready(m=>{Ut.info("Ready",m),f(w)})})}function dYe(i){i.nodes().map((a,f)=>{const p=a.data();p.x=a.position().x,p.y=a.position().y,c$t.positionNode(p);const w=Jgt(p.nodeId);Ut.info("Id:",f,"Position: (",a.position().x,", ",a.position().y,")",p),w.attr("transform",`translate(${a.position().x-p.width/2}, ${a.position().y-p.height/2})`),w.attr("attr",`apa-${f})`)})}const gYe={draw:async(i,a,f,p)=>{const w=Oe();w.htmlLabels=!1,Ut.debug(`Rendering mindmap diagram -`+i,p.parser);const m=Oe().securityLevel;let b;m==="sandbox"&&(b=yr("#i"+a));const _=yr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body").select("#"+a);_.append("g");const A=p.db.getMindmap(),I=_.append("g");I.attr("class","mindmap-edges");const B=_.append("g");B.attr("class","mindmap-nodes"),g$t(B,A,-1,w);const N=await fYe(A,w);hYe(I,N),dYe(N),fT(void 0,_,w.mindmap.padding,w.mindmap.useMaxWidth)}},pYe=i=>{let a="";for(let f=0;f` - .edge { - stroke-width: 3; - } - ${pYe(i)} - .section-root rect, .section-root path, .section-root circle, .section-root polygon { - fill: ${i.git0}; - } - .section-root text { - fill: ${i.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .mindmap-node-label { - dy: 1em; - alignment-baseline: middle; - text-anchor: middle; - dominant-baseline: middle; - text-align: center; - } -`}},Symbol.toStringTag,{value:"Module"}));var npt=function(){var i=function(E,_,A,I){for(A=A||{},I=E.length;I--;A[E[I]]=_);return A},a=[1,9],f=[1,10],p=[1,5,10,12],w={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(_,A,I,B,N,R,z){var W=R.length-1;switch(N){case 7:const et=B.findOrCreateNode(R[W-4].trim().replaceAll('""','"')),st=B.findOrCreateNode(R[W-2].trim().replaceAll('""','"')),at=parseFloat(R[W].trim());B.addLink(et,st,at);break;case 8:case 9:case 11:this.$=R[W];break;case 10:this.$=R[W-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:a,20:f},{1:[2,6],7:11,10:[1,12]},i(f,[2,4],{9:13,5:[1,14]}),{12:[1,15]},i(p,[2,8]),i(p,[2,9]),{19:[1,16]},i(p,[2,11]),{1:[2,1]},{1:[2,5]},i(f,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:a,20:f},{15:18,16:7,17:8,18:a,20:f},{18:[1,19]},i(f,[2,3]),{12:[1,20]},i(p,[2,10]),{15:21,16:7,17:8,18:a,20:f},i([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(_,A){if(A.recoverable)this.trace(_);else{var I=new Error(_);throw I.hash=A,I}},parse:function(_){var A=this,I=[0],B=[],N=[null],R=[],z=this.table,W="",et=0,st=0,at=2,bt=1,mt=R.slice.call(arguments,1),yt=Object.create(this.lexer),ft={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(ft.yy[ut]=this.yy[ut]);yt.setInput(_,ft.yy),ft.yy.lexer=yt,ft.yy.parser=this,typeof yt.yylloc>"u"&&(yt.yylloc={});var vt=yt.yylloc;R.push(vt);var X=yt.options&&yt.options.ranges;typeof ft.yy.parseError=="function"?this.parseError=ft.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(){var Ht;return Ht=B.pop()||yt.lex()||bt,typeof Ht!="number"&&(Ht instanceof Array&&(B=Ht,Ht=B.pop()),Ht=A.symbols_[Ht]||Ht),Ht}for(var U,Tt,nt,It,Ot={},Bt,Et,Z,Ct;;){if(Tt=I[I.length-1],this.defaultActions[Tt]?nt=this.defaultActions[Tt]:((U===null||typeof U>"u")&&(U=pt()),nt=z[Tt]&&z[Tt][U]),typeof nt>"u"||!nt.length||!nt[0]){var xt="";Ct=[];for(Bt in z[Tt])this.terminals_[Bt]&&Bt>at&&Ct.push("'"+this.terminals_[Bt]+"'");yt.showPosition?xt="Parse error on line "+(et+1)+`: -`+yt.showPosition()+` -Expecting `+Ct.join(", ")+", got '"+(this.terminals_[U]||U)+"'":xt="Parse error on line "+(et+1)+": Unexpected "+(U==bt?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(xt,{text:yt.match,token:this.terminals_[U]||U,line:yt.yylineno,loc:vt,expected:Ct})}if(nt[0]instanceof Array&&nt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Tt+", token: "+U);switch(nt[0]){case 1:I.push(U),N.push(yt.yytext),R.push(yt.yylloc),I.push(nt[1]),U=null,st=yt.yyleng,W=yt.yytext,et=yt.yylineno,vt=yt.yylloc;break;case 2:if(Et=this.productions_[nt[1]][1],Ot.$=N[N.length-Et],Ot._$={first_line:R[R.length-(Et||1)].first_line,last_line:R[R.length-1].last_line,first_column:R[R.length-(Et||1)].first_column,last_column:R[R.length-1].last_column},X&&(Ot._$.range=[R[R.length-(Et||1)].range[0],R[R.length-1].range[1]]),It=this.performAction.apply(Ot,[W,st,et,ft.yy,nt[1],N,R].concat(mt)),typeof It<"u")return It;Et&&(I=I.slice(0,-1*Et*2),N=N.slice(0,-1*Et),R=R.slice(0,-1*Et)),I.push(this.productions_[nt[1]][0]),N.push(Ot.$),R.push(Ot._$),Z=z[I[I.length-2]][I[I.length-1]],I.push(Z);break;case 3:return!0}}return!0}},m=function(){var E={EOF:1,parseError:function(A,I){if(this.yy.parser)this.yy.parser.parseError(A,I);else throw new Error(A)},setInput:function(_,A){return this.yy=A||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var A=_.match(/(?:\r\n?|\n).*/g);return A?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var A=_.length,I=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),I.length-1&&(this.yylineno-=I.length-1);var N=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:I?(I.length===B.length?this.yylloc.first_column:0)+B[B.length-I.length].length-I[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[N[0],N[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). -`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),A=new Array(_.length+1).join("-");return _+this.upcomingInput()+` -`+A+"^"},test_match:function(_,A){var I,B,N;if(this.options.backtrack_lexer&&(N={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(N.yylloc.range=this.yylloc.range.slice(0))),B=_[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_[0].length),this.matched+=_[0],I=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var R in N)this[R]=N[R];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,A,I,B;this._more||(this.yytext="",this.match="");for(var N=this._currentRules(),R=0;RA[0].length)){if(A=I,B=R,this.options.backtrack_lexer){if(_=this.test_match(I,N[R]),_!==!1)return _;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(_=this.test_match(A,N[B]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var A=this.next();return A||this.lex()},begin:function(A){this.conditionStack.push(A)},popState:function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:"INITIAL"},pushState:function(A){this.begin(A)},stateStackSize:function(){return this.conditionStack.length},options:{easy_keword_rules:!0},performAction:function(A,I,B,N){switch(B){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/,/^(?:$)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:(\u002C))/,/^(?:(\u0022))/,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/,/^(?:(\u0022)(?!(\u0022)))/,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return E}();w.lexer=m;function b(){this.yy={}}return b.prototype=w,w.Parser=b,new b}();npt.parser=npt;const rK=npt;let iK=[],sK=[],kL={};const wYe=()=>{iK=[],sK=[],kL={},hg()};class vYe{constructor(a,f,p=0){this.source=a,this.target=f,this.value=p}}const mYe=(i,a,f)=>{iK.push(new vYe(i,a,f))};class yYe{constructor(a){this.ID=a}}const xYe={nodesMap:kL,getConfig:()=>Oe().sankey,getNodes:()=>sK,getLinks:()=>iK,getGraph:()=>({nodes:sK.map(i=>({id:i.ID})),links:iK.map(i=>({source:i.source.ID,target:i.target.ID,value:i.value}))}),addLink:mYe,findOrCreateNode:i=>(i=Kr.sanitizeText(i,Oe()),kL[i]||(kL[i]=new yYe(i),sK.push(kL[i])),kL[i]),getAccTitle:fg,setAccTitle:E0,getAccDescription:gg,setAccDescription:dg,getDiagramTitle:pg,setDiagramTitle:Nb,clear:wYe};function b$t(i,a){let f;if(a===void 0)for(const p of i)p!=null&&(f=p)&&(f=p);else{let p=-1;for(let w of i)(w=a(w,++p,i))!=null&&(f=w)&&(f=w)}return f}function w$t(i,a){let f;if(a===void 0)for(const p of i)p!=null&&(f>p||f===void 0&&p>=p)&&(f=p);else{let p=-1;for(let w of i)(w=a(w,++p,i))!=null&&(f>w||f===void 0&&w>=w)&&(f=w)}return f}function rpt(i,a){let f=0;if(a===void 0)for(let p of i)(p=+p)&&(f+=p);else{let p=-1;for(let w of i)(w=+a(w,++p,i))&&(f+=w)}return f}function kYe(i){return i.target.depth}function EYe(i){return i.depth}function TYe(i,a){return a-1-i.height}function v$t(i,a){return i.sourceLinks.length?i.depth:a-1}function CYe(i){return i.targetLinks.length?i.depth:i.sourceLinks.length?w$t(i.sourceLinks,kYe)-1:0}function aK(i){return function(){return i}}function m$t(i,a){return oK(i.source,a.source)||i.index-a.index}function y$t(i,a){return oK(i.target,a.target)||i.index-a.index}function oK(i,a){return i.y0-a.y0}function ipt(i){return i.value}function _Ye(i){return i.index}function SYe(i){return i.nodes}function AYe(i){return i.links}function x$t(i,a){const f=i.get(a);if(!f)throw new Error("missing: "+a);return f}function k$t({nodes:i}){for(const a of i){let f=a.y0,p=f;for(const w of a.sourceLinks)w.y0=f+w.width/2,f+=w.width;for(const w of a.targetLinks)w.y1=p+w.width/2,p+=w.width}}function LYe(){let i=0,a=0,f=1,p=1,w=24,m=8,b,E=_Ye,_=v$t,A,I,B=SYe,N=AYe,R=6;function z(){const Ot={nodes:B.apply(null,arguments),links:N.apply(null,arguments)};return W(Ot),et(Ot),st(Ot),at(Ot),yt(Ot),k$t(Ot),Ot}z.update=function(Ot){return k$t(Ot),Ot},z.nodeId=function(Ot){return arguments.length?(E=typeof Ot=="function"?Ot:aK(Ot),z):E},z.nodeAlign=function(Ot){return arguments.length?(_=typeof Ot=="function"?Ot:aK(Ot),z):_},z.nodeSort=function(Ot){return arguments.length?(A=Ot,z):A},z.nodeWidth=function(Ot){return arguments.length?(w=+Ot,z):w},z.nodePadding=function(Ot){return arguments.length?(m=b=+Ot,z):m},z.nodes=function(Ot){return arguments.length?(B=typeof Ot=="function"?Ot:aK(Ot),z):B},z.links=function(Ot){return arguments.length?(N=typeof Ot=="function"?Ot:aK(Ot),z):N},z.linkSort=function(Ot){return arguments.length?(I=Ot,z):I},z.size=function(Ot){return arguments.length?(i=a=0,f=+Ot[0],p=+Ot[1],z):[f-i,p-a]},z.extent=function(Ot){return arguments.length?(i=+Ot[0][0],f=+Ot[1][0],a=+Ot[0][1],p=+Ot[1][1],z):[[i,a],[f,p]]},z.iterations=function(Ot){return arguments.length?(R=+Ot,z):R};function W({nodes:Ot,links:Bt}){for(const[Z,Ct]of Ot.entries())Ct.index=Z,Ct.sourceLinks=[],Ct.targetLinks=[];const Et=new Map(Ot.map((Z,Ct)=>[E(Z,Ct,Ot),Z]));for(const[Z,Ct]of Bt.entries()){Ct.index=Z;let{source:xt,target:Ht}=Ct;typeof xt!="object"&&(xt=Ct.source=x$t(Et,xt)),typeof Ht!="object"&&(Ht=Ct.target=x$t(Et,Ht)),xt.sourceLinks.push(Ct),Ht.targetLinks.push(Ct)}if(I!=null)for(const{sourceLinks:Z,targetLinks:Ct}of Ot)Z.sort(I),Ct.sort(I)}function et({nodes:Ot}){for(const Bt of Ot)Bt.value=Bt.fixedValue===void 0?Math.max(rpt(Bt.sourceLinks,ipt),rpt(Bt.targetLinks,ipt)):Bt.fixedValue}function st({nodes:Ot}){const Bt=Ot.length;let Et=new Set(Ot),Z=new Set,Ct=0;for(;Et.size;){for(const xt of Et){xt.depth=Ct;for(const{target:Ht}of xt.sourceLinks)Z.add(Ht)}if(++Ct>Bt)throw new Error("circular link");Et=Z,Z=new Set}}function at({nodes:Ot}){const Bt=Ot.length;let Et=new Set(Ot),Z=new Set,Ct=0;for(;Et.size;){for(const xt of Et){xt.height=Ct;for(const{source:Ht}of xt.targetLinks)Z.add(Ht)}if(++Ct>Bt)throw new Error("circular link");Et=Z,Z=new Set}}function bt({nodes:Ot}){const Bt=b$t(Ot,Ct=>Ct.depth)+1,Et=(f-i-w)/(Bt-1),Z=new Array(Bt);for(const Ct of Ot){const xt=Math.max(0,Math.min(Bt-1,Math.floor(_.call(null,Ct,Bt))));Ct.layer=xt,Ct.x0=i+xt*Et,Ct.x1=Ct.x0+w,Z[xt]?Z[xt].push(Ct):Z[xt]=[Ct]}if(A)for(const Ct of Z)Ct.sort(A);return Z}function mt(Ot){const Bt=w$t(Ot,Et=>(p-a-(Et.length-1)*b)/rpt(Et,ipt));for(const Et of Ot){let Z=a;for(const Ct of Et){Ct.y0=Z,Ct.y1=Z+Ct.value*Bt,Z=Ct.y1+b;for(const xt of Ct.sourceLinks)xt.width=xt.value*Bt}Z=(p-Z+b)/(Et.length+1);for(let Ct=0;CtEt.length)-1)),mt(Bt);for(let Et=0;Et0))continue;let gn=(Le/Ft-Ht.y0)*Bt;Ht.y0+=gn,Ht.y1+=gn,U(Ht)}A===void 0&&xt.sort(oK),vt(xt,Et)}}function ut(Ot,Bt,Et){for(let Z=Ot.length,Ct=Z-2;Ct>=0;--Ct){const xt=Ot[Ct];for(const Ht of xt){let Le=0,Ft=0;for(const{target:Se,value:me}of Ht.sourceLinks){let Ve=me*(Se.layer-Ht.layer);Le+=It(Ht,Se)*Ve,Ft+=Ve}if(!(Ft>0))continue;let gn=(Le/Ft-Ht.y0)*Bt;Ht.y0+=gn,Ht.y1+=gn,U(Ht)}A===void 0&&xt.sort(oK),vt(xt,Et)}}function vt(Ot,Bt){const Et=Ot.length>>1,Z=Ot[Et];pt(Ot,Z.y0-b,Et-1,Bt),X(Ot,Z.y1+b,Et+1,Bt),pt(Ot,p,Ot.length-1,Bt),X(Ot,a,0,Bt)}function X(Ot,Bt,Et,Z){for(;Et1e-6&&(Ct.y0+=xt,Ct.y1+=xt),Bt=Ct.y1+b}}function pt(Ot,Bt,Et,Z){for(;Et>=0;--Et){const Ct=Ot[Et],xt=(Ct.y1-Bt)*Z;xt>1e-6&&(Ct.y0-=xt,Ct.y1-=xt),Bt=Ct.y0-b}}function U({sourceLinks:Ot,targetLinks:Bt}){if(I===void 0){for(const{source:{sourceLinks:Et}}of Bt)Et.sort(y$t);for(const{target:{targetLinks:Et}}of Ot)Et.sort(m$t)}}function Tt(Ot){if(I===void 0)for(const{sourceLinks:Bt,targetLinks:Et}of Ot)Bt.sort(y$t),Et.sort(m$t)}function nt(Ot,Bt){let Et=Ot.y0-(Ot.sourceLinks.length-1)*b/2;for(const{target:Z,width:Ct}of Ot.sourceLinks){if(Z===Bt)break;Et+=Ct+b}for(const{source:Z,width:Ct}of Bt.targetLinks){if(Z===Ot)break;Et-=Ct}return Et}function It(Ot,Bt){let Et=Bt.y0-(Bt.targetLinks.length-1)*b/2;for(const{source:Z,width:Ct}of Bt.targetLinks){if(Z===Ot)break;Et+=Ct+b}for(const{target:Z,width:Ct}of Ot.sourceLinks){if(Z===Bt)break;Et-=Ct}return Et}return z}var spt=Math.PI,apt=2*spt,OT=1e-6,MYe=apt-OT;function opt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function E$t(){return new opt}opt.prototype=E$t.prototype={constructor:opt,moveTo:function(i,a){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(i,a){this._+="L"+(this._x1=+i)+","+(this._y1=+a)},quadraticCurveTo:function(i,a,f,p){this._+="Q"+ +i+","+ +a+","+(this._x1=+f)+","+(this._y1=+p)},bezierCurveTo:function(i,a,f,p,w,m){this._+="C"+ +i+","+ +a+","+ +f+","+ +p+","+(this._x1=+w)+","+(this._y1=+m)},arcTo:function(i,a,f,p,w){i=+i,a=+a,f=+f,p=+p,w=+w;var m=this._x1,b=this._y1,E=f-i,_=p-a,A=m-i,I=b-a,B=A*A+I*I;if(w<0)throw new Error("negative radius: "+w);if(this._x1===null)this._+="M"+(this._x1=i)+","+(this._y1=a);else if(B>OT)if(!(Math.abs(I*E-_*A)>OT)||!w)this._+="L"+(this._x1=i)+","+(this._y1=a);else{var N=f-m,R=p-b,z=E*E+_*_,W=N*N+R*R,et=Math.sqrt(z),st=Math.sqrt(B),at=w*Math.tan((spt-Math.acos((z+B-W)/(2*et*st)))/2),bt=at/st,mt=at/et;Math.abs(bt-1)>OT&&(this._+="L"+(i+bt*A)+","+(a+bt*I)),this._+="A"+w+","+w+",0,0,"+ +(I*N>A*R)+","+(this._x1=i+mt*E)+","+(this._y1=a+mt*_)}},arc:function(i,a,f,p,w,m){i=+i,a=+a,f=+f,m=!!m;var b=f*Math.cos(p),E=f*Math.sin(p),_=i+b,A=a+E,I=1^m,B=m?p-w:w-p;if(f<0)throw new Error("negative radius: "+f);this._x1===null?this._+="M"+_+","+A:(Math.abs(this._x1-_)>OT||Math.abs(this._y1-A)>OT)&&(this._+="L"+_+","+A),f&&(B<0&&(B=B%apt+apt),B>MYe?this._+="A"+f+","+f+",0,1,"+I+","+(i-b)+","+(a-E)+"A"+f+","+f+",0,1,"+I+","+(this._x1=_)+","+(this._y1=A):B>OT&&(this._+="A"+f+","+f+",0,"+ +(B>=spt)+","+I+","+(this._x1=i+f*Math.cos(w))+","+(this._y1=a+f*Math.sin(w))))},rect:function(i,a,f,p){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)+"h"+ +f+"v"+ +p+"h"+-f+"Z"},toString:function(){return this._}};function T$t(i){return function(){return i}}function DYe(i){return i[0]}function IYe(i){return i[1]}var OYe=Array.prototype.slice;function PYe(i){return i.source}function FYe(i){return i.target}function NYe(i){var a=PYe,f=FYe,p=DYe,w=IYe,m=null;function b(){var E,_=OYe.call(arguments),A=a.apply(this,_),I=f.apply(this,_);if(m||(m=E=E$t()),i(m,+p.apply(this,(_[0]=A,_)),+w.apply(this,_),+p.apply(this,(_[0]=I,_)),+w.apply(this,_)),E)return m=null,E+""||null}return b.source=function(E){return arguments.length?(a=E,b):a},b.target=function(E){return arguments.length?(f=E,b):f},b.x=function(E){return arguments.length?(p=typeof E=="function"?E:T$t(+E),b):p},b.y=function(E){return arguments.length?(w=typeof E=="function"?E:T$t(+E),b):w},b.context=function(E){return arguments.length?(m=E??null,b):m},b}function BYe(i,a,f,p,w){i.moveTo(a,f),i.bezierCurveTo(a=(a+p)/2,f,a,w,p,w)}function RYe(){return NYe(BYe)}function jYe(i){return[i.source.x1,i.y0]}function $Ye(i){return[i.target.x0,i.y1]}function zYe(){return RYe().source(jYe).target($Ye)}const C$t=class RLt{static next(a){return new RLt(a+ ++RLt.count)}constructor(a){this.id=a,this.href=`#${a}`}toString(){return"url("+this.href+")"}};C$t.count=0;let _$t=C$t;const qYe={left:EYe,right:TYe,center:CYe,justify:v$t},HYe={draw:function(i,a,f,p){const{securityLevel:w,sankey:m}=Oe(),b=SOt.sankey;let E;w==="sandbox"&&(E=yr("#i"+a));const _=yr(w==="sandbox"?E.nodes()[0].contentDocument.body:"body"),A=w==="sandbox"?_.select(`[id="${a}"]`):yr(`[id="${a}"]`),I=(m==null?void 0:m.width)??b.width,B=(m==null?void 0:m.height)??b.width,N=(m==null?void 0:m.useMaxWidth)??b.useMaxWidth,R=(m==null?void 0:m.nodeAlignment)??b.nodeAlignment,z=(m==null?void 0:m.prefix)??b.prefix,W=(m==null?void 0:m.suffix)??b.suffix,et=(m==null?void 0:m.showValues)??b.showValues;k0(A,B,I,N);const st=p.db.getGraph(),at=qYe[R],bt=10;LYe().nodeId(pt=>pt.id).nodeWidth(bt).nodePadding(10+(et?15:0)).nodeAlign(at).extent([[0,0],[I,B]])(st);const yt=XU(X7e);A.append("g").attr("class","nodes").selectAll(".node").data(st.nodes).join("g").attr("class","node").attr("id",pt=>(pt.uid=_$t.next("node-")).id).attr("transform",function(pt){return"translate("+pt.x0+","+pt.y0+")"}).attr("x",pt=>pt.x0).attr("y",pt=>pt.y0).append("rect").attr("height",pt=>pt.y1-pt.y0).attr("width",pt=>pt.x1-pt.x0).attr("fill",pt=>yt(pt.id));const ft=({id:pt,value:U})=>et?`${pt} -${z}${Math.round(U*100)/100}${W}`:pt;A.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(st.nodes).join("text").attr("x",pt=>pt.x0(pt.y1+pt.y0)/2).attr("dy",`${et?"0":"0.35"}em`).attr("text-anchor",pt=>pt.x0(U.uid=_$t.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",U=>U.source.x1).attr("x2",U=>U.target.x0);pt.append("stop").attr("offset","0%").attr("stop-color",U=>yt(U.source.id)),pt.append("stop").attr("offset","100%").attr("stop-color",U=>yt(U.target.id))}let X;switch(vt){case"gradient":X=pt=>pt.uid;break;case"source":X=pt=>yt(pt.source.id);break;case"target":X=pt=>yt(pt.target.id);break;default:X=vt}ut.append("path").attr("d",zYe()).attr("stroke",X).attr("stroke-width",pt=>Math.max(1,pt.width))}},VYe=i=>i.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` -`).trim(),GYe=rK.parse.bind(rK);rK.parse=i=>GYe(VYe(i));const UYe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:rK,db:xYe,renderer:HYe}},Symbol.toStringTag,{value:"Module"}));return Bb}); diff --git a/doc/src/SUMMARY.md b/doc/src/SUMMARY.md index ded1a4ae..ce150e60 100644 --- a/doc/src/SUMMARY.md +++ b/doc/src/SUMMARY.md @@ -14,3 +14,14 @@ - [Components]() - [Client]() - [Session Lifecycle](./components/client/session-lifecycle.md) + - [@revolt/i18n]() + - [Using Lingui](./components/i18n/using-lingui.md) + - [Using Dayjs](./components/i18n/using-dayjs.md) + - [Translating Errors](./components/i18n/translating-errors.md) + - [@revolt/modal]() + - [General Guidelines](./components/modal/guidelines.md) + - [@revolt/ui]() + - [Themes]() + - [Reference Guide](./components/ui/themes/reference.md) + - [Tools]() + - [Form2](./components/ui/tools/form2.md) diff --git a/doc/src/components/client/session-lifecycle.md b/doc/src/components/client/session-lifecycle.md index 588ee67d..318d96d2 100644 --- a/doc/src/components/client/session-lifecycle.md +++ b/doc/src/components/client/session-lifecycle.md @@ -1,6 +1,6 @@ # Session Lifecycle -To ensure reliability for users on Revolt, clients should implement the following rigid specification for maintaining a session. At a high-level, it should be implemented as a state machine. +To ensure reliability for users on Upryzing, clients should implement the following rigid specification for maintaining a session. At a high-level, it should be implemented as a state machine. diff --git a/doc/src/hello.md b/doc/src/hello.md index 785dd9a1..5b405604 100644 --- a/doc/src/hello.md +++ b/doc/src/hello.md @@ -1,6 +1,6 @@ # Upryzing Frontend -Welcome to the developer documentation for the Revolt frontend (this covers functionality and general guidelines for Revolt for Web as well as other platforms we build for). +Welcome to the developer documentation for the Lavender project and general guidelines for other platforms we build for. This is very much incomplete and needs more work! diff --git a/doc/src/user-interface/channels/text-channels.md b/doc/src/user-interface/channels/text-channels.md index 7d117d21..f045c7ec 100644 --- a/doc/src/user-interface/channels/text-channels.md +++ b/doc/src/user-interface/channels/text-channels.md @@ -28,4 +28,4 @@ This algorithm expects that the rendering of the output list is reversed, if you 7. If **date** is not null: 1. Push **date** formatted as "MMMM D, YYYY" to list **E**
(type id: 1; cache key: _formatted date_) -_Note: the Revolt client also caches the objects produced for list **E** by pushing each object into a Map by their given cache key above, then retrieving them the next time the code is run OR creating a new object if one is not present. This prevents Solid.js from completely rebuilding the DOM whenever the message list updates._ +_Note: the Upryzing client also caches the objects produced for list **E** by pushing each object into a Map by their given cache key above, then retrieving them the next time the code is run OR creating a new object if one is not present. This prevents Solid.js from completely rebuilding the DOM whenever the message list updates._ diff --git a/doc/src/user-interface/navigation/conversations.md b/doc/src/user-interface/navigation/conversations.md index 282a41fe..7811aee4 100644 --- a/doc/src/user-interface/navigation/conversations.md +++ b/doc/src/user-interface/navigation/conversations.md @@ -10,4 +10,4 @@ With a list of direct and group conversations below (descending order by last me -
The conversations sidebar as it appears in Revolt for Web
+
The conversations sidebar as it appears in Lavender
diff --git a/doc/src/user-interface/navigation/server-sidebar.md b/doc/src/user-interface/navigation/server-sidebar.md index db5e3734..f51560f2 100644 --- a/doc/src/user-interface/navigation/server-sidebar.md +++ b/doc/src/user-interface/navigation/server-sidebar.md @@ -6,7 +6,7 @@ Categories may be collapsed, and continue to show the active channels when colla -
The server sidebar as it appears in Revolt for Web
+
The server sidebar as it appears in Lavender
## Ordered Channels Algorithm diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..5d56d94b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,38 @@ +import eslint from "@eslint/js"; +import prettier from "eslint-plugin-prettier/recommended"; +import solid from "eslint-plugin-solid/configs/typescript"; +import { defineConfig } from "eslint/config"; +import tseslint from "typescript-eslint"; + +export default defineConfig([ + { + ignores: [ + // minified files + "**/i18n/catalogs/**", + "**/i18n/locales/**", + + // build artifacts + "**/coverage/**", + "**/dist/**", + "**/styled-system/**", + ], + }, + eslint.configs.recommended, + tseslint.configs.recommended, + solid, + prettier, + { + rules: { + "@typescript-eslint/no-unused-vars": [ + "warn", + { + caughtErrors: "all", + varsIgnorePattern: "^_", + argsIgnorePattern: "^_", + }, + ], + "solid/jsx-no-undef": ["off"], + "prettier/prettier": ["warn"], + }, + }, +]); diff --git a/lifecycle/deno.json b/lifecycle/deno.json new file mode 100644 index 00000000..c26ba224 --- /dev/null +++ b/lifecycle/deno.json @@ -0,0 +1,5 @@ +{ + "imports": { + "@std/assert": "jsr:@std/assert@1" + } +} \ No newline at end of file diff --git a/lifecycle/deno.lock b/lifecycle/deno.lock new file mode 100644 index 00000000..5ccdcd09 --- /dev/null +++ b/lifecycle/deno.lock @@ -0,0 +1,23 @@ +{ + "version": "4", + "specifiers": { + "jsr:@std/internal@^1.0.10": "1.0.12", + "jsr:@std/path@*": "1.1.2" + }, + "jsr": { + "@std/internal@1.0.12": { + "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027" + }, + "@std/path@1.1.2": { + "integrity": "c0b13b97dfe06546d5e16bf3966b1cadf92e1cc83e56ba5476ad8b498d9e3038", + "dependencies": [ + "jsr:@std/internal" + ] + } + }, + "workspace": { + "dependencies": [ + "jsr:@std/assert@1" + ] + } +} diff --git a/lifecycle/generateEmojiMapping.mjs b/lifecycle/generateEmojiMapping.ts similarity index 55% rename from lifecycle/generateEmojiMapping.mjs rename to lifecycle/generateEmojiMapping.ts index e5bd7dab..ccf5c89c 100644 --- a/lifecycle/generateEmojiMapping.mjs +++ b/lifecycle/generateEmojiMapping.ts @@ -1,28 +1,35 @@ -import { writeFile } from "node:fs/promises"; +import { resolve } from "jsr:@std/path"; const ordering = await fetch( - "https://raw.githubusercontent.com/googlefonts/emoji-metadata/main/emoji_15_0_ordering.json" + "https://raw.githubusercontent.com/googlefonts/emoji-metadata/main/emoji_17_0_ordering.json" ).then((res) => res.json()); -const Mapping = {}; +const Mapping: Record = {}; + +const RE_SHORTCODE = /^:[\w-]+:$/; for (const group of Object.keys(ordering)) { for (const emote of ordering[group].emoji) { const emoji = String.fromCodePoint(...emote.base); for (const shortcode of emote.shortcodes) { + if (!RE_SHORTCODE.test(shortcode)) continue; + Mapping[ shortcode .substring(1, shortcode.length - 1) - .replace(/ /g, "-") .toLowerCase() ] = emoji; + + break; } } } -writeFile( - "packages/client/components/ui/emojiMapping.json", - JSON.stringify(Mapping), - "utf8" +Deno.writeTextFile( + resolve( + import.meta.dirname!, + "../packages/client/components/ui/emojiMapping.json" + ), + JSON.stringify(Mapping) ); diff --git a/lifecycle/migrateTranslations.ts b/lifecycle/migrateTranslations.ts new file mode 100644 index 00000000..82b28b52 --- /dev/null +++ b/lifecycle/migrateTranslations.ts @@ -0,0 +1,71 @@ +// deno run -A lifecycle/migrateTranslations.ts +import { Languages } from "../packages/client/components/i18n/Languages.ts"; + +// 1. construct STRING -> OBJECT PATH mapping +const source = JSON.parse( + await Deno.readTextFile("/home/insert/Projects/revolt-translations/en.json"), +); + +const STRING_MAPPING = {}; + +function recurseSource(obj: any, path = "") { + if (typeof obj === "string") { + STRING_MAPPING[obj] = path; + return; + } + + for (const key of Object.keys(obj)) { + recurseSource(obj[key], path + "." + key); + } +} + +recurseSource(source); + +// 2. read STRINGs we need from source gettext +const source_gettext = await Deno.readTextFile( + "/home/insert/Projects/stoat-frontend/packages/client/components/i18n/catalogs/en/messages.po", +); + +const RE_GETTEXT = /msgid "([^"]+)"/g; +const STRINGs = [...source_gettext.matchAll(RE_GETTEXT)].map((r) => r[1]); + +// -- debug +console.info( + `There are ${Object.keys(STRING_MAPPING).length} original strings with ${STRINGs.length} targets. We can re-use ${STRINGs.filter((x) => STRING_MAPPING[x]).length} strings.`, +); + +// 3. copy STRINGs into new gettext +for (const { i18n } of Object.values(Languages)) { + if (i18n === "dev") break; + + const source = JSON.parse( + await Deno.readTextFile( + `/home/insert/Projects/revolt-translations/${i18n}.json`, + ), + ); + + let source_gettext = await Deno.readTextFile( + `/home/insert/Projects/stoat-frontend/packages/client/components/i18n/catalogs/${i18n}/messages.po`, + ); + + for (const string of STRINGs) { + const path = STRING_MAPPING[string]; + if (path) { + const components = path.split(".").filter((x) => x); + const value = components.reduce((d, k) => d[k] ?? {}, source); + if (typeof value === "string") { + source_gettext = source_gettext.replace( + new RegExp(`msgid "${string}" +msgstr ""`), + `msgid "${string}" +msgstr "${value}"`, + ); + } + } + } + + await Deno.writeTextFile( + `/home/insert/Projects/stoat-frontend/packages/client/components/i18n/catalogs/${i18n}/messages.po`, + source_gettext, + ); +} diff --git a/lifecycle/syncOpenProject.ts b/lifecycle/syncOpenProject.ts new file mode 100644 index 00000000..b685f36e --- /dev/null +++ b/lifecycle/syncOpenProject.ts @@ -0,0 +1,161 @@ +// This file synchronises issues and their status from OpenProject to GitHub +// deno run --allow-net --allow-env lifecycle/syncOpenProject.ts + +const GH_TOKEN = Deno.env.get("GH_TOKEN"); +const OP_TOKEN = Deno.env.get("OP_TOKEN"); + +const params = new URLSearchParams({ + offset: "1", + pageSize: "1000", + // filters: JSON.stringify([{ "status_id": { "operator": "o", "values": null }}]), + sortBy: JSON.stringify([["id", "desc"]]), +}); + +const data: { + _embedded: { + elements: { + id: number; + subject: string; + lockVersion: number; + description: { + raw: string; + }; + }[]; + }; +} = await fetch( + "https://op.revolt.wtf/api/v3/projects/8/work_packages?" + params.toString(), + { + headers: { + accept: "application/hal+json", + }, + }, +).then((r) => r.json()); + +const RE_ISSUE = /https:\/\/github\.com\/revoltchat\/frontend\/issues\/(\d+)/; + +const ghIssues: { + number: number; + title: string; +}[] = await fetch( + "https://api.github.com/repos/stoatchat/for-web/issues?per_page=100&sort=created", +).then((r) => r.json()); + +const issues: { + id: number; + subject: string; + description: string; + lockVersion: number; + + ghIssue: number | null; +}[] = data._embedded.elements.map( + ({ id, subject, lockVersion, description: { raw: description } }) => { + const issueMatch = description.match(RE_ISSUE)?.[1]; + + return { + id, + subject, + description, + lockVersion, + + ghIssue: issueMatch ? parseInt(issueMatch) : null, + }; + }, +); + +const idMapGHtoOP = Object.fromEntries( + issues + .filter((issue) => issue.ghIssue) + .map((issue) => [issue.ghIssue, issue.id]), +); + +// const idMapOPtoGH = Object.fromEntries( +// issues +// .filter((issue) => issue.ghIssue) +// .map((issue) => [issue.id, issue.ghIssue]), +// ); + +const ghIssuesMap = Object.fromEntries( + ghIssues.map((issue) => [issue.number, issue]), +); + +for (const issue of ghIssues) { + if (!idMapGHtoOP[issue.number]) { + console.warn(`GH#${issue.number} is missing OpenProject issue`); + } +} + +for (const issue of issues) { + if (issue.ghIssue) { + const ghIssue = ghIssuesMap[issue.ghIssue]; + if (ghIssue) { + const PREFIX = `[OP#${issue.id}] `; + if (!ghIssue.title.startsWith(PREFIX)) { + console.info( + `GH#${issue.ghIssue} for OP#${issue.id} has incorrect title: "${ghIssue.title}"`, + ); + + await fetch( + `https://api.github.com/repos/stoatchat/for-web/issues/${ghIssue.number}`, + { + method: "PATCH", + headers: { + Accept: "application/vnd.github+json", + Authorization: `Bearer ${GH_TOKEN}`, + "X-GitHub-Api-Version": "2022-11-28", + }, + body: JSON.stringify({ + title: PREFIX + ghIssue.title, + }), + }, + ); + } + } else { + console.warn(`OP#${issue.id} links to non-existent GH#${issue.ghIssue}?`); + } + } else { + console.info(`OP#${issue.id} is missing GitHub issue`); + + const PREFIX = `[OP#${issue.id}] `; + const result: { html_url: string } = await fetch( + `https://api.github.com/repos/stoatchat/for-web/issues`, + { + method: "POST", + headers: { + Accept: "application/vnd.github+json", + Authorization: `Bearer ${GH_TOKEN}`, + "X-GitHub-Api-Version": "2022-11-28", + }, + body: JSON.stringify({ + title: PREFIX + issue.subject, + body: `**[View issue on OpenProject](${`https://op.revolt.wtf/projects/revolt-for-web/work_packages/${issue.id}/activity`})**`, + }), + }, + ).then((r) => r.json()); + + const url = `**[View issue on GitHub](${result.html_url})**`; + await fetch( + `https://op.revolt.wtf/api/v3/work_packages/${issue.id}?notify=false`, + { + method: "PATCH", + body: JSON.stringify({ + // subject: issue.subject, + description: { + raw: issue.description.length + ? `${issue.description}\n\n${url}` + : url, + }, + lockVersion: issue.lockVersion, + }), + headers: { + Accept: "application/hal+json", + "Content-Type": "application/json", + Authorization: "Basic " + btoa("apikey:" + OP_TOKEN), + }, + }, + ) + .then((r) => r.json()) + .then((res) => { + if (res._type === "Error") throw res; + }); + } +} diff --git a/package.json b/package.json index 60cbe641..c684a2ee 100644 --- a/package.json +++ b/package.json @@ -1,27 +1,16 @@ { "name": "@upryzing/lavender-mono", "version": "0.1.0", + "version-date": "2026-02-12", "description": "Upryzing's main web and desktop apps", - "scripts": { - "test": "pnpm --filter test-runner test", - "test:coverage": "pnpm --filter test-runner coverage", - "test:browser:install": "pnpm --filter browser-test-runner exec playwright install", - "test:browser:regression": "pnpm --filter browser-test-runner exec playwright test regression", - "test:browser:report": "pnpm --filter browser-test-runner exec playwright show-report", - "lint": "eslint --ext .ts,.tsx components/ packages/", - "lint:fix": "eslint --fix --ext .ts,.tsx packages/client", - "dev:web": "pnpm --filter @upryzing/lavender dev", - "dev:desktop": "pnpm --filter @upryzing/lavender-desktop tauri dev", - "build:deps": "pnpm --filter @upryzing/upryzing.js build", - "build:web": "pnpm --filter @upryzing/lavender build", - "build:desktop": "pnpm --filter @upryzing/lavender-desktop tauri build", - "start": "cd packages/client && pnpm run serve", - "fmt": "prettier --write ./packages/client/**/*.{ts,tsx,json}", - "fmt:check": "prettier --check ./packages/client/**/*.{ts,tsx,json}", - "typecheck": "cd packages/client && pnpm run typecheck" - }, "devDependencies": { - "eslint": "^8.49.0" + "@eslint/js": "^9.39.1", + "eslint": "^9.26.0", + "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-solid": "^0.14.5", + "prettier": "^3.8.1", + "prettier-plugin-organize-imports": "^4.3.0", + "typescript-eslint": "^8.54.0" }, "keywords": [], "engines": { @@ -29,10 +18,5 @@ "pnpm": ">=8" }, "private": true, - "packageManager": "pnpm@9.14.3+sha256.652c47dac7c2b9350db4cdb9330c087d527114a0c2dff4cbac7ea9b96be928bd", - "dependencies": { - "@pandabox/prettier-plugin": "^0.1.3", - "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "prettier": "^2.8.8" - } + "packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39" } \ No newline at end of file diff --git a/packages/client/.env.example b/packages/client/.env.example index aad5b4bd..89713d1a 100644 --- a/packages/client/.env.example +++ b/packages/client/.env.example @@ -1,4 +1,4 @@ -# connect to local Revolt instance +# connect to local Upryzing instance VITE_API_URL=http://localhost:14702 VITE_WS_URL=ws://localhost:14703 VITE_MEDIA_URL=http://localhost:14704 @@ -9,3 +9,4 @@ VITE_HCAPTCHA_SITEKEY= # specify Sentry DSN VITE_SENTRY_DSN= +VITE_SENTRY_TUNNEL= diff --git a/packages/client/.gitignore b/packages/client/.gitignore index 096b9604..d088b24f 100644 --- a/packages/client/.gitignore +++ b/packages/client/.gitignore @@ -3,4 +3,12 @@ public/assets ## Panda styled-system styled-system-studio -*storybook.log \ No newline at end of file +*storybook.log + +# Playwright +node_modules/ +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ +/playwright/.auth/ diff --git a/packages/client/.storybook/main.ts b/packages/client/.storybook/main.ts deleted file mode 100644 index b6631c16..00000000 --- a/packages/client/.storybook/main.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { StorybookConfig } from "storybook-solidjs-vite"; - -const config: StorybookConfig = { - stories: ["../**/*.mdx", "../**/*.story.@(js|jsx|mjs|ts|tsx)"], - // stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], - addons: [ - "@storybook/addon-links", - "@storybook/addon-essentials", - "@chromatic-com/storybook", - "@storybook/addon-interactions", - ], - framework: { - name: "storybook-solidjs-vite", - options: {}, - }, -}; -export default config; diff --git a/packages/client/.storybook/panda.css b/packages/client/.storybook/panda.css deleted file mode 100644 index e27a23b7..00000000 --- a/packages/client/.storybook/panda.css +++ /dev/null @@ -1 +0,0 @@ -@layer reset, base, tokens, recipes, utilities; diff --git a/packages/client/.storybook/preview.tsx b/packages/client/.storybook/preview.tsx deleted file mode 100644 index 9be8a494..00000000 --- a/packages/client/.storybook/preview.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { ApplyGlobalStyles, ThemeProvider, darkTheme } from "@revolt/ui"; -import "@revolt/ui/styles"; - -import "./panda.css"; - -const preview: Preview = { - parameters: { - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/i, - }, - }, - }, - decorators: [ - (story) => ( - - {story} - - ), - ], -}; - -export default preview; diff --git a/packages/client/codegen.plugin.ts b/packages/client/codegen.plugin.ts index a4c5f7f0..779d7656 100644 --- a/packages/client/codegen.plugin.ts +++ b/packages/client/codegen.plugin.ts @@ -27,7 +27,7 @@ export default function codegenPlugin() { [key]: value, }; }, - { type } + { type }, ) as { type: "directives"; props?: string; @@ -35,7 +35,7 @@ export default function codegenPlugin() { }; switch (args.type) { - case "directives": + case "directives": { // Generate directives forwarding const source = args.props ?? "props"; const permitted: string[] = @@ -43,6 +43,7 @@ export default function codegenPlugin() { return DIRECTIVES.filter((d) => permitted.includes(d)) .map((d) => `use:${d}={${source}["use:${d}"]}`) .join("\n"); + } default: return substring; } @@ -52,7 +53,7 @@ export default function codegenPlugin() { if (!id.endsWith("client/components/ui/index.tsx")) src = `import { ${DIRECTIVES.join( - ", " + ", ", )} } from "@revolt/ui/directives";\n` + src; } diff --git a/packages/client/components/app/index.tsx b/packages/client/components/app/index.tsx index 411a38df..9c987e38 100644 --- a/packages/client/components/app/index.tsx +++ b/packages/client/components/app/index.tsx @@ -1,6 +1,6 @@ +export { DraftMessages } from "./interface/channels/text/DraftMessages"; export { Message } from "./interface/channels/text/Message"; export { Messages } from "./interface/channels/text/Messages"; -export { DraftMessages } from "./interface/channels/text/DraftMessages"; export * from "./interface/settings"; export * from "./menus"; diff --git a/packages/client/components/app/interface/channels/text/DraftMessage.tsx b/packages/client/components/app/interface/channels/text/DraftMessage.tsx index bf93c3a2..0ba464b4 100644 --- a/packages/client/components/app/interface/channels/text/DraftMessage.tsx +++ b/packages/client/components/app/interface/channels/text/DraftMessage.tsx @@ -1,11 +1,22 @@ -import { For } from "solid-js"; +import { For, Match, Switch } from "solid-js"; -import type { Channel } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import type { Channel } from "upryzing.js"; +import { styled } from "styled-system/jsx"; import { useClient, useUser } from "@revolt/client"; +import { Markdown } from "@revolt/markdown"; import { userInformation } from "@revolt/markdown/users"; +import { useState } from "@revolt/state"; import type { UnsentMessage } from "@revolt/state/stores/Draft"; -import { Avatar, MessageContainer, MessageReply, Username } from "@revolt/ui"; +import { + Avatar, + MessageContainer, + MessageReply, + SizedContent, + Text, + Username, +} from "@revolt/ui"; import { DraftMessageContextMenu } from "../../../menus/DraftMessageContextMenu"; @@ -19,23 +30,25 @@ interface Props { * Unsent message preview */ export function DraftMessage(props: Props) { - const client = useClient(); const user = useUser(); + const state = useState(); + const client = useClient(); const userInfo = () => userInformation(user(), props.channel.server?.member); return ( } - children={props.draft.content} timestamp={ - // TODO - // i18n missing - props.draft.status === "sending" - ? "Sending..." - : props.draft.status === "failed" - ? "Failed to send" // add icons here - : "Unsent message" // add icons here + props.draft.status === "sending" ? ( + Sending... + ) : props.draft.status === "failed" ? ( + Failed to send + ) : ( + Unsent message + ) } sendStatus={props.draft.status === "sending" ? "sending" : "failed"} username={} @@ -52,6 +65,50 @@ export function DraftMessage(props: Props) { contextMenu={() => ( )} - /> + compact={state.settings.getValue("appearance:compact_mode")} + > + + + + + {(id) => { + const file = state.draft.getFile(id); + + return ( + <> + + Uploading file `{file.file.name}`...{" "} + {(file.uploadProgress[0]() * 100).toFixed()}% + + + + + + + + + + ); + }} + + ); } + +/** + * Break all text and prevent overflow from math blocks + */ +const BreakText = styled("div", { + base: { + wordBreak: "break-word", + + "& .math": { + overflowX: "auto", + overflowY: "hidden", + maxHeight: "100vh", + }, + }, +}); diff --git a/packages/client/components/app/interface/channels/text/DraftMessages.tsx b/packages/client/components/app/interface/channels/text/DraftMessages.tsx index ebbe781a..eabd9e75 100644 --- a/packages/client/components/app/interface/channels/text/DraftMessages.tsx +++ b/packages/client/components/app/interface/channels/text/DraftMessages.tsx @@ -1,13 +1,15 @@ import { For } from "solid-js"; -import { Channel } from "@upryzing/upryzing.js"; +import { Channel } from "upryzing.js"; -import { state } from "@revolt/state"; +import { useState } from "@revolt/state"; import { DraftMessage } from "./DraftMessage"; interface Props { channel: Channel; + tail: boolean; + sentIds: string[]; } /** @@ -16,10 +18,13 @@ interface Props { * @returns */ export function DraftMessages(props: Props) { + const state = useState(); + const unsent = () => state.draft .getPendingMessages(props.channel.id) - .filter((draft) => draft.status === "sending"); + .filter((draft) => draft.status === "sending") + .filter((draft) => !props.sentIds.includes(draft.idempotencyKey)); const failed = () => state.draft @@ -33,7 +38,7 @@ export function DraftMessages(props: Props) { )} diff --git a/packages/client/components/app/interface/channels/text/EditMessage.tsx b/packages/client/components/app/interface/channels/text/EditMessage.tsx new file mode 100644 index 00000000..123a961a --- /dev/null +++ b/packages/client/components/app/interface/channels/text/EditMessage.tsx @@ -0,0 +1,103 @@ +import { Match, Switch } from "solid-js"; + +import { useMutation } from "@tanstack/solid-query"; +import { Message } from "upryzing.js"; +import { css } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { useClient } from "@revolt/client"; +import { KeybindAction, createKeybind } from "@revolt/keybinds"; +import { useModals } from "@revolt/modal"; +import { useState } from "@revolt/state"; +import { Text } from "@revolt/ui"; +import { TextEditor2 } from "@revolt/ui/components/features/texteditor/TextEditor2"; +import { useSearchSpace } from "@revolt/ui/components/utils/autoComplete"; + +export function EditMessage(props: { message: Message }) { + const state = useState(); + const client = useClient(); + const { openModal, isOpen, pop } = useModals(); + + const initialValue = [state.draft.editingMessageContent || ""] as const; + + const change = useMutation(() => ({ + mutationFn: (content: string) => props.message.edit({ content }), + onSuccess() { + state.draft.setEditingMessage(undefined); + }, + onError(error) { + openModal({ type: "error2", error }); + }, + })); + + function saveMessage() { + const content = state.draft.editingMessageContent; + + if (content?.length) { + state.draft._setNodeReplacement?.(["_focus"]); // focus message box + change.mutate(content); + } else if (isOpen("delete_message")) { + void props.message.delete(); + pop(); + } else { + openModal({ + type: "delete_message", + message: props.message, + }); + } + } + + createKeybind(KeybindAction.CHAT_CANCEL_EDITING, () => { + state.draft.setEditingMessage(undefined); + state.draft._setNodeReplacement?.(["_focus"]); // focus message box + }); + + const searchSpace = useSearchSpace(() => props.message, client); + + return ( + <> + + + + + + escape to{" "} + state.draft.setEditingMessage(undefined)}> + cancel + {" "} + · enter to save + + } + > + + Saving message... + + + + ); +} + +const EditorBox = styled("div", { + base: { + background: "var(--md-sys-color-surface-container-highest)", + color: "var(--md-sys-color-on-surface-container)", + borderRadius: "var(--borderRadius-sm)", + padding: "var(--gap-md)", + }, +}); + +const Action = styled("span", { + base: { + fontWeight: 600, + cursor: "pointer", + color: "var(--md-sys-color-primary)", + }, +}); diff --git a/packages/client/components/app/interface/channels/text/Message.tsx b/packages/client/components/app/interface/channels/text/Message.tsx index 1c48cc70..d4d60b44 100644 --- a/packages/client/components/app/interface/channels/text/Message.tsx +++ b/packages/client/components/app/interface/channels/text/Message.tsx @@ -1,22 +1,18 @@ -import { For, Match, Show, Switch, onMount } from "solid-js"; +import { For, Match, Show, Switch, createSignal, onMount } from "solid-js"; -import { - Message as MessageInterface, - WebsiteEmbed, -} from "@upryzing/upryzing.js"; +import { useLingui } from "@lingui-solid/solid/macro"; +import { Message as MessageInterface, WebsiteEmbed } from "upryzing.js"; import { cva } from "styled-system/css"; import { styled } from "styled-system/jsx"; import { decodeTime } from "ulid"; import { useClient } from "@revolt/client"; -import { dayjs, useTranslation } from "@revolt/i18n"; +import { useTime } from "@revolt/i18n"; import { Markdown } from "@revolt/markdown"; -import { state } from "@revolt/state"; +import { useState } from "@revolt/state"; import { Attachment, Avatar, - BreakText, - Column, Embed, MessageContainer, MessageReply, @@ -25,16 +21,8 @@ import { SystemMessageIcon, Tooltip, Username, - iconSize, } from "@revolt/ui"; - -import MdCloud from "@material-design-icons/svg/filled/cloud.svg?component-solid"; -import MdLink from "@material-design-icons/svg/filled/link.svg?component-solid"; -import MdNotificationsOff from "@material-design-icons/svg/filled/notifications_off.svg?component-solid"; -import MdSchedule from "@material-design-icons/svg/filled/schedule.svg?component-solid"; -import MdShield from "@material-design-icons/svg/filled/shield.svg?component-solid"; -import MdSmartToy from "@material-design-icons/svg/filled/smart_toy.svg?component-solid"; -import MdSpa from "@material-design-icons/svg/filled/spa.svg?component-solid"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; import { MessageContextMenu } from "../../../menus/MessageContextMenu"; import { @@ -42,6 +30,8 @@ import { floatingUserMenusFromMessage, } from "../../../menus/UserContextMenu"; +import { EditMessage } from "./EditMessage"; + /** * Regex for matching URLs */ @@ -63,15 +53,29 @@ interface Props { * Whether to highlight this message */ highlight?: boolean; + + /** + * Whether to replace content with editor + */ + editing?: boolean; + + /** + * Whether this message is a link + */ + isLink?: boolean; } /** * Render a Message with or without a tail */ export function Message(props: Props) { - const t = useTranslation(); + const dayjs = useTime(); + const state = useState(); + const { t } = useLingui(); const client = useClient(); + const [isHovering, setIsHovering] = createSignal(false); + /** * Determine whether this message only contains a GIF */ @@ -79,7 +83,10 @@ export function Message(props: Props) { props.message.embeds && props.message.embeds.length === 1 && props.message.embeds[0].type === "Website" && - (props.message.embeds[0] as WebsiteEmbed).specialContent?.type === "GIF" && + ((props.message.embeds[0] as WebsiteEmbed).specialContent?.type === "GIF" || + (props.message.embeds[0] as WebsiteEmbed).originalUrl?.startsWith( + "https://tenor.com", + )) && props.message.content && !props.message.content.replace(RE_URL, "").length; @@ -97,10 +104,17 @@ export function Message(props: Props) { return ( @@ -110,7 +124,14 @@ export function Message(props: Props) { class={avatarContainer()} use:floating={floatingUserMenusFromMessage(props.message)} > - + } contextMenu={() => } @@ -118,6 +139,8 @@ export function Message(props: Props) { edited={props.message.editedAt} mentioned={props.message.mentioned} highlight={props.highlight} + editing={props.editing} + isLink={props.isLink} tail={props.tail || state.settings.getValue("appearance:compact_mode")} header={ @@ -137,7 +160,7 @@ export function Message(props: Props) { return ( @@ -154,45 +177,37 @@ export function Message(props: Props) { props.message.authorId === "01FHGJ3NPP7XANQQH8C2BE44ZY" } > - - + + link - - + + brightness_alert - - + + + smart_toy + - - - - - - - + + + cloud + - - + + + notifications_off + - - + + + spa + @@ -217,14 +231,15 @@ export function Message(props: Props) { } > - - + + spa + {/* + + placeholder · + */} 0 } > - {props.message.author?.pronouns?.join(" · ")} {" • "} @@ -254,47 +268,56 @@ export function Message(props: Props) { } > - - - - user - ? floatingUserMenus( - user!, - // TODO: try to fetch on demand member - props.message.server?.getMember(user!.id) - ) - : {} - } - isServer={!!props.message.server} - /> - - + + + user + ? floatingUserMenus( + user!, + // TODO: try to fetch on demand member + props.message.server?.getMember(user!.id), + ) + : {} + } + isServer={!!props.message.server} + /> + + + + + + - - - - {(attachment) => } - - - - - {(embed) => } - - - > - } - interactions={props.message.interactions} - userId={client().user!.id} - addReaction={react} - removeReaction={unreact} - /> - + + + + + {(attachment) => ( + + )} + + + + + {(embed) => } + + + >} + interactions={props.message.interactions} + userId={client().user!.id} + addReaction={react} + removeReaction={unreact} + sendGIF={(content) => + props.message?.channel?.sendMessage({ + content, + replies: [{ id: props.message.id, mention: true }], + }) + } + /> ); } @@ -304,7 +327,7 @@ export function Message(props: Props) { */ const NewUser = styled("div", { base: { - color: "var(--customColours-success-color)", + fill: "var(--md-sys-color-primary)", }, }); @@ -314,6 +337,21 @@ const NewUser = styled("div", { const avatarContainer = cva({ base: { height: "fit-content", - borderRadius: "var(--borderRadius-full)", + borderRadius: "var(--borderRadius-circle)", + }, +}); + +/** + * Break all text and prevent overflow from math blocks + */ +const BreakText = styled("div", { + base: { + wordBreak: "break-word", + + "& .math": { + overflowX: "auto", + overflowY: "hidden", + maxHeight: "100vh", + }, }, }); diff --git a/packages/client/components/app/interface/channels/text/MessageCache.tsx b/packages/client/components/app/interface/channels/text/MessageCache.tsx new file mode 100644 index 00000000..6be325d6 --- /dev/null +++ b/packages/client/components/app/interface/channels/text/MessageCache.tsx @@ -0,0 +1,105 @@ +import { + type JSX, + createContext, + createEffect, + on, + onCleanup, + onMount, + useContext, +} from "solid-js"; + +import { Channel, Client, Message } from "upryzing.js"; + +import { useClientLifecycle } from "@revolt/client"; +import { State } from "@revolt/client/Controller"; + +type ChannelState = { + messages: Message[]; + atStart: boolean; + atEnd: boolean; + scrollTop?: number; +}; + +const CacheContext = createContext<{ + manage(channel: Channel, state: ChannelState): void; + unmanage(channel: Channel): ChannelState | void; + // preload(channel: Channel): void; :: future optimisation feature +}>(); + +/** + * Persistent message & channel state cache + */ +export function MessageCache(props: { client: Client; children: JSX.Element }) { + const lifecycle = useClientLifecycle(); + const cache: Record = {}; + + /** + * Handle incoming messages + * @param message Message object + */ + function onMessage(message: Message) { + const entry = cache[message.channelId]; + if (entry?.atEnd) { + entry.messages = [message, ...entry.messages].slice(0, 50); + } + } + + /** + * Handle deleted messages + */ + function onMessageDelete(message: { id: string; channelId: string }) { + const entry = cache[message.channelId]; + if (entry) { + entry.messages = entry.messages.filter((msg) => msg.id !== message.id); + } + } + + // Add listener for messages + onMount(() => { + props.client.addListener("messageCreate", onMessage); + props.client.addListener("messageDelete", onMessageDelete); + }); + + onCleanup(() => { + props.client.removeListener("messageCreate", onMessage); + props.client.removeListener("messageDelete", onMessageDelete); + }); + + // Clear cache when we reconnect + createEffect( + on( + () => lifecycle.lifecycle.state(), + (state) => { + if (state === State.Connected) { + for (const key of Object.keys(cache)) { + delete cache[key]; + } + } + }, + { defer: true }, + ), + ); + + return ( + + {props.children} + + ); +} + +export function useMessageCache() { + return useContext(CacheContext); +} diff --git a/packages/client/components/app/interface/channels/text/Messages.tsx b/packages/client/components/app/interface/channels/text/Messages.tsx index e5ee0259..3ce47921 100644 --- a/packages/client/components/app/interface/channels/text/Messages.tsx +++ b/packages/client/components/app/interface/channels/text/Messages.tsx @@ -15,21 +15,25 @@ import { splitProps, } from "solid-js"; -import { Channel, Message as MessageInterface } from "@upryzing/upryzing.js"; import isEqual from "lodash.isequal"; +import { Channel, Message as MessageInterface } from "upryzing.js"; import { styled } from "styled-system/jsx"; -import { useClient } from "@revolt/client"; -import { dayjs } from "@revolt/i18n"; +import { useClient, useClientLifecycle } from "@revolt/client"; +import { State } from "@revolt/client/Controller"; +import { useTime } from "@revolt/i18n"; +import { useState } from "@revolt/state"; import { BlockedMessage, ConversationStart, + Deferred, JumpToBottom, ListView, MessageDivider, } from "@revolt/ui"; import { Message } from "./Message"; +import { useMessageCache } from "./MessageCache"; /** * Default fetch limit @@ -55,7 +59,12 @@ interface Props { /** * Pending messages to render at the end of the list */ - pendingMessages?: JSX.Element; + pendingMessages?: (props: { tail: boolean; ids: string[] }) => JSX.Element; + + /** + * Display typing indicator instead of padding + */ + typingIndicator?: JSX.Element; /** * Highlighted message id @@ -89,7 +98,11 @@ interface Props { * Render messages in a Channel */ export function Messages(props: Props) { + const cache = useMessageCache(); + const lifecycle = useClientLifecycle(); const client = useClient(); + const state = useState(); + const dayjs = useTime(); /** * Loaded messages @@ -174,7 +187,7 @@ export function Messages(props: Props) { */ function setMessagesSafely(...messagesArr: MessageInterface[][]) { setMessages( - messagesArr.flat().toSorted((a, b) => b.id.localeCompare(a.id)) + messagesArr.flat().toSorted((a, b) => b.id.localeCompare(a.id)), ); } @@ -203,10 +216,21 @@ export function Messages(props: Props) { try { // Fetch messages for channel - const { messages } = await props.channel.fetchMessagesWithUsers({ - limit: props.fetchLimit, - nearby, - }); + let messages; + + const existingState = cache!.unmanage(props.channel); + const useExistingState = existingState && !nearby; + + if (useExistingState) { + messages = existingState.messages; + } else { + messages = await props.channel + .fetchMessagesWithUsers({ + limit: props.fetchLimit, + nearby, + }) + .then(({ messages }) => messages); + } // Cancel if we've been pre-empted if (preempted()) return; @@ -218,21 +242,29 @@ export function Messages(props: Props) { // If the messages fetched include the latest message, // then we are at the end and mark the channel as such. messages.findIndex( - (msg) => msg.id === props.channel.lastMessageId - ) !== -1 + (msg) => msg.id === props.channel.lastMessageId, + ) !== -1, ); } // Check if we're at the start of the conversation otherwise - else if (messages.length < (props.fetchLimit ?? DEFAULT_FETCH_LIMIT)) { + else if ( + !useExistingState && + messages.length < (props.fetchLimit ?? DEFAULT_FETCH_LIMIT) + ) { setStart(true); } + // Apply existing state if present + else if (existingState) { + setStart(existingState.atStart); + setEnd(existingState.atEnd); + } // Merge list with any new ones that have come in if we are at the end if (atEnd()) { const knownIds = new Set(collectedMessages!.map((x) => x.id)); setMessagesSafely( collectedMessages!, - messages.filter((x) => !knownIds.has(x.id)) + messages.filter((x) => !knownIds.has(x.id)), ); } // Otherwise just replace the whole list @@ -245,7 +277,26 @@ export function Messages(props: Props) { // Mark as fetching has ended setFetching(); - } catch (err) { + + // If we're not at the end, restore scroll position + if (existingState && !existingState.atEnd) { + setTimeout(() => + listRef!.scrollTo({ + top: existingState.scrollTop!, + behavior: "instant", + }), + ); + } + // Or... reset scroll to the end + else if (atEnd()) { + setTimeout(() => + listRef!.scrollTo({ + top: 9999999, + behavior: "instant", + }), + ); + } + } catch { // Keep track of any failures (and allow retry / other actions) setFailure(true); } @@ -288,7 +339,7 @@ export function Messages(props: Props) { // Calculate how much we need to cut off the other end const tooManyBy = Math.max( 0, - result.messages.length + messages().length - (props.limit ?? 0) + result.messages.length + messages().length - (props.limit ?? 0), ); // If it's at least one element, we are no longer at the end @@ -317,7 +368,7 @@ export function Messages(props: Props) { // Mark as fetching has ended setFetching(); } - } catch (err) { + } catch { // Keep track of any failures (and allow retry / other actions) setFailure(true); } @@ -360,7 +411,7 @@ export function Messages(props: Props) { // Calculate how much we need to cut off the other end const tooManyBy = Math.max( 0, - result.messages.length + messages().length - (props.limit ?? 0) + result.messages.length + messages().length - (props.limit ?? 0), ); // If it's at least one element, we are no longer at the start @@ -389,7 +440,7 @@ export function Messages(props: Props) { // Mark as fetching has ended setFetching(); } - } catch (err) { + } catch { // Keep track of any failures (and allow retry / other actions) setFailure(true); } @@ -459,7 +510,7 @@ export function Messages(props: Props) { const knownIds = new Set(collectedMessages!.map((x) => x.id)); setMessagesSafely( collectedMessages!, - messages.filter((x) => !knownIds.has(x.id)) + messages.filter((x) => !knownIds.has(x.id)), ); // Stop collecting messages @@ -484,7 +535,7 @@ export function Messages(props: Props) { setFetching(); }); }); - } catch (err) { + } catch { // Keep track of any failures (and allow retry / other actions) setFailure(true); } @@ -501,7 +552,7 @@ export function Messages(props: Props) { */ const scrollToNearestMessage = () => { const index = messagesWithTail().findIndex( - (entry) => entry.t === 0 && entry.message.id === messageId + (entry) => entry.t === 0 && entry.message.id === messageId, ); // use localeCompare listRef!.children[index + (atStart() ? 1 : 0)].scrollIntoView({ @@ -547,7 +598,7 @@ export function Messages(props: Props) { // Mark as fetching has ended setFetching(); }); - } catch (err) { + } catch { // Keep track of any failures (and allow retry / other actions) setFailure(true); } @@ -565,8 +616,22 @@ export function Messages(props: Props) { createEffect( on( () => props.channel, - () => caseInitialLoad(props.highlightedMessageId()) - ) + (channel) => { + caseInitialLoad(props.highlightedMessageId()); + + // move state into cache when navigating away + onCleanup(() => { + if (fetching() !== "initial") { + cache!.manage(channel, { + messages: messages(), + atStart: atStart(), + atEnd: atEnd(), + scrollTop: listRef?.scrollTop, + }); + } + }); + }, + ), ); /** @@ -580,8 +645,8 @@ export function Messages(props: Props) { if (messageId && messages()) { caseJumpToMessage(messageId); } - } - ) + }, + ), ); /** @@ -603,7 +668,7 @@ export function Messages(props: Props) { messages().find((msg) => msg.id === message.id) ) { setMessages((messages) => - messages.filter((msg) => msg.id !== message.id) + messages.filter((msg) => msg.id !== message.id), ); } } @@ -621,6 +686,23 @@ export function Messages(props: Props) { c.removeListener("messageDelete", onMessageDelete); }); + // Ensure that we reload when lifecycle state changes + createEffect( + on( + () => lifecycle.lifecycle.state(), + (state) => { + if ( + state === State.Connected && + atEnd() && + !props.highlightedMessageId + ) { + caseInitialLoad(); + } + }, + { defer: true }, + ), + ); + // We need to cache created objects to prevent needless re-rendering const objectCache = new Map(); @@ -670,12 +752,20 @@ export function Messages(props: Props) { // Compare time and properties of messages if ( + // split up different authors message.authorId !== next.authorId || + // split up chains which are too far apart Math.abs(btime - atime) >= 420000 || + // treat masquerade as a change in author !isEqual(message.masquerade, next.masquerade) || + // ensure all system messages render independently message.systemMessage || next.systemMessage || - message.replyIds?.length + // replies present on current message + message.replyIds?.length || + // next message in history has already been read + // so there will be a message divider present + (next.id.localeCompare(lastReadId) === -1 && !insertedUnreadDivider) ) { tail = false; } @@ -694,7 +784,7 @@ export function Messages(props: Props) { objectCache.get(true) ?? { t: 1, unread: true, - } + }, ); } @@ -710,7 +800,7 @@ export function Messages(props: Props) { t: 0, message, tail, - } + }, ); } @@ -720,7 +810,7 @@ export function Messages(props: Props) { objectCache.get(date) ?? { t: 1, date: dayjs(date).format("LL"), - } + }, ); } }); @@ -728,6 +818,12 @@ export function Messages(props: Props) { // Push remainder of blocked messages createBlockedMessageCount(); + // Strip unread divider if it is the first item + // (hence would show alone at the bottom of messages) + if (messagesWithTail[0]?.t === 1) { + messagesWithTail.shift(); + } + // Flush cache objectCache.clear(); @@ -754,6 +850,46 @@ export function Messages(props: Props) { } } + /** + * Select last message for editing if signal is true + */ + createEffect( + on( + () => state.draft.editingMessageId, + (shouldSetEditingMessageId) => + shouldSetEditingMessageId === true && + state.draft.setEditingMessage( + messages().find((message) => message.author?.self), + ), + ), + ); + + /** + * Check whether to trail the currently pending messages + * @returns Whether to trail pending message + */ + function pendingMessageIsTrailing() { + const messages = messagesWithTail(); + const lastMessage = messages[messages.length - 1]; + + return lastMessage && + lastMessage.t === 0 && + // check if last message is authored by us + lastMessage.message.author?.self && + // split up chains that are too far apart + Math.abs(+new Date() - +lastMessage.message.createdAt) < 420000 + ? true + : false; + } + + /** + * Message ids + * @returns List of message ids + */ + function sentMessageIdempotency() { + return messages().map((msg) => msg.nonce!); + } + return ( <> -
-
- - - - {/* TODO: else show (loading icon) OR (load more) */} - - {(entry) => ( - - )} - - {/* TODO: show (loading icon) OR (load more) */} - {props.pendingMessages} - + +
+
+ + + + {/* TODO: else show (loading icon) OR (load more) */} + + {(entry) => ( + + )} + + {/* TODO: show (loading icon) OR (load more) */} + + {props.pendingMessages?.({ + tail: pendingMessageIsTrailing(), + ids: sentMessageIdempotency(), + })} + {props.typingIndicator ?? } + +
-
+ @@ -798,10 +946,10 @@ const AnchorToEnd = styled("div", { zIndex: 30, position: "relative", - "& div": { - bottom: 0, + "& > div": { width: "100%", position: "absolute", + bottom: "var(--gap-md)", }, }, }); @@ -820,29 +968,36 @@ const Padding = styled("div", { */ type ListEntry = | { - // Message - t: 0; - message: MessageInterface; - tail: boolean; - highlight: boolean; - } + // Message + t: 0; + message: MessageInterface; + tail: boolean; + highlight: boolean; + } | { - // Message Divider - t: 1; - date?: string; - unread?: boolean; - } + // Message Divider + t: 1; + date?: string; + unread?: boolean; + } | { - // Blocked messages - t: 2; - count: number; - }; + // Blocked messages + t: 2; + count: number; + }; /** * Render individual list entry */ -function Entry(props: ListEntry & Pick) { - const [local, other] = splitProps(props, ["t", "highlightedMessageId"]); +function Entry( + props: ListEntry & + Pick & { editingMessageId?: string }, +) { + const [local, other] = splitProps(props, [ + "t", + "highlightedMessageId", + "editingMessageId", + ]); return ( @@ -853,6 +1008,10 @@ function Entry(props: ListEntry & Pick) { (other as ListEntry & { t: 0 }).message.id === local.highlightedMessageId() } + editing={ + (other as ListEntry & { t: 0 }).message.id === + local.editingMessageId + } /> diff --git a/packages/client/components/app/interface/desktop/Titlebar.tsx b/packages/client/components/app/interface/desktop/Titlebar.tsx new file mode 100644 index 00000000..25fbf808 --- /dev/null +++ b/packages/client/components/app/interface/desktop/Titlebar.tsx @@ -0,0 +1,213 @@ +import { Match, Show, Switch, createSignal } from "solid-js"; +import { Motion, Presence } from "solid-motionone"; + +import { css } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { useClientLifecycle } from "@revolt/client"; +import { State, TransitionType } from "@revolt/client/Controller"; +import { Button, Ripple, symbolSize, typography } from "@revolt/ui"; + +import MdBuild from "@material-symbols/svg-400/outlined/build.svg?component-solid"; +import MdClose from "@material-symbols/svg-400/outlined/close.svg?component-solid"; +import MdCollapseContent from "@material-symbols/svg-400/outlined/collapse_content.svg?component-solid"; +import MdExpandContent from "@material-symbols/svg-400/outlined/expand_content.svg?component-solid"; +import MdMinimize from "@material-symbols/svg-400/outlined/minimize.svg?component-solid"; + +import Wordmark from "../../../../public/assets/web/wordmark.svg?component-solid"; +import { pendingUpdate } from "../../../../src/serviceWorkerInterface"; + +export function Titlebar() { + const [isMaximised, setIsMaximised] = createSignal( + window.native ? window.desktopConfig.get().windowState.isMaximised : false, + ); + const { lifecycle } = useClientLifecycle(); + + function isDisconnected() { + return [ + State.Connecting, + State.Disconnected, + State.Reconnecting, + State.Offline, + ].includes(lifecycle.state()); + } + + function maximise() { + window.native.maximise(); + setIsMaximised((t) => !t); + } + + return ( + + + + + + <Wordmark + class={css({ + height: "18px", + marginBlockStart: "1px", + })} + />{" "} + <Show when={import.meta.env.DEV}> + <MdBuild {...symbolSize(16)} /> + </Show> + + + + + Connecting + + {/* Connected */} + + Disconnected + + lifecycle.transition({ + type: TransitionType.Retry, + }) + } + > + (reconnect now) + + + + Reconnecting + + + Device is offline + + lifecycle.transition({ + type: TransitionType.Retry, + }) + } + style={{ + "-webkit-app-region": "no-drag", + }} + > + (reconnect now) + + + + + {" "} +
+ +
+
+
+ + + + + + + + } + > + + + + + + + + + +
+
+
+ ); +} + +const Base = styled("div", { + base: { + flexShrink: 0, + height: "29px", + userSelect: "none", + + display: "flex", + alignItems: "center", + + fill: "var(--md-sys-color-on-surface)", + }, + variants: { + disconnected: { + true: { + color: "var(--md-sys-color-on-primary-container)", + background: "var(--md-sys-color-primary-container)", + }, + false: { + color: "var(--md-sys-color-outline)", + background: "var(--md-sys-color-surface-container-high)", + }, + }, + }, +}); + +const Title = styled("div", { + base: { + display: "flex", + gap: "var(--gap-md)", + alignItems: "center", + paddingInlineStart: "var(--gap-md)", + + color: "var(--md-sys-color-on-surface)", + ...typography.raw({ class: "title", size: "small" }), + }, +}); + +const DragHandle = styled("div", { + base: { + flexGrow: 1, + height: "100%", + + display: "flex", + gap: "var(--gap-md)", + alignItems: "center", + paddingInlineStart: "var(--gap-md)", + + ...typography.raw({ class: "label", size: "large" }), + }, +}); + +const Action = styled("a", { + base: { + cursor: "pointer", + position: "relative", + + display: "grid", + placeItems: "center", + + height: "100%", + aspectRatio: "3/2", + }, +}); diff --git a/packages/client/components/app/interface/settings/ChannelSettings.tsx b/packages/client/components/app/interface/settings/ChannelSettings.tsx new file mode 100644 index 00000000..66edf676 --- /dev/null +++ b/packages/client/components/app/interface/settings/ChannelSettings.tsx @@ -0,0 +1,168 @@ +import { + BiRegularListUl, + BiSolidCloud, + BiSolidInfoCircle, + BiSolidTrash, +} from "solid-icons/bi"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { Channel } from "upryzing.js"; + +import { useClient } from "@revolt/client"; +import { TextWithEmoji } from "@revolt/markdown"; +import { useModals } from "@revolt/modal"; +import { ColouredText } from "@revolt/ui"; + +import { SettingsConfiguration } from "."; +import ChannelOverview from "./channel/Overview"; +import { ChannelPermissionsEditor } from "./channel/permissions/ChannelPermissionsEditor"; +import { ChannelPermissionsOverview } from "./channel/permissions/ChannelPermissionsOverview"; +import { ViewWebhook } from "./channel/webhooks/ViewWebhook"; +import { WebhooksList } from "./channel/webhooks/WebhooksList"; + +const Config: SettingsConfiguration = { + /** + * Page titles + */ + title(ctx, key) { + const client = useClient(); + const { t } = useLingui(); + + if (key.startsWith("webhooks/")) { + const webhook = client().channelWebhooks.get(key.substring(9)); + if (webhook) return webhook.name; + } + + if (key.startsWith("permissions/")) { + if (key === "permissions/default") return t`Default Permissions`; + + return ctx.context.server?.roles.get(key.substring(12))?.name ?? ""; + } + + return ctx.entries + .flatMap((category) => category.entries) + .find((entry) => entry.id === key)?.title as string; + }, + + /** + * Render the current channel settings page + */ + // we take care of the reactivity ourselves + /* eslint-disable solid/components-return-once */ + render(props, channel) { + const id = props.page(); + const client = useClient(); + + if (id?.startsWith("webhooks/")) { + const webhook = client().channelWebhooks.get(id.substring(9)); + return ; + } + + if (id?.startsWith("permissions/")) { + if (id === "permissions/default") { + return ( + + ); + } + + return ( + + ); + } + + switch (id) { + case "overview": + return ; + case "permissions": + switch (channel.type) { + case "Group": + return ; + case "TextChannel": + return ; + default: + return null; + } + case "webhooks": + return ; + default: + return null; + } + }, + /* eslint-enable solid/components-return-once */ + + /** + * Generate list of categories / entries for channel settings + * @returns List + */ + list(channel) { + const { openModal } = useModals(); + + return { + context: channel, + entries: [ + { + title: , + entries: [ + { + id: "overview", + icon: , + title: Overview, + }, + { + hidden: + channel.type === "SavedMessages" || + !channel.havePermission("ManagePermissions"), + id: "permissions", + icon: , + title: Permissions, + }, + { + hidden: + !channel.havePermission("ManageWebhooks") && + import.meta.env.DEV, + id: "webhooks", + icon: , + title: Webhooks, + }, + ], + }, + { + hidden: !( + channel.type !== "Group" && channel.havePermission("ManageChannel") + ), + entries: [ + { + icon: ( + + ), + title: ( + + Delete Channel + + ), + onClick() { + openModal({ + type: "delete_channel", + channel, + }); + }, + }, + ], + }, + ], + }; + }, +}; + +export default Config; + +export type ChannelSettingsProps = { + /** + * Channel + */ + channel: Channel; +}; diff --git a/packages/client/components/app/interface/settings/server/index.tsx b/packages/client/components/app/interface/settings/ServerSettings.tsx similarity index 52% rename from packages/client/components/app/interface/settings/server/index.tsx rename to packages/client/components/app/interface/settings/ServerSettings.tsx index 8006195a..8112f919 100644 --- a/packages/client/components/app/interface/settings/server/index.tsx +++ b/packages/client/components/app/interface/settings/ServerSettings.tsx @@ -8,61 +8,93 @@ import { BiSolidUserX, } from "solid-icons/bi"; -import { Server } from "@upryzing/upryzing.js"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { Server } from "upryzing.js"; import { useUser } from "@revolt/client"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; import { TextWithEmoji } from "@revolt/markdown"; +import { useModals } from "@revolt/modal"; import { ColouredText } from "@revolt/ui"; -import { SettingsConfiguration } from ".."; - -import Overview from "./Overview"; +import { SettingsConfiguration } from "."; +import { ChannelPermissionsEditor } from "./channel/permissions/ChannelPermissionsEditor"; +import Overview from "./server/Overview"; +import { ListServerBans } from "./server/bans/ListBans"; +import { EmojiList } from "./server/emojis/EmojiList"; +import { ListServerInvites } from "./server/invites/ListServerInvites"; +import { ServerRoleEditor } from "./server/roles/ServerRoleEditor"; +import { ServerRoleOverview } from "./server/roles/ServerRoleOverview"; const Config: SettingsConfiguration = { /** * Page titles * @param key */ - title(key) { - const t = useTranslation(); - return t( - `app.settings.server_pages.${key.replaceAll("/", ".")}.title` as any, - undefined, - key - ); + title(ctx, key) { + const { t } = useLingui(); + + if (key.startsWith("roles/")) { + if (key === "roles/default") return t`Default Permissions`; + + return ctx.context.roles.get(key.substring(6))?.name ?? ""; + } + + return ctx.entries + .flatMap((category) => category.entries) + .find((entry) => entry.id === key)?.title as string; }, /** * Render the current server settings page */ + // we take care of the reactivity ourselves + /* eslint-disable solid/components-return-once */ render(props, server) { - // eslint-disable-next-line solid/reactivity const id = props.page(); if (!server.$exists) { - getController("modal").pop(); + useModals().pop(); return null; } + if (id?.startsWith("roles/")) { + if (id === "roles/default") { + return ( + + ); + } + + return ; + } + switch (id) { case "overview": return ; + case "emojis": + return ; + case "roles": + return ; + case "invites": + return ; + case "bans": + return ; + default: return null; } }, + /* eslint-enable solid/components-return-once */ /** * Generate list of categories / entries for server settings * @returns List */ list(server) { - const t = useTranslation(); const user = useUser(); + const { openModal } = useModals(); return { + context: server, entries: [ { title: , @@ -70,37 +102,18 @@ const Config: SettingsConfiguration = { { id: "overview", icon: , - title: t("app.settings.server_pages.overview.title"), - }, - { - id: "members", - icon: , - title: t("app.settings.server_pages.members.title"), - }, - /*{ TODO: deprecate - id: "categories", - icon: , - title: t("app.settings.server_pages.categories.title"), - },*/ - { - hidden: !( - server.havePermission("ManageRole") || - server.havePermission("AssignRoles") - ), - id: "roles", - icon: , - title: t("app.settings.server_pages.roles.title"), + title: Overview, }, ], }, { hidden: !server.havePermission("ManageCustomisation"), - title: t("app.settings.server_pages.customisation.title"), + title: Customisation, entries: [ { id: "emojis", icon: , - title: t("app.settings.server_pages.emojis.title"), + title: Emojis, }, ], }, @@ -108,19 +121,34 @@ const Config: SettingsConfiguration = { hidden: !server.havePermission("ManageServer") && !server.havePermission("BanMembers"), - title: t("app.settings.server_pages.management.title"), + title: User Management, entries: [ + { + hidden: true, + id: "members", + icon: , + title: Members, + }, + { + hidden: !( + server.havePermission("ManageRole") || + server.havePermission("ManagePermissions") + ), + id: "roles", + icon: , + title: Roles, + }, { hidden: !server.havePermission("ManageServer"), id: "invites", icon: , - title: t("app.settings.server_pages.invites.title"), + title: Invites, }, { hidden: !server.havePermission("BanMembers"), id: "bans", icon: , - title: t("app.settings.server_pages.bans.title"), + title: Bans, }, ], }, @@ -129,21 +157,18 @@ const Config: SettingsConfiguration = { entries: [ { icon: ( - + ), title: ( - - {t("app.context_menu.delete_server")} + + Delete Server ), /** * Handle server deletion request */ onClick() { - getController("modal").push({ + openModal({ type: "delete_server", server, }); diff --git a/packages/client/components/app/interface/settings/Settings.tsx b/packages/client/components/app/interface/settings/Settings.tsx index 8eea3488..bd60cadc 100644 --- a/packages/client/components/app/interface/settings/Settings.tsx +++ b/packages/client/components/app/interface/settings/Settings.tsx @@ -1,6 +1,8 @@ import { + type JSX, Accessor, createContext, + createMemo, createSignal, untrack, useContext, @@ -9,7 +11,7 @@ import { Motion, Presence } from "solid-motionone"; import { Rerun } from "@solid-primitives/keyed"; -import { SettingsConfiguration, SettingsEntry } from "."; +import { SettingsConfiguration, SettingsEntry, SettingsList } from "."; import { SettingsContent } from "./_layout/Content"; import { SettingsSidebar } from "./_layout/Sidebar"; @@ -42,7 +44,10 @@ const SettingsNavigationContext = createContext<{ * Generic Settings component */ export function Settings(props: SettingsProps & SettingsConfiguration) { - const [page, setPage] = createSignal(); + const [page, setPage] = createSignal( + // eslint-disable-next-line + (props.context as any)?.page, + ); const [transition, setTransition] = createSignal("normal"); @@ -84,57 +89,84 @@ export function Settings(props: SettingsProps & SettingsConfiguration) { navigate, }} > - - - - - - untrack(transition) !== "normal" && - setTimeout(() => (el.style.visibility = "visible"), 250) - } - initial={ - transition() === "normal" - ? { opacity: 0, y: 50 } - : transition() === "to-child" - ? { - x: "100vw", + + {(list) => ( + <> + + + + + + untrack(transition) !== "normal" && + setTimeout(() => (el.style.visibility = "visible"), 250) } - : { x: "100vw" } - } - transition={{ duration: 0.2, easing: [0.17, 0.67, 0.58, 0.98] }} - > - {props.render({ page }, props.context)} - - - - + initial={ + transition() === "normal" + ? { opacity: 0, y: 50 } + : transition() === "to-child" + ? { + x: "100vw", + } + : { x: "-100vw" } + } + animate={{ + opacity: 1, + x: 0, + y: 0, + }} + exit={ + transition() === "normal" + ? undefined + : transition() === "to-child" + ? { + x: "-100vw", + } + : { x: "100vw" } + } + transition={{ + duration: 0.2, + easing: [0.17, 0.67, 0.58, 0.98], + }} + > + {props.render({ page }, props.context)} + + + + + + )} + ); } +/** + * Memoise the list but generate it within context + */ +function MemoisedList(props: { + context: never; + list: (context: never) => SettingsList; + children: (list: Accessor>) => JSX.Element; +}) { + /** + * Generate list of categories / links + */ + const list = createMemo(() => props.list(props.context)); + + return <>{props.children(list)}; +} + /** * Use settings navigation context */ diff --git a/packages/client/components/app/interface/settings/UserSettings.tsx b/packages/client/components/app/interface/settings/UserSettings.tsx new file mode 100644 index 00000000..88c5273a --- /dev/null +++ b/packages/client/components/app/interface/settings/UserSettings.tsx @@ -0,0 +1,307 @@ +import { Show } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { Server } from "upryzing.js"; +import { css } from "styled-system/css"; + +import { useClient, useClientLifecycle } from "@revolt/client"; +import { useUser } from "@revolt/markdown/users"; +import { useModals } from "@revolt/modal"; +import { ColouredText, Column, Text, iconSize } from "@revolt/ui"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; + +import MdAccountCircle from "@material-design-icons/svg/outlined/account_circle.svg?component-solid"; +import MdCoffee from "@material-design-icons/svg/outlined/coffee.svg?component-solid"; +import MdLanguage from "@material-design-icons/svg/outlined/language.svg?component-solid"; +import MdLogout from "@material-design-icons/svg/outlined/logout.svg?component-solid"; +import MdMemory from "@material-design-icons/svg/outlined/memory.svg?component-solid"; +import MdMic from "@material-design-icons/svg/outlined/mic.svg?component-solid"; +import MdPalette from "@material-design-icons/svg/outlined/palette.svg?component-solid"; +import MdRateReview from "@material-design-icons/svg/outlined/rate_review.svg?component-solid"; +import MdScience from "@material-design-icons/svg/outlined/science.svg?component-solid"; +import MdSmartToy from "@material-design-icons/svg/outlined/smart_toy.svg?component-solid"; +import MdVerifiedUser from "@material-design-icons/svg/outlined/verified_user.svg?component-solid"; +import MdWorkspacePremium from "@material-design-icons/svg/outlined/workspace_premium.svg?component-solid"; + +import pkg from "../../../../../../package.json"; + +import { SettingsConfiguration } from "."; +import { MyAccount } from "./user/Account"; +import AdvancedSettings from "./user/Advanced"; +import { Feedback } from "./user/Feedback"; +import { LanguageSettings } from "./user/Language"; +import Native from "./user/Native"; +import { Sessions } from "./user/Sessions"; +import { AccountCard } from "./user/_AccountCard"; +import { AppearanceMenu } from "./user/appearance"; +import { MyBots, ViewBot } from "./user/bots"; +import { EditProfile } from "./user/profile"; +import { EditSubscription } from "./user/subscriptions"; +import { VoiceSettings } from "./user/voice/VoiceSettings"; + +const Config: SettingsConfiguration<{ server: Server }> = { + /** + * Page titles + * @param key + */ + title(ctx, key) { + if (key.startsWith("bots/")) { + const user = useUser(key.substring(5)); + return user()!.username; + } + + return ctx.entries + .flatMap((category) => category.entries) + .find((entry) => entry.id === key)?.title as string; + }, + + /** + * Render the current client settings page + */ + // we take care of the reactivity ourselves + /* eslint-disable solid/reactivity */ + /* eslint-disable solid/components-return-once */ + render(props) { + const id = props.page(); + const client = useClient(); + + if (id?.startsWith("bots/")) { + const bot = client().bots.get(id.substring("bots/".length))!; + return ; + } + + switch (id) { + case "account": + return ; + case "appearance": + return ; + case "advanced": + return ; + case "profile": + return ; + case "sessions": + return ; + case "bots": + return ; + case "language": + return ; + case "feedback": + return ; + case "subscribe": + return ; + case "native": + return ; + case "voice": + return ; + default: + return null; + } + }, + /* eslint-enable solid/reactivity */ + /* eslint-enable solid/components-return-once */ + + /** + * Generate list of categories / entries for client settings + * @returns List + */ + list() { + const { pop } = useModals(); + const { logout } = useClientLifecycle(); + + return { + context: null!, + prepend: ( + + +
+ + ), + append: ( + + + + Version: + {" "} + + {pkg.version} ({pkg["version-date"]}) + + + + + Lavender Desktop {window.native.versions.desktop()} + + + + {window.native.versions.electron()},{" "} + {window.native.versions.node()},{" "} + {window.native.versions.chrome()} + + + + + ), + entries: [ + { + title: User Settings, + entries: [ + { + id: "account", + icon: <>, + title: <>, + hidden: true, + }, + { + id: "profile", + icon: , + title: Profile, + }, + { + id: "sessions", + icon: , + title: Sessions, + }, + ], + }, + { + title: "Upryzing", + entries: [ + { + id: "bots", + icon: , + title: My Bots, + }, + { + id: "feedback", + icon: , + title: Feedback, + }, + ], + }, + { + title: Subscriptions, + hidden: import.meta.env.PROD, + entries: [ + { + id: "subscribe", + icon: , + title: "[premium]", + }, + ], + }, + { + title: Client Settings, + entries: [ + // { + // id: "audio", + // icon: , + // title: t("app.settings.pages.audio.title"), + // hidden: + // !getController("state").experiments.isEnabled("voice_chat"), + // }, + { + id: "voice", + icon: , + title: Voice, + }, + { + id: "appearance", + icon: , + title: Appearance, + }, + // { + // id: "accessibility", + // icon: , + // title: t("app.settings.pages.accessibility.title"), + // }, + // { + // id: "plugins", + // icon: , + // title: t("app.settings.pages.plugins.title"), + // hidden: !getController("state").experiments.isEnabled("plugins"), + // }, + // { + // id: "notifications", + // icon: , + // title: t("app.settings.pages.notifications.title"), + // }, + // { + // id: "keybinds", + // icon: , + // title: t("app.settings.pages.keybinds.title"), + // }, + { + id: "language", + icon: , + title: Language, + }, + // { + // id: "sync", + // icon: , + // title: t("app.settings.pages.sync.title"), + // }, + { + id: "native", + hidden: !window.native, + icon: desktop_windows, + title: Desktop, + }, + // { + // id: "experiments", + // icon: , + // title: Experiments, + // }, + ], + }, + { + entries: [ + // { + // onClick: () => + // getController("modal").push({ type: "changelog", posts: [] }), + // icon: , + // title: t("app.special.modals.changelogs.title"), + // }, + { + href: "https://github.com/revoltchat", + icon: , + title: Source Code, + }, + { + id: "advanced", + icon: , + title: Advanced, + }, + /* + { + href: "https://ko-fi.com/stoatchat", + icon: , + title: Donate, + },*/ + { + id: "logout", + icon: ( + + ), + title: ( + + Log Out + + ), + onClick() { + pop(); + logout(); + }, + }, + ], + }, + ], + }; + }, +}; + +export default Config; diff --git a/packages/client/components/app/interface/settings/_layout/Content.tsx b/packages/client/components/app/interface/settings/_layout/Content.tsx index 5ca334b0..75d0fc1d 100644 --- a/packages/client/components/app/interface/settings/_layout/Content.tsx +++ b/packages/client/components/app/interface/settings/_layout/Content.tsx @@ -1,12 +1,13 @@ import { Accessor, JSX, Show } from "solid-js"; -import { cva } from "styled-system/css"; +import { css, cva } from "styled-system/css"; import { styled } from "styled-system/jsx"; -import { Breadcrumbs, Column, iconSize, typography } from "@revolt/ui"; +import { Breadcrumbs, IconButton, Text } from "@revolt/ui"; import MdClose from "@material-design-icons/svg/outlined/close.svg?component-solid"; +import { SettingsList } from ".."; import { useSettingsNavigation } from "../Settings"; /** @@ -15,7 +16,8 @@ import { useSettingsNavigation } from "../Settings"; export function SettingsContent(props: { onClose?: () => void; children: JSX.Element; - title: (key: string) => string; + list: Accessor>; + title: (ctx: SettingsList, key: string) => string; page: Accessor; }) { const { navigate } = useSettingsNavigation(); @@ -23,29 +25,31 @@ export function SettingsContent(props: { return (
- + props.title(key)} + renderElement={(key) => + props.title(props.list() as SettingsList, key) + } navigate={(keys) => navigate(keys.join("/"))} /> - + {props.children} +
- - - + + +
@@ -61,7 +65,7 @@ const base = cva({ flex: "1 1 800px", flexDirection: "row", display: "flex", - background: "var(--colours-settings-content-background)", + background: "var(--md-sys-color-surface-container-low)", borderStartStartRadius: "30px", borderEndStartRadius: "30px", @@ -96,36 +100,7 @@ const InnerColumn = styled("div", { gap: "var(--gap-md)", display: "flex", flexDirection: "column", - }, -}); - -/** - * Button for closing settings page - */ -const CloseAnchor = styled("a", { - base: { - width: "36px", - height: "36px", - cursor: "pointer", - display: "flex", - alignItems: "center", - justifyContent: "center", - borderRadius: "var(--borderRadius-full)", - border: "3px solid var(--colours-settings-close-anchor)", - transition: "var(--transitions-fast) background-color", - "& svg": { - transition: "var(--transitions-fast) background-color", - fill: "var(--colours-settings-close-anchor) !important", - }, - "&:hover": { - background: "var(--colours-settings-close-anchor)", - }, - "&:hover svg": { - fill: "var(--colours-settings-close-anchor-hover) !important", - }, - "&:active": { - transform: "translateY(2px)", - }, + marginBlockEnd: "80px", }, }); @@ -140,6 +115,7 @@ const CloseAction = styled("div", { visibility: "visible", position: "sticky", top: 0, + "&:after": { content: '"ESC"', marginTop: "4px", @@ -147,7 +123,7 @@ const CloseAction = styled("div", { justifyContent: "center", width: "36px", fontWeight: 600, - color: "var(--colours-settings-content-foreground)", + color: "var(--md-sys-color-on-surface)", fontSize: "0.75rem", }, }, diff --git a/packages/client/components/app/interface/settings/_layout/Sidebar.tsx b/packages/client/components/app/interface/settings/_layout/Sidebar.tsx index d9e8e379..c3950902 100644 --- a/packages/client/components/app/interface/settings/_layout/Sidebar.tsx +++ b/packages/client/components/app/interface/settings/_layout/Sidebar.tsx @@ -1,4 +1,4 @@ -import { Accessor, For, Setter, Show, createMemo, onMount } from "solid-js"; +import { Accessor, For, Setter, Show, onMount } from "solid-js"; import { styled } from "styled-system/jsx"; @@ -12,7 +12,6 @@ import { useSettingsNavigation } from "../Settings"; import { SidebarButton, SidebarButtonContent, - SidebarButtonIcon, SidebarButtonTitle, } from "./SidebarButton"; @@ -20,25 +19,19 @@ import { * Settings Sidebar Layout */ export function SettingsSidebar(props: { - context: never; - list: (context: never) => SettingsList; + list: Accessor>; setPage: Setter; page: Accessor; }) { const { navigate } = useSettingsNavigation(); - /** - * Generate list of categories / links - */ - const list = createMemo(() => props.list(props.context)); - /** * Select first page on load */ onMount(() => { if (!props.page()) { - props.setPage(list().entries[0].entries[0].id); + props.setPage(props.list().entries[0].entries[0].id); } }); @@ -47,8 +40,8 @@ export function SettingsSidebar(props: {
- {list().prepend} - + {props.list().prepend} + {(category) => ( @@ -68,9 +61,7 @@ export function SettingsSidebar(props: { > - - {entry.icon} - + {entry.icon} {entry.title} @@ -96,7 +87,7 @@ export function SettingsSidebar(props: { )} - {list().append} + {props.list().append}
@@ -113,8 +104,6 @@ const Base = styled("div", { flex: "1 0 218px", paddingLeft: "8px", justifyContent: "flex-end", - - color: "var(--colours-settings-foreground)", }, }); @@ -151,6 +140,7 @@ const CategoryTitle = styled("span", { fontWeight: 700, margin: "0 8px", marginInlineEnd: "20px", - color: "var(--colours-settings-sidebar-category)", + + color: "var(--md-sys-color-outline)", }, }); diff --git a/packages/client/components/app/interface/settings/_layout/SidebarButton.tsx b/packages/client/components/app/interface/settings/_layout/SidebarButton.tsx index e7008714..a24c2714 100644 --- a/packages/client/components/app/interface/settings/_layout/SidebarButton.tsx +++ b/packages/client/components/app/interface/settings/_layout/SidebarButton.tsx @@ -19,25 +19,18 @@ export const SidebarButton = styled("a", { fontSize: "15px", userSelect: "none", transition: "background-color 0.1s ease-in-out", - color: "var(--colours-settings-sidebar-foreground)", + color: "var(--md-sys-color-on-surface)", + fill: "var(--md-sys-color-on-surface)", background: "unset", "& svg": { flexShrink: 0, }, - - "&:hover": { - backgroundColor: "var(--colours-settings-sidebar-button-hover)", - }, - - "&:active": { - backgroundColor: "var(--colours-settings-sidebar-button-active)", - }, }, variants: { "aria-selected": { true: { - background: "var(--colours-settings-sidebar-button-hover)", + background: "var(--md-sys-color-primary-container)", }, }, }, @@ -64,6 +57,11 @@ export const SidebarButtonContent = styled("div", { export const SidebarButtonIcon = styled("div", { base: { - fill: "var(--colours-settings-foreground)", + display: "flex", + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap", + flexShrink: 0, + gap: "2px", }, }); diff --git a/packages/client/components/app/interface/settings/channel/Overview.tsx b/packages/client/components/app/interface/settings/channel/Overview.tsx new file mode 100644 index 00000000..b1b5a79f --- /dev/null +++ b/packages/client/components/app/interface/settings/channel/Overview.tsx @@ -0,0 +1,147 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { Match, Show, Switch } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import type { API } from "upryzing.js"; + +import { useClient } from "@revolt/client"; +import { CONFIGURATION } from "@revolt/common"; +import { useModals } from "@revolt/modal"; +import { Button, CircularProgress, Column, Form2, Row, Text } from "@revolt/ui"; + +import { ChannelSettingsProps } from "../ChannelSettings"; + +/** + * Channel overview + */ +export default function ChannelOverview(props: ChannelSettingsProps) { + const { t } = useLingui(); + const client = useClient(); + const { openModal } = useModals(); + + /* eslint-disable solid/reactivity */ + // we want to take the initial value only + const editGroup = createFormGroup({ + name: createFormControl(props.channel.name), + description: createFormControl(props.channel.description || ""), + icon: createFormControl( + props.channel.animatedIconURL, + ), + }); + /* eslint-enable solid/reactivity */ + + function onReset() { + editGroup.controls.name.setValue(props.channel.name); + editGroup.controls.description.setValue(props.channel.description || ""); + editGroup.controls.icon.setValue(props.channel.animatedIconURL ?? null); + } + + async function onSubmit() { + const changes: API.DataEditChannel = { + remove: [], + }; + + if (editGroup.controls.name.isDirty) { + changes.name = editGroup.controls.name.value.trim(); + } + + if (editGroup.controls.description.isDirty) { + const description = editGroup.controls.description.value.trim(); + + if (description) { + changes.description = description; + } else { + changes.remove!.push("Description"); + } + } + + if (editGroup.controls.icon.isDirty) { + if (!editGroup.controls.icon.value) { + changes.remove!.push("Icon"); + } else if (Array.isArray(editGroup.controls.icon.value)) { + const body = new FormData(); + body.append("file", editGroup.controls.icon.value[0]); + + const [key, value] = client().authenticationHeader; + const data: { id: string } = await fetch( + `${CONFIGURATION.DEFAULT_MEDIA_URL}/icons`, + { + method: "POST", + body, + headers: { + [key]: value, + }, + }, + ).then((res) => res.json()); + + changes.icon = data.id; + } + } + + await props.channel.edit(changes); + } + + const submit = Form2.useSubmitHandler(editGroup, onSubmit, onReset); + + return ( + +
+ + + Channel Info + + + + + + + + Save + + + + + + +
+ + + Mark as Mature + + + + Users will be asked to confirm their age before opening this + channel. + + +
+ +
+
+
+ ); +} diff --git a/packages/client/components/app/interface/settings/channel/Webhooks.tsx b/packages/client/components/app/interface/settings/channel/Webhooks.tsx deleted file mode 100644 index f4ddc8fd..00000000 --- a/packages/client/components/app/interface/settings/channel/Webhooks.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { BiSolidCloud, BiSolidTrash } from "solid-icons/bi"; -import { For, Match, Show, Switch, createSignal, onMount } from "solid-js"; - -import type { ChannelWebhook } from "@upryzing/upryzing.js"; - -import { useClient } from "@revolt/client"; -import { - Avatar, - CategoryButton, - Column, - Preloader, - Typography, -} from "@revolt/ui"; - -import { useSettingsNavigation } from "../Settings"; - -import { ChannelSettingsProps } from "."; - -/** - * Webhooks - */ -export default function Webhooks(props: ChannelSettingsProps) { - const client = useClient(); - const { navigate } = useSettingsNavigation(); - const [webhooks, setWebhooks] = createSignal(); - - onMount(() => { - const existingWebhooks = client().channelWebhooks.filter( - (webhook) => webhook.channelId === props.channel.id - ); - - if (existingWebhooks.length) { - setWebhooks(client().channelWebhooks.toList()); - } else { - props.channel.fetchWebhooks().then(setWebhooks); - } - }); - - return ( - - } - onClick={() => void 0} - > - Create Webhook - - - - - }> - - - {(webhook) => ( - } - description={webhook.id} - onClick={() => navigate(`webhooks/${webhook.id}`)} - action="chevron" - > - {webhook.name} - - )} - - - - - - - ); -} - -/** - * Webhook - */ -export function Webhook(props: { webhook: ChannelWebhook }) { - return ( - - } - onClick={() => void 0} - > - Delete - - - ); -} diff --git a/packages/client/components/app/interface/settings/channel/index.tsx b/packages/client/components/app/interface/settings/channel/index.tsx deleted file mode 100644 index bc128409..00000000 --- a/packages/client/components/app/interface/settings/channel/index.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { - BiRegularListUl, - BiSolidCloud, - BiSolidInfoCircle, - BiSolidTrash, -} from "solid-icons/bi"; - -import { Channel } from "@upryzing/upryzing.js"; - -import { useClient } from "@revolt/client"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; -import { TextWithEmoji } from "@revolt/markdown"; -import { ColouredText } from "@revolt/ui"; - -import { SettingsConfiguration } from ".."; - -import Webhooks, { Webhook } from "./Webhooks"; - -const Config: SettingsConfiguration = { - /** - * Page titles - * @param key - */ - title(key) { - const t = useTranslation(); - const client = useClient(); - - if (key.startsWith("webhooks/")) { - const webhook = client().channelWebhooks.get(key.substring(9)); - return webhook!.name; - } - - return t( - `app.settings.channel_pages.${key.replaceAll("/", ".")}.title` as any - ); - }, - - /** - * Render the current channel settings page - */ - render(props, channel) { - // eslint-disable-next-line solid/reactivity - const id = props.page(); - const client = useClient(); - - if (id?.startsWith("webhooks/")) { - const webhook = client().channelWebhooks.get(id.substring(9)); - return ; - } - - switch (id) { - case "webhooks": - return ; - default: - return null; - } - }, - - /** - * Generate list of categories / entries for channel settings - * @returns List - */ - list(channel) { - const t = useTranslation(); - - return { - entries: [ - { - title: , - entries: [ - { - id: "overview", - icon: , - title: t("app.settings.channel_pages.overview.title"), - }, - { - hidden: !channel.havePermission("ManagePermissions"), - id: "permissions", - icon: , - title: t("app.settings.channel_pages.permissions.title"), - }, - { - hidden: !channel.havePermission("ManageWebhooks"), - id: "webhooks", - icon: , - title: t("app.settings.channel_pages.webhooks.title"), - }, - ], - }, - { - hidden: !( - channel.type !== "Group" && channel.havePermission("ManageChannel") - ), - entries: [ - { - icon: ( - - ), - title: ( - - {t("app.context_menu.delete_channel")} - - ), - /** - * Handle server deletion request - */ - onClick() { - getController("modal").push({ - type: "delete_channel", - channel, - }); - }, - }, - ], - }, - ], - }; - }, -}; - -export default Config; - -export type ChannelSettingsProps = { - /** - * Channel - */ - channel: Channel; -}; diff --git a/packages/client/components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx b/packages/client/components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx new file mode 100644 index 00000000..f1ea11d9 --- /dev/null +++ b/packages/client/components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx @@ -0,0 +1,580 @@ +import { For, Match, Show, Switch, createSignal } from "solid-js"; + +import { useLingui } from "@lingui-solid/solid/macro"; +import { + API, + Channel, + DEFAULT_PERMISSION_DIRECT_MESSAGE, + Server, +} from "upryzing.js"; +import { css } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { Button, Checkbox2, OverrideSwitch, Row, Text } from "@revolt/ui"; + +type Props = + | { type: "server_default"; context: Server } + | { type: "server_role"; context: Server; roleId: string } + | { type: "channel_default"; context: Channel } + | { type: "channel_role"; context: Channel; roleId: string } + | { type: "group"; context: Channel }; + +type Context = API.Channel["channel_type"] | "Server"; + +/** + * Generic editor for any channel permissions + */ +export function ChannelPermissionsEditor(props: Props) { + const { t } = useLingui(); + + const context: Context = + // eslint-disable-next-line solid/reactivity + props.context instanceof Server ? "Server" : props.context.type; + + /** + * Current permission value, normalised to [allow, deny] + * @returns [allow, deny] BigInts + */ + function currentValue() { + switch (props.type) { + case "server_default": + return [BigInt(props.context.defaultPermissions), BigInt(0)]; + case "server_role": + return [ + BigInt(props.context.roles?.get(props.roleId)?.permissions.a || 0), + BigInt(props.context.roles?.get(props.roleId)?.permissions.d || 0), + ]; + case "channel_default": + return [ + BigInt(props.context.defaultPermissions?.a || 0), + BigInt(props.context.defaultPermissions?.d || 0), + ]; + case "channel_role": + return [ + BigInt(props.context.rolePermissions?.[props.roleId]?.a || 0), + BigInt(props.context.rolePermissions?.[props.roleId]?.d || 0), + ]; + case "group": + return [ + BigInt( + props.context.permissions ?? DEFAULT_PERMISSION_DIRECT_MESSAGE, + ), + BigInt(0), + ]; + } + } + + /** + * Current edited values + */ + const [value, setValue] = createSignal(currentValue()); + + /** + * Whether there is a pending save + */ + function unsavedChanges() { + const [a1, a2] = currentValue(), + [b1, b2] = value(); + + return a1 !== b1 || a2 !== b2; + } + + /** + * Reset to the current value + */ + function reset() { + setValue(currentValue()); + } + + /** + * Commit changes + * @todo mutator + */ + function save() { + switch (props.type) { + case "server_default": + props.context.setPermissions(undefined, Number(value()[0])); + break; + case "server_role": + props.context.setPermissions(props.roleId, { + allow: Number(value()[0]), + deny: Number(value()[1]), + }); + break; + case "channel_default": + props.context.setPermissions(undefined, { + allow: Number(value()[0]), + deny: Number(value()[1]), + }); + break; + case "channel_role": + props.context.setPermissions(props.roleId, { + allow: Number(value()[0]), + deny: Number(value()[1]), + }); + break; + case "group": + props.context.setPermissions(undefined, Number(value()[0])); + break; + } + } + + const Permissions: { + heading?: string; + key: string; + value: bigint; + title: string; + description: Partial>; + }[] = [ + { + heading: t`Admin`, + key: "ManageChannel", + value: 1n ** 0n, + title: t`Manage Channel`, + description: { + Group: t`Edit group name and description`, + Any: t`Edit and delete channel`, + }, + }, + { + key: "ManageServer", + value: 2n ** 1n, + title: t`Manage Server`, + description: { + Server: t`Edit the server's information and settings`, + }, + }, + { + key: "ManagePermissions", + value: 2n ** 2n, + title: t`Manage Permissions`, + description: { + Group: t`Whether other users can edit these settings`, + TextChannel: t`Edit channel-specific role and default permissions`, + Server: t`Edit any permissions on the server`, + }, + }, + { + key: "ManageRole", + value: 2n ** 3n, + title: t`Manage Roles`, + description: { + Server: t`Create and edit server roles`, + }, + }, + { + key: "ManageCustomisation", + value: 2n ** 4n, + title: t`Manage Customisation`, + description: { + Server: t`Create server emoji`, + }, + }, + { + heading: t`Members`, + key: "KickMembers", + value: 2n ** 6n, + title: t`Kick Members`, + description: { + Server: t`Kick lower-ranking members from the server`, + }, + }, + { + key: "BanMembers", + value: 2n ** 7n, + title: t`Ban Members`, + description: { + Server: t`Ban lower-ranking members from the server`, + }, + }, + { + key: "TimeoutMembers", + value: 2n ** 8n, + title: t`Timeout Members`, + description: { + Server: t`Temporarily prevent lower-ranking members from interacting`, + }, + }, + { + key: "AssignRoles", + value: 2n ** 9n, + title: t`Assign Roles`, + description: { + Server: t`Assign lower-ranked roles to lower-ranking members`, + }, + }, + { + key: "ChangeNickname", + value: 2n ** 10n, + title: t`Change Nickname`, + description: { + Server: t`Change own nickname`, + }, + }, + { + key: "ManageNicknames", + value: 2n ** 11n, + title: t`Manage Nicknames`, + description: { + Server: t`Change other members' nicknames`, + }, + }, + { + key: "ChangeAvavar", + value: 2n ** 12n, + title: t`Change Avatar`, + description: { + Server: t`Change own avatar`, + }, + }, + { + key: "RemoveAvatars", + value: 2n ** 13n, + title: t`Remove Avatars`, + description: { + Server: t`Remove other members' avatars`, + }, + }, + { + heading: t`Channels`, + key: "ViewChannel", + value: 2n ** 20n, + title: t`View Channel`, + description: { + TextChannel: t`Able to access this channel`, + Server: t`Able to access channels on this server`, + }, + }, + { + key: "ReadMessageHistory", + value: 2n ** 21n, + title: t`Read Message History`, + description: { + TextChannel: t`Read past messages sent in channel`, + Server: t`Read past messages sent in channels`, + }, + }, + { + key: "SendMessage", + value: 2n ** 22n, + title: t`Send Messages`, + description: { + Group: t`Send messages in channel`, + TextChannel: t`Send messages in channel`, + Server: t`Send messages in channels`, + }, + }, + { + key: "ManageMessages", + value: 2n ** 23n, + title: t`Manage Messages`, + description: { + Group: t`Delete and pin messages sent by other members`, + TextChannel: t`Delete and pin messages sent by other members`, + Server: t`Delete and pin messages sent by other members`, + }, + }, + { + key: "ManageWebhooks", + value: 2n ** 24n, + title: t`Manage Webhooks`, + description: { + Group: t`Create and edit webhooks`, + TextChannel: t`Create and edit webhooks`, + Server: t`Create and edit webhooks`, + }, + }, + { + key: "InviteOthers", + value: 2n ** 25n, + title: t`Invite Others`, + description: { + Group: t`Add new members to the group`, + Any: t`Create invites for others to use`, + }, + }, + { + heading: t`Messaging`, + key: "SendEmbeds", + value: 2n ** 26n, + title: t`Send Embeds`, + description: { + Any: t`Send embedded content such as link embeds or custom embeds`, + }, + }, + { + key: "UploadFiles", + value: 2n ** 27n, + title: t`Upload Files`, + description: { + Any: t`Send attachments to chat`, + }, + }, + { + key: "Masquerade", + value: 2n ** 28n, + title: t`Masquerade`, + description: { + Any: t`Allow members to change name and avatar per-message`, + }, + }, + { + key: "React", + value: 2n ** 29n, + title: t`React`, + description: { + Any: t`React to messages with emoji`, + }, + }, + { + heading: t`Voice`, + key: "Connect", + value: 2n ** 30n, + title: t`Connect`, + description: { + TextChannel: t`Connect to voice channel`, + Server: t`Connect to voice channel`, + }, + }, + { + key: "Speak", + value: 2n ** 31n, + title: t`Speak`, + description: { + TextChannel: t`Able to speak in voice call`, + Server: t`Able to speak in voice call`, + }, + }, + { + key: "Video", + value: 2n ** 32n, + title: t`Video`, + description: { + TextChannel: t`Share camera or screen in voice call`, + Server: t`Share camera or screen in voice call`, + }, + }, + { + key: "MuteMembers", + value: 2n ** 33n, + title: t`Mute Members`, + description: { + TextChannel: t`Mute lower-ranking members in voice call`, + Server: t`Mute lower-ranking members in voice call`, + }, + }, + { + key: "DeafenMembers", + value: 2n ** 34n, + title: t`Deafen Members`, + description: { + TextChannel: t`Deafen lower-ranking members in voice call`, + Server: t`Deafen lower-ranking members in voice call`, + }, + }, + { + key: "MoveMembers", + value: 2n ** 35n, + title: t`Move Members`, + description: { + TextChannel: t`Move members between voice channels`, + Server: t`Move members between voice channels`, + }, + }, + { + key: "Listen", + value: 2n ** 36n, + title: t`Listen`, + description: { + TextChannel: t`Hear other people and see their video`, + Server: t`Hear other people and see their video`, + }, + }, + { + heading: t`Mentions`, + key: "MentionEveryone", + value: 2n ** 37n, + title: t`Mention Everyone`, + description: { + Any: t`Mention everyone and online members inside the server`, + }, + }, + { + key: "MentionRoles", + value: 2n ** 38n, + title: t`Mention Roles`, + description: { + Any: t`Mention specific roles`, + }, + }, + ]; + + /** + * Find description for this permission in context + * If null, don't show this permission entry + * @param entry Entry + * @returns Description or null + */ + function description(entry: (typeof Permissions)[number]) { + const desc = entry.description; + return desc[context] ?? desc.Any; + } + + return ( +
+ + {(entry) => ( + + + + {entry.heading} + + + + + setValue((v) => [v[0] ^ BigInt(entry.value), v[1]]) + } + havePermission={ + (props.context.permission & entry.value) === entry.value + } + /> + } + > + + { + let allow = value()[0] & ~entry.value; + let deny = value()[1] & ~entry.value; + + if (target === "allow") allow |= entry.value; + if (target === "deny") deny |= entry.value; + + setValue([allow, deny]); + }} + havePermission={ + (props.context.permission & entry.value) === entry.value + } + /> + + + + )} + + + + + + + + +
+ ); +} + +const StickyPanel = styled("div", { + base: { + position: "sticky", + width: "fit-content", + padding: "var(--gap-md)", + bottom: "var(--gap-lg)", + borderRadius: "var(--borderRadius-xl)", + background: "var(--md-sys-color-surface)", + }, +}); + +function ChannelPermissionToggle(props: { + key: string; + title: string; + description: string; + + value: boolean; + onChange: (value: boolean) => void; + + havePermission: boolean; +}) { + return ( + props.onChange(event.currentTarget.checked)} + disabled={!props.havePermission} + > +
+ {props.title} + {props.description} +
+
+ ); +} + +function ChannelPermissionOverride(props: { + key: string; + title: string; + description: string; + + value: "allow" | "deny" | "neutral"; + onChange: (value: "allow" | "deny" | "neutral") => void; + + havePermission: boolean; +}) { + return ( +
+
+ {props.title} + {props.description} +
+ +
+ ); +} diff --git a/packages/client/components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx b/packages/client/components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx new file mode 100644 index 00000000..f84cad22 --- /dev/null +++ b/packages/client/components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx @@ -0,0 +1,124 @@ +import { For, createMemo } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { Channel } from "upryzing.js"; +import { styled } from "styled-system/jsx"; + +import { CategoryButton, Column, Text } from "@revolt/ui"; + +import { useSettingsNavigation } from "../../Settings"; + +/** + * Count set bits + * @param v Number + * @returns Set bits + */ +function countBits(v: bigint) { + let bits = 0; + for (let i = 0n; i < 52n; i++) { + if (((1n << i) & v) === 1n << i) { + bits++; + } + } + + return bits; +} + +/** + * Menu to select what permission set to change + */ +export function ChannelPermissionsOverview(props: { context: Channel }) { + const { navigate } = useSettingsNavigation(); + + const roles = createMemo(() => { + const ordered = props.context.server?.orderedRoles; + + return { + active: ordered?.filter( + (role) => + countBits(props.context.rolePermissions?.[role.id]?.a || 0n) > 0 || + countBits(props.context.rolePermissions?.[role.id]?.d || 0n) > 0, + ), + unused: ordered?.filter( + (role) => + countBits(props.context.rolePermissions?.[role.id]?.a || 0n) === 0 && + countBits(props.context.rolePermissions?.[role.id]?.d || 0n) === 0, + ), + }; + }); + + return ( + + Affects all roles and users} + onClick={() => navigate("permissions/default")} + > + Default Permissions + + + + Role Permissions + + {(role) => ( + + } + action="chevron" + onClick={() => navigate(`permissions/${role.id}`)} + description={ + + Grants {countBits(props.context.rolePermissions![role.id].a)}{" "} + permissions and denies{" "} + {countBits(props.context.rolePermissions![role.id].d)}{" "} + permissions + + } + > + {role.name} + + )} + + + + + Unused Roles + + {(role) => ( + + } + action="chevron" + onClick={() => navigate(`permissions/${role.id}`)} + description={No permissions set yet} + > + {role.name} + + )} + + + + ); +} + +const RoleIcon = styled("div", { + base: { + width: "100%", + height: "100%", + aspectRatio: "1/1", + borderRadius: "100%", + }, +}); diff --git a/packages/client/components/app/interface/settings/channel/webhooks/ViewWebhook.tsx b/packages/client/components/app/interface/settings/channel/webhooks/ViewWebhook.tsx new file mode 100644 index 00000000..3430e0a6 --- /dev/null +++ b/packages/client/components/app/interface/settings/channel/webhooks/ViewWebhook.tsx @@ -0,0 +1,140 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { Show } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; +import { API, ChannelWebhook } from "upryzing.js"; + +import { useClient } from "@revolt/client"; +import { CONFIGURATION } from "@revolt/common"; +import { useModals } from "@revolt/modal"; +import { + CategoryButton, + CircularProgress, + Column, + Form2, + Row, +} from "@revolt/ui"; + +import MdContentCopy from "@material-design-icons/svg/outlined/content_copy.svg?component-solid"; +import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; + +import { useSettingsNavigation } from "../../Settings"; + +/** + * Webhook + */ +export function ViewWebhook(props: { webhook: ChannelWebhook }) { + const { t } = useLingui(); + const client = useClient(); + const { showError } = useModals(); + const { navigate } = useSettingsNavigation(); + + /* eslint-disable solid/reactivity */ + const editGroup = createFormGroup({ + name: createFormControl(props.webhook.name), + avatar: createFormControl(props.webhook.avatarURL), + }); + /* eslint-enable solid/reactivity */ + + const deleteWebhook = useMutation(() => ({ + mutationFn: () => props.webhook.delete(), + onSuccess() { + navigate("webhooks"); + }, + onError: showError, + })); + + async function onSubmit() { + const changes: API.DataEditWebhook = { + remove: [], + }; + + if (editGroup.controls.name.isDirty) { + changes.name = editGroup.controls.name.value.trim(); + } + + if (editGroup.controls.avatar.isDirty) { + if (!editGroup.controls.avatar.value) { + changes.remove!.push("Avatar"); + } else if (Array.isArray(editGroup.controls.avatar.value)) { + const body = new FormData(); + body.append("file", editGroup.controls.avatar.value[0]); + + const [key, value] = client().authenticationHeader; + const data: { id: string } = await fetch( + `${CONFIGURATION.DEFAULT_MEDIA_URL}/avatars`, + { + method: "POST", + body, + headers: { + [key]: value, + }, + }, + ).then((res) => res.json()); + + changes.avatar = data.id; + } + } + + await props.webhook.edit(changes); + } + + function onReset() { + editGroup.controls.name.setValue(props.webhook.name); + editGroup.controls.avatar.setValue(props.webhook.avatarURL ?? null); + } + + const submit = Form2.useSubmitHandler(editGroup, onSubmit, onReset); + + return ( + +
+ + + + + + + Save + + + + + + +
+ + + } + onClick={() => + navigator.clipboard.writeText( + `${CONFIGURATION.DEFAULT_API_URL}/webhooks/${props.webhook.id}/${props.webhook.token}`, + ) + } + > + Copy webhook URL + + } + disabled={deleteWebhook.isPending} + onClick={() => deleteWebhook.mutate()} + > + Delete webhook + + +
+ ); +} diff --git a/packages/client/components/app/interface/settings/channel/webhooks/WebhooksList.tsx b/packages/client/components/app/interface/settings/channel/webhooks/WebhooksList.tsx new file mode 100644 index 00000000..ae43065c --- /dev/null +++ b/packages/client/components/app/interface/settings/channel/webhooks/WebhooksList.tsx @@ -0,0 +1,79 @@ +import { BiSolidCloud } from "solid-icons/bi"; +import { For, Match, Show, Switch, createMemo, onMount } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; + +import { useClient } from "@revolt/client"; +import { useModals } from "@revolt/modal"; +import { Avatar, CategoryButton, CircularProgress, Column } from "@revolt/ui"; + +import { ChannelSettingsProps } from "../../ChannelSettings"; +import { useSettingsNavigation } from "../../Settings"; + +/** + * Webhooks + */ +export function WebhooksList(props: ChannelSettingsProps) { + const client = useClient(); + const { openModal } = useModals(); + const { navigate } = useSettingsNavigation(); + + const webhooks = createMemo(() => + client().channelWebhooks.filter( + (webhook) => webhook.channelId === props.channel.id, + ), + ); + + onMount(() => { + if (!webhooks.length) { + props.channel.fetchWebhooks(); + } + }); + + return ( + + } + onClick={() => + openModal({ + type: "create_webhook", + channel: props.channel, + callback(webhookId) { + navigate(`webhooks/${webhookId}`); + }, + }) + } + > + Create Webhook + + + + + }> + + + {(webhook) => ( + + } + description={webhook.id} + onClick={() => navigate(`webhooks/${webhook.id}`)} + action="chevron" + > + {webhook.name} + + )} + + + + + + + ); +} diff --git a/packages/client/components/app/interface/settings/index.tsx b/packages/client/components/app/interface/settings/index.tsx index adc2c182..78f574a6 100644 --- a/packages/client/components/app/interface/settings/index.tsx +++ b/packages/client/components/app/interface/settings/index.tsx @@ -1,9 +1,8 @@ import { Accessor, JSX } from "solid-js"; -import { Settings, SettingsProps } from "./Settings"; -import channel from "./channel"; -import server from "./server"; -import user from "./user"; +import channel from "./ChannelSettings"; +import server from "./ServerSettings"; +import user from "./UserSettings"; export { Settings } from "./Settings"; @@ -12,13 +11,14 @@ export type SettingsConfiguration = { * Generate list of categories and entries * @returns List */ - list: (context: T) => SettingsList; + list: (context: T) => SettingsList; /** * Render the title of the current breadcrumb key + * @param ctx Context from settings list * @param key Key */ - title: (key: string) => string; + title: (ctx: SettingsList, key: string) => string; /** * Render the current settings page @@ -26,14 +26,15 @@ export type SettingsConfiguration = { */ render: ( props: { page: Accessor }, - context: T + context: T, ) => JSX.Element; }; /** * List of categories and entries */ -export type SettingsList = { +export type SettingsList = { + context: T; prepend?: JSX.Element; append?: JSX.Element; entries: { @@ -57,32 +58,9 @@ export type SettingsEntry = { title: JSX.Element; }; -export const SettingsConfigurations: Record< - string, - SettingsConfiguration -> = { +// eslint-disable-next-line +export const SettingsConfigurations: Record = { user, server, channel, }; - -/** - * Render using a specific set of configurations - * @param props - * @returns - */ -export function SettingsUsingConfiguration( - props: SettingsProps & { configKey: string } -) { - // eslint-disable-next-line solid/reactivity - const config = SettingsConfigurations[props.configKey ?? "client"]; - - return ( - - ); -} diff --git a/packages/client/components/app/interface/settings/server/Overview.tsx b/packages/client/components/app/interface/settings/server/Overview.tsx index 73e54425..fb553ddd 100644 --- a/packages/client/components/app/interface/settings/server/Overview.tsx +++ b/packages/client/components/app/interface/settings/server/Overview.tsx @@ -1,133 +1,330 @@ -import { BiRegularAbacus, BiRegularGlobe, BiSolidFlag } from "solid-icons/bi"; -import { Show } from "solid-js"; +import { createFormControl, createFormGroup } from "solid-forms"; +import { For, Show, createEffect, on } from "solid-js"; -import { ServerFlags } from "@upryzing/upryzing.js"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import type { API } from "upryzing.js"; import { useClient } from "@revolt/client"; +import { CONFIGURATION } from "@revolt/common"; import { - CategoryButton, - CategoryButtonGroup, - CategoryCollapse, - Checkbox, + CircularProgress, Column, - FormGroup, - Typography, + Form2, + MenuItem, + Row, + Text, } from "@revolt/ui"; -import { ServerSettingsProps } from "."; +import { ServerSettingsProps } from "../ServerSettings"; /** * Server overview */ export default function ServerOverview(props: ServerSettingsProps) { - const user = useClient(); + const { t } = useLingui(); + const client = useClient(); + + /* eslint-disable solid/reactivity */ + const editGroup = createFormGroup({ + name: createFormControl(props.server.name), + description: createFormControl(props.server.description || ""), + icon: createFormControl( + props.server.animatedIconURL, + ), + banner: createFormControl(props.server.bannerURL), + sys_user_joined: createFormControl( + props.server.systemMessages?.user_joined ?? "none", + ), + sys_user_left: createFormControl( + props.server.systemMessages?.user_left ?? "none", + ), + sys_user_kicked: createFormControl( + props.server.systemMessages?.user_kicked ?? "none", + ), + sys_user_banned: createFormControl( + props.server.systemMessages?.user_banned ?? "none", + ), + }); + + const channels = () => + props.server.channels.map((channel) => ({ + item: channel, + value: channel.id, + })); + /* eslint-enable solid/reactivity */ + + // update fields (if they are not dirty) ourselves: + createEffect( + on( + () => props.server.name, + (name) => + !editGroup.controls.name.isDirty && + editGroup.controls.name.setValue(name), + { defer: true }, + ), + ); + + createEffect( + on( + () => props.server.description, + (description) => + description && + !editGroup.controls.description.isDirty && + editGroup.controls.description.setValue(description), + { defer: true }, + ), + ); + + createEffect( + on( + () => props.server.animatedIconURL, + (icon) => + !editGroup.controls.icon.isDirty && + editGroup.controls.icon.setValue(icon ?? null), + { defer: true }, + ), + ); + + createEffect( + on( + () => props.server.bannerURL, + (banner) => + !editGroup.controls.banner.isDirty && + editGroup.controls.banner.setValue(banner ?? null), + { defer: true }, + ), + ); + + function onReset() { + editGroup.controls.name.setValue(props.server.name); + editGroup.controls.description.setValue(props.server.description || ""); + editGroup.controls.icon.setValue(props.server.animatedIconURL ?? null); + editGroup.controls.banner.setValue(props.server.bannerURL ?? null); + editGroup.controls.sys_user_joined.setValue( + props.server.systemMessages?.user_joined ?? "none", + ); + editGroup.controls.sys_user_left.setValue( + props.server.systemMessages?.user_left ?? "none", + ); + editGroup.controls.sys_user_kicked.setValue( + props.server.systemMessages?.user_kicked ?? "none", + ); + editGroup.controls.sys_user_banned.setValue( + props.server.systemMessages?.user_banned ?? "none", + ); + } + + async function onSubmit() { + const changes: API.DataEditServer = { + remove: [], + system_messages: { + // empty object => remove every system_message channel + ...(props.server.systemMessages ?? {}), + }, + }; + + if (editGroup.controls.name.isDirty) { + changes.name = editGroup.controls.name.value.trim(); + } + + if (editGroup.controls.description.isDirty) { + const description = editGroup.controls.description.value.trim(); + + if (description) { + changes.description = description; + } else { + changes.remove!.push("Description"); + } + } + + if (editGroup.controls.icon.isDirty) { + if (!editGroup.controls.icon.value) { + changes.remove!.push("Icon"); + } else if (Array.isArray(editGroup.controls.icon.value)) { + changes.icon = await client().uploadFile( + "icons", + editGroup.controls.icon.value[0], + CONFIGURATION.DEFAULT_MEDIA_URL, + ); + } + } + + if (editGroup.controls.banner.isDirty) { + if (!editGroup.controls.banner.value) { + changes.remove!.push("Banner"); + } else if (Array.isArray(editGroup.controls.banner.value)) { + changes.banner = await client().uploadFile( + "banners", + editGroup.controls.banner.value[0], + CONFIGURATION.DEFAULT_MEDIA_URL, + ); + } + } + + if (editGroup.controls.sys_user_joined.isDirty) { + if ( + editGroup.controls.sys_user_joined.value == "none" && + changes.system_messages?.user_joined + ) { + delete changes.system_messages.user_joined; + } else { + changes.system_messages!.user_joined = + editGroup.controls.sys_user_joined.value; + } + } + + if (editGroup.controls.sys_user_left.isDirty) { + if ( + editGroup.controls.sys_user_left.value == "none" && + changes.system_messages?.user_left + ) { + delete changes.system_messages.user_left; + } else { + changes.system_messages!.user_left = + editGroup.controls.sys_user_left.value; + } + } + + if (editGroup.controls.sys_user_kicked.isDirty) { + if ( + editGroup.controls.sys_user_kicked.value == "none" && + changes.system_messages?.user_kicked + ) { + delete changes.system_messages.user_kicked; + } else { + changes.system_messages!.user_kicked = + editGroup.controls.sys_user_kicked.value; + } + } + + if (editGroup.controls.sys_user_banned.isDirty) { + if ( + editGroup.controls.sys_user_banned.value == "none" && + changes.system_messages?.user_banned + ) { + delete changes.system_messages.user_banned; + } else { + changes.system_messages!.user_banned = + editGroup.controls.sys_user_banned.value; + } + } + + await props.server.edit(changes); + } + + const submit = Form2.useSubmitHandler(editGroup, onSubmit, onReset); return ( - +
- - } - description="Set visible badges on server" + + + + + + System message channels + + + + User Joined + + + + Disabled + + + {(element) => ( + {element.item.name} + )} + + + + + + User Left + + + + Disabled + + + {(element) => ( + {element.item.name} + )} + + + + + + User Kicked + + + + Disabled + + + {(element) => ( + {element.item.name} + )} + + + + + + User Banned + + - - - props.server.edit({ - flags: 0, - }) - } - /> - } - onClick={() => void 0} - > - No flags - - - - - props.server.edit({ - flags: ServerFlags.Official, - }) - } - /> - } - onClick={() => void 0} - > - Official Server - - - - - props.server.edit({ - flags: ServerFlags.Verified, - }) - } - /> - } - onClick={() => void 0} - > - Verified Server - - - - - } - action={ - - props.server.edit({ - analytics, - }) - } - /> - } - onClick={() => void 0} - > - Analytics - - - - } - action={ - - props.server.edit({ - discoverable, - }) - } - /> - } - onClick={() => void 0} - > - Public Server - - - + + Disabled + + + {(element) => ( + {element.item.name} + )} + + + + + + + Save + + + + + - +
); } diff --git a/packages/client/components/app/interface/settings/server/bans/ListBans.tsx b/packages/client/components/app/interface/settings/server/bans/ListBans.tsx new file mode 100644 index 00000000..0ae5c87e --- /dev/null +++ b/packages/client/components/app/interface/settings/server/bans/ListBans.tsx @@ -0,0 +1,135 @@ +import { For, Match, Switch, createMemo, createSignal } from "solid-js"; + +import { useLingui } from "@lingui-solid/solid/macro"; +import { useQuery, useQueryClient } from "@tanstack/solid-query"; +import { Server, ServerBan } from "upryzing.js"; + +import { useModals } from "@revolt/modal"; +import { + Avatar, + Button, + CircularProgress, + DataTable, + Row, + TextField, +} from "@revolt/ui"; + +import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; + +/** + * List and invalidate server bans + */ +export function ListServerBans(props: { server: Server }) { + const { t } = useLingui(); + const client = useQueryClient(); + const { showError } = useModals(); + + const query = useQuery(() => ({ + queryKey: ["bans", props.server.id], + queryFn: () => props.server.fetchBans() as Promise, + })); + + async function pardon(ban: ServerBan) { + try { + await ban.pardon(); + client.setQueryData( + ["bans", props.server.id], + query.data!.filter((entry) => entry.id.user !== ban.id.user), + ); + } catch (error) { + showError(error); + } + } + + const [filterName, setFilterName] = createSignal(""); + const [filterDesc, setFilterDesc] = createSignal(""); + + const data = createMemo(() => { + if (query.data) { + const name = filterName().toLowerCase(), + desc = filterDesc().toLowerCase(); + + if (name || desc) { + return query.data.filter( + (entry) => + (entry.user?.username ?? "").toLowerCase().includes(name) && + (entry.reason ?? "").toLowerCase().includes(desc), + ); + } + + return query.data; + } + }); + + return ( + setFilterName(e.currentTarget.value)} + />, + setFilterDesc(e.currentTarget.value)} + />, + <>, + ]} + itemCount={query.data?.length} + > + {(page, itemsPerPage) => ( + + + + + + + + + + + {(item) => ( + + + + + + {item.user?.username}#{item.user?.discriminator} + + + + {item.reason} + + + + + )} + + + + )} + + ); +} diff --git a/packages/client/components/app/interface/settings/server/emojis/EmojiList.tsx b/packages/client/components/app/interface/settings/server/emojis/EmojiList.tsx new file mode 100644 index 00000000..2b0caa9f --- /dev/null +++ b/packages/client/components/app/interface/settings/server/emojis/EmojiList.tsx @@ -0,0 +1,156 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { For, Match, Switch } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { Server } from "upryzing.js"; +import { css } from "styled-system/css"; + +import { useClient } from "@revolt/client"; +import { CONFIGURATION } from "@revolt/common"; +import { useError } from "@revolt/i18n"; +import { useModals } from "@revolt/modal"; +import { + Avatar, + CategoryButton, + CircularProgress, + Column, + Form2, + Row, + Text, +} from "@revolt/ui"; + +/** + * Emoji list + */ +export function EmojiList(props: { server: Server }) { + const err = useError(); + const { t } = useLingui(); + const client = useClient(); + const { openModal } = useModals(); + + function isDisabled() { + return props.server.emojis.length >= CONFIGURATION.MAX_EMOJI; + } + + const editGroup = createFormGroup( + { + name: createFormControl("", { required: true }), + file: createFormControl(null, { + required: true, + }), + }, + { + disabled: isDisabled(), + }, + ); + + async function onSubmit() { + const body = new FormData(); + body.append("file", editGroup.controls.file.value![0]); + + const [key, value] = client().authenticationHeader; + const data: { id: string } = await fetch( + `${CONFIGURATION.DEFAULT_MEDIA_URL}/emojis`, + { + method: "POST", + body, + headers: { + [key]: value, + }, + }, + ).then((res) => res.json()); + + await props.server.createEmoji(data.id, { + name: editGroup.controls.name.value, + }); + } + + function onReset() { + editGroup.controls.name.setValue(""); + editGroup.controls.file.setValue(null); + } + + const submit = Form2.useSubmitHandler(editGroup, onSubmit, onReset); + + return ( + +
+ + + + + + + + + + + Create + + + {CONFIGURATION.MAX_EMOJI - props.server.emojis.length}{" "} + emoji slots remaining + + } + > + + {err(editGroup.errors!.error)} + + + + + + + + + +
+ + + + a.id.localeCompare(b.id), + )} + > + {(emoji) => ( + } + onClick={() => openModal({ type: "emoji_preview", emoji })} + > + + :{emoji.name}: + + + {emoji.creator?.displayName} + + + + )} + + +
+ ); +} diff --git a/packages/client/components/app/interface/settings/server/invites/ListServerInvites.tsx b/packages/client/components/app/interface/settings/server/invites/ListServerInvites.tsx new file mode 100644 index 00000000..70fc56e9 --- /dev/null +++ b/packages/client/components/app/interface/settings/server/invites/ListServerInvites.tsx @@ -0,0 +1,136 @@ +import { For, Match, Switch } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { useQuery, useQueryClient } from "@tanstack/solid-query"; +import { Server, ServerInvite } from "upryzing.js"; + +import { useModals } from "@revolt/modal"; +import { + Avatar, + Button, + CircularProgress, + Column, + DataTable, + Row, + Text, +} from "@revolt/ui"; + +import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; + +/** + * List and invalidate server invites + */ +export function ListServerInvites(props: { server: Server }) { + const { t } = useLingui(); + const client = useQueryClient(); + const { showError, openModal } = useModals(); + const query = useQuery(() => ({ + queryKey: ["invites", props.server.id], + queryFn: () => props.server.fetchInvites() as Promise, + })); + + const serverDoesntHaveChannels = () => + !props.server.defaultChannel || props.server.channels.length == 0; + + async function deleteInvite(invite: ServerInvite) { + try { + await invite.delete(); + client.setQueryData( + ["invites", props.server.id], + query.data!.filter((entry) => entry.id !== entry.id), + ); + } catch (error) { + showError(error); + } + } + + async function createInvite() { + const defaultChannel = + props.server.defaultChannel || props.server.channels[0] || null; + if (defaultChannel) { + openModal({ + type: "create_invite", + channel: defaultChannel, + }); + } + } + + return ( + + + Inviter, Invite Code, <>]} + itemCount={query.data?.length} + > + {(page, itemsPerPage) => ( + + + + + + + + + + + {(item) => ( + + + + + + + {item.creator?.displayName ?? "Unknown User"} + + #{item.channel?.name} + + + + {item.id} + + + + + )} + + + + )} + + + ); +} diff --git a/packages/client/components/app/interface/settings/server/roles/ServerRoleEditor.tsx b/packages/client/components/app/interface/settings/server/roles/ServerRoleEditor.tsx new file mode 100644 index 00000000..86a31087 --- /dev/null +++ b/packages/client/components/app/interface/settings/server/roles/ServerRoleEditor.tsx @@ -0,0 +1,236 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { For, Show, createMemo, createSignal } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { API, Server, ServerRole } from "upryzing.js"; +import { styled } from "styled-system/jsx"; + +import { useModals } from "@revolt/modal"; +import { + Button, + CategoryButton, + CircularProgress, + Column, + Form2, + IconButton, + Row, + Text, +} from "@revolt/ui"; + +import MdContentCopy from "@material-design-icons/svg/outlined/content_copy.svg?component-solid"; +import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; +import MDPalette from "@material-design-icons/svg/outlined/palette.svg?component-solid"; + +import { useSettingsNavigation } from "../../Settings"; +import { ChannelPermissionsEditor } from "../../channel/permissions/ChannelPermissionsEditor"; + +/** + * Role editor + */ +export function ServerRoleEditor(props: { context: Server; roleId: string }) { + const { t } = useLingui(); + const { openModal } = useModals(); + const { navigate } = useSettingsNavigation(); + + const role = createMemo( + () => + props.context.orderedRoles.find( + (r) => r.id == props.roleId, + ) as ServerRole, + ); + + /* eslint-disable solid/reactivity */ + const editGroup = createFormGroup({ + name: createFormControl(role()?.name || ""), + colour: createFormControl(role()?.colour || null), + hoist: createFormControl(role()?.hoist == true), + }); + /* eslint-enable solid/reactivity */ + + const [pickerRef, setPickerRef] = createSignal(); + + async function onSubmit() { + const changes: API.DataEditRole = {}; + + if (editGroup.controls.name.isDirty) { + changes.name = editGroup.controls.name.value.trim(); + } + + if (editGroup.controls.hoist.isDirty) { + changes.hoist = editGroup.controls.hoist.value; + } + + if (editGroup.controls.colour.isDirty) { + changes.colour = editGroup.controls.colour.value ?? null; + } + + await props.context.editRole(props.roleId, changes); + } + + function onReset() { + editGroup.controls.name.setValue(role()?.name || ""); + editGroup.controls.hoist.setValue(role()?.hoist || false); + editGroup.controls.colour.setValue(role()?.colour || null); + } + + const submit = Form2.useSubmitHandler(editGroup, onSubmit, onReset); + + return ( + +
+ + + + + + + pickerRef()?.click()} + > + + + { + const colour = (e.currentTarget as HTMLInputElement).value; + editGroup.controls.colour.setValue(colour); + editGroup.controls.colour.markDirty(true); + }} + style={{ + position: "absolute", + opacity: 0, + width: "0px", + height: "0px", + padding: 0, + border: "none", + }} + /> + + + + {(colour) => ( + , - - - - - - - - , - ]} - > - - - ); - }} - - - )} - - - - )} - - - ); -} - -// TODO: theming -const ActionCategory = styled("section", { - base: { - display: "grid", - gap: "1px", - }, - variants: { - firstChild: { - true: { - borderStartStartRadius: "var(--borderRadius-md)", - borderStartEndRadius: "var(--borderRadius-md)", - }, - }, - notLastChild: { - true: { - borderEndEndRadius: 0, - borderEndStartRadius: 0, - }, - }, - }, -}); - -const KeybindEntry = styled("article", { - base: { - display: "flex", - gap: "var(--gap-lg)", - padding: "10px 12px", - }, - variants: { - keySequence: { - true: { - flex: 1, - }, - }, - }, -}); diff --git a/packages/client/components/app/interface/settings/user/Language.tsx b/packages/client/components/app/interface/settings/user/Language.tsx index 19eaaf98..689b1e01 100644 --- a/packages/client/components/app/interface/settings/user/Language.tsx +++ b/packages/client/components/app/interface/settings/user/Language.tsx @@ -1,20 +1,18 @@ -import { For, Match, Switch, createMemo } from "solid-js"; +import { For, createMemo } from "solid-js"; -import { - Languages, - browserPreferredLanguage, - language, - setLanguage, - useTranslation, -} from "@revolt/i18n"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Language, Languages, browserPreferredLanguage } from "@revolt/i18n"; +import type { LanguageEntry } from "@revolt/i18n/Languages"; +import { timeLocale } from "@revolt/i18n/dayjs"; import { UnicodeEmoji } from "@revolt/markdown/emoji"; +import { useState } from "@revolt/state"; import { CategoryButton, CategoryButtonGroup, CategoryCollapse, Checkbox, Column, - FormGroup, Row, Time, iconSize, @@ -23,8 +21,6 @@ import { import MdErrorFill from "@material-design-icons/svg/filled/error.svg?component-solid"; import MdVerifiedFill from "@material-design-icons/svg/filled/verified.svg?component-solid"; import MdCalendarMonth from "@material-design-icons/svg/outlined/calendar_month.svg?component-solid"; -import MdKeyboardTab from "@material-design-icons/svg/outlined/keyboard_tab.svg?component-solid"; -import MdKeyboardTabRtl from "@material-design-icons/svg/outlined/keyboard_tab.svg?component-solid"; import MdLanguage from "@material-design-icons/svg/outlined/language.svg?component-solid"; import MdSchedule from "@material-design-icons/svg/outlined/schedule.svg?component-solid"; import MdTranslate from "@material-design-icons/svg/outlined/translate.svg?component-solid"; @@ -32,17 +28,17 @@ import MdTranslate from "@material-design-icons/svg/outlined/translate.svg?compo /** * Language */ -export default function Language() { +export function LanguageSettings() { return ( {/* */} - {/* + - */} + @@ -54,17 +50,19 @@ export default function Language() { * Pick user's preferred language */ function PickLanguage() { - const t = useTranslation(); + const state = useState(); + const { i18n } = useLingui(); /** * Determine the current language */ - const currentLanguage = () => Languages[language()]; + const currentLanguage = () => + Languages[i18n().locale as never] as LanguageEntry; // Generate languages array. const languages = createMemo(() => { const languages = Object.keys(Languages).map( - (x) => [x, Languages[x as keyof typeof Languages]] as const + (x) => [x, Languages[x as keyof typeof Languages]] as const, ); const preferredLanguage = browserPreferredLanguage(); @@ -72,14 +70,14 @@ function PickLanguage() { if (preferredLanguage) { // This moves the user's system language to the top of the language list const prefLangKey = languages.find( - (lang) => lang[0].replace(/_/g, "-") == preferredLanguage + (lang) => lang[0].replace(/_/g, "-") == preferredLanguage, ); if (prefLangKey) { languages.splice( 0, 0, - languages.splice(languages.indexOf(prefLangKey), 1)[0] + languages.splice(languages.indexOf(prefLangKey), 1)[0], ); } } @@ -90,7 +88,7 @@ function PickLanguage() { return ( } - title={t("app.settings.pages.language.select")} + title={Select your language} description={currentLanguage().display} scrollable > @@ -98,21 +96,21 @@ function PickLanguage() { {([id, lang]) => ( } - action={} - onClick={() => setLanguage(id as never)} + action={} + onClick={() => state.locale.switch(id as Language)} > {lang.display}{" "} {lang.verified && ( )}{" "} {lang.incomplete && ( )} @@ -127,6 +125,10 @@ function PickLanguage() { * Pick user's preferred date format */ function PickDateFormat() { + const state = useState(); + const { t } = useLingui(); + const date = () => timeLocale()[1].formats.L; + const LastWeek = new Date(); LastWeek.setDate(LastWeek.getDate() - 7); @@ -134,38 +136,40 @@ function PickDateFormat() { } title="Select date format" - description={`Traditional`} + description={ + date() === "DD/MM/YYYY" + ? t`Traditional (DD/MM/YYYY)` + : date() === "MM/DD/YYYY" + ? t`American (MM/DD/YYYY)` + : date() === "YYYY-MM-DD" + ? t`ISO Standard (YYYY-MM-DD)` + : date() + } > - - void 0} - action={} - description={ - - - void 0} - action={} - description={ - - - void 0} - action={} - description={ - + state.locale.setDateFormat("DD/MM/YYYY")} + action={} + description={ + state.locale.setDateFormat("MM/DD/YYYY")} + action={} + description={ + state.locale.setDateFormat("YYYY-MM-DD")} + action={} + description={ ); } @@ -174,71 +178,71 @@ function PickDateFormat() { * Pick user's preferred time format */ function PickTimeFormat() { + const state = useState(); + const { t } = useLingui(); + const time = () => timeLocale()[1].formats.LT; + return ( } title="Select time format" - description={`24 hours`} + description={time() === "HH:mm" ? t`24 hours` : t`12 hours`} > - - void 0} - action={} - description={ - - - void 0} - action={} - description={ - + state.locale.setTimeFormat("HH:mm")} + action={} + description={ + state.locale.setTimeFormat("h:mm A")} + action={} + description={ ); } -/** - * Configure right-to-left display - */ -function ConfigureRTL() { - /** - * Determine the current language - */ - const currentLanguage = () => Languages[language()]; +// /** +// * Configure right-to-left display +// */ +// function ConfigureRTL() { +// /** +// * Determine the current language +// */ +// const currentLanguage = () => Languages[language()]; - return ( - } - description="Flip the user interface right to left" - action={} - onClick={() => void 0} - > - Enable RTL layout - - } - > - - } - description="Keep the user interface left to right" - action={} - onClick={() => void 0} - > - Force LTR layout - - - - ); -} +// return ( +// } +// description={Flip the user interface right to left} +// action={} +// onClick={() => void 0} +// > +// Enable RTL layout +// +// } +// > +// +// } +// description={Keep the user interface left to right} +// action={} +// onClick={() => void 0} +// > +// Force LTR layout +// +// +// +// ); +// } /** * Language contribution link @@ -250,9 +254,11 @@ function ContributeLanguageLink() { action="external" icon={} onClick={() => void 0} - description="Help contribute to an existing or new language" + description={ + Help contribute to an existing or new language + } > - Contribute a language + Contribute a language ); diff --git a/packages/client/components/app/interface/settings/user/Native.tsx b/packages/client/components/app/interface/settings/user/Native.tsx index d2622a81..f8a70913 100644 --- a/packages/client/components/app/interface/settings/user/Native.tsx +++ b/packages/client/components/app/interface/settings/user/Native.tsx @@ -1,65 +1,160 @@ -import { - CategoryButton, - CategoryButtonGroup, - Checkbox, - Column, - FormGroup, - iconSize, -} from "@revolt/ui"; +import { createSignal } from "solid-js"; -import MdCancelPresentation from "@material-design-icons/svg/outlined/cancel_presentation.svg?component-solid"; -import MdDesktopWindows from "@material-design-icons/svg/outlined/desktop_windows.svg?component-solid"; -import MdExitToApp from "@material-design-icons/svg/outlined/exit_to_app.svg?component-solid"; -import MdWebAsset from "@material-design-icons/svg/outlined/web_asset.svg?component-solid"; +import { Trans } from "@lingui-solid/solid/macro"; + +import { CategoryButton, Checkbox, Column } from "@revolt/ui"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; + +declare type DesktopConfig = { + firstLaunch: boolean; + customFrame: boolean; + minimiseToTray: boolean; + spellchecker: boolean; + hardwareAcceleration: boolean; + discordRpc: boolean; + windowState: { + isMaximised: boolean; + }; +}; + +declare global { + interface Window { + native: { + versions: { + node(): string; + chrome(): string; + electron(): string; + desktop(): string; + }; + minimise(): void; + maximise(): void; + close(): void; + }; + + desktopConfig: { + get(): DesktopConfig; + set(config: Partial): void; + getAutostart(): boolean; + setAutostart(value: boolean): void; + }; + } +} /** * Desktop Configuration Page */ export default function Native() { + const [autostart, setAutostart] = createSignal( + window.desktopConfig.getAutostart(), + ); + const [config, setConfig] = createSignal(window.desktopConfig.get()); + + function set(config: Partial) { + window.desktopConfig.set(config); + setConfig((conf) => ({ ...conf, ...config })); + } + return ( - - - void value} />} - onClick={() => void 0} - icon={} - description="Launch Upryzing when you log into your computer." - > - Start with Computer - - - - void value} />} - onClick={() => void 0} - icon={} - description="Instead of closing, Upryzing will hide in your tray." - > - Minimise to Tray - - - - - - void value} />} - onClick={() => void 0} - icon={} - description="Let Upryzing use its own custom titlebar." - > - Custom window frame - - - - + + } + onClick={() => + setAutostart((value) => { + window.desktopConfig.setAutostart(!value); + return !value; + }) + } + icon={exit_to_app} + description={ + Launch Upryzing when you log into your computer. + } + > + Start with Computer + + } + onClick={() => + set({ + minimiseToTray: !config().minimiseToTray, + }) + } + icon={cancel_presentation} + description={ + Instead of closing, Upryzing will hide in your tray. + } + > + Minimise to Tray + + } + onClick={() => + set({ + customFrame: !config().customFrame, + }) + } + icon={web_asset} + description={Let Lavender Desktop use its own custom titlebar.} + > + Custom window frame + + + + + } + onClick={() => + set({ + discordRpc: !config().discordRpc, + }) + } + icon={groups_2} + description={Rep Upryzing using Discord rich presence.} + > + Discord RPC + + } + onClick={() => + set({ + spellchecker: !config().spellchecker, + }) + } + icon={spellcheck} + description={ + Show corrections and suggestions as you type. + } + > + Spellchecker + + } + onClick={() => + set({ + hardwareAcceleration: !config().hardwareAcceleration, + }) + } + icon={speed} + description={ + Use the graphics card to improve performance. + } + > + Hardware Acceleration + + + + } - description="Version 1.0.0" + icon={desktop_windows} + description={ + <> + Version: {window.native.versions.desktop()} + + } > - Upryzing Desktop + Lavender Desktop - + ); } diff --git a/packages/client/components/app/interface/settings/user/Notifications.tsx b/packages/client/components/app/interface/settings/user/Notifications.tsx index 7fa627a9..1e1ccfd1 100644 --- a/packages/client/components/app/interface/settings/user/Notifications.tsx +++ b/packages/client/components/app/interface/settings/user/Notifications.tsx @@ -1,14 +1,13 @@ -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; + import { CategoryButton, CategoryButtonGroup, CategoryCollapse, Checkbox, - FormGroup, iconSize, } from "@revolt/ui"; -import MdMarkUnreadChatAlt from "@material-design-icons/svg/outlined/mark_unread_chat_alt.svg?component-solid"; import MdNotifications from "@material-design-icons/svg/outlined/notifications.svg?component-solid"; import MdSpeaker from "@material-design-icons/svg/outlined/speaker.svg?component-solid"; @@ -16,23 +15,21 @@ import MdSpeaker from "@material-design-icons/svg/outlined/speaker.svg?component * Notifications Page */ export default function Notifications() { - const t = useTranslation(); - return ( - - void value} />} - onClick={() => void 0} - icon={} - description={t( - "app.settings.pages.notifications.descriptions.enable_desktop" - )} - > - {t("app.settings.pages.notifications.enable_desktop")} - - - + void value} />} + onClick={() => void 0} + icon={} + description={ + + Receive notifications while the app is open and in the background. + + } + > + Enable Desktop Notifications + + {/* void value} />} onClick={() => void 0} @@ -43,47 +40,39 @@ export default function Notifications() { > {t("app.settings.pages.notifications.enable_push")} - + */} Sounds} icon={} > - - void value} />} - onClick={() => void 0} - icon="blank" - > - {t("app.settings.pages.notifications.sound.message")} - - - - void value} />} - onClick={() => void 0} - icon="blank" - > - {t("app.settings.pages.notifications.sound.outbound")} - - - - void value} />} - onClick={() => void 0} - icon="blank" - > - {t("app.settings.pages.notifications.sound.call_join")} - - - - void value} />} - onClick={() => void 0} - icon="blank" - > - {t("app.settings.pages.notifications.sound.call_leave")} - - + void value} />} + onClick={() => void 0} + icon="blank" + > + Message Received + + void value} />} + onClick={() => void 0} + icon="blank" + > + Message Sent + + void value} />} + onClick={() => void 0} + icon="blank" + > + User Joined Call + + void value} />} + onClick={() => void 0} + icon="blank" + > + User Left Call + ); diff --git a/packages/client/components/app/interface/settings/user/Sessions.tsx b/packages/client/components/app/interface/settings/user/Sessions.tsx index 69119c0c..c4ce03eb 100644 --- a/packages/client/components/app/interface/settings/user/Sessions.tsx +++ b/packages/client/components/app/interface/settings/user/Sessions.tsx @@ -15,28 +15,28 @@ import { onMount, } from "solid-js"; -import { Session } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { Session } from "upryzing.js"; import { styled } from "styled-system/jsx"; import { useClient } from "@revolt/client"; -import { getController } from "@revolt/common"; +import { useModals } from "@revolt/modal"; import { CategoryButton, CategoryButtonGroup, CategoryCollapse, + CircularProgress, Column, - Preloader, Time, iconSize, } from "@revolt/ui"; -import MdAutoMode from "@material-design-icons/svg/outlined/auto_mode.svg?component-solid"; import MdLogout from "@material-design-icons/svg/outlined/logout.svg?component-solid"; /** * Sessions */ -export default function Sessions() { +export function Sessions() { const client = useClient(); onMount(() => client().sessions.fetch()); @@ -46,12 +46,12 @@ export default function Sessions() { const otherSessions = createMemo(() => client() .sessions.filter((session) => !session.current) - .sort((a, b) => +b.createdAt - +a.createdAt) + .sort((a, b) => +b.createdAt - +a.createdAt), ); return ( - }> + }> @@ -66,6 +66,7 @@ export default function Sessions() { */ function ManageCurrentSession(props: { otherSessions: Accessor }) { const client = useClient(); + const { openModal } = useModals(); /** * Resolve current session @@ -75,7 +76,7 @@ function ManageCurrentSession(props: { otherSessions: Accessor }) { return ( Current Session} description={currentSession()?.name} icon={} > @@ -84,45 +85,42 @@ function ManageCurrentSession(props: { otherSessions: Accessor }) { action="chevron" onClick={() => currentSession() && - getController("modal").push({ + openModal({ type: "rename_session", session: currentSession()!, }) } > - Rename + Rename - } - description="Keeps your last sessions active and automatically logs you out of other ones" + description={Keeps your last sessions active and automatically logs you out of other ones"} > Keep Last Active Sessions - + */} - getController("modal").push({ + openModal({ type: "sign_out_sessions", client: client(), }) } - icon={ - + icon={} + description={ + Logs you out of all sessions except this device. } - description="Logs you out of all sessions except this device." > - Log Out Other Sessions + Log Out Other Sessions @@ -133,6 +131,8 @@ function ManageCurrentSession(props: { otherSessions: Accessor }) { * List other logged in sessions */ function ListOtherSessions(props: { otherSessions: Accessor }) { + const { openModal } = useModals(); + return ( @@ -143,29 +143,29 @@ function ListOtherSessions(props: { otherSessions: Accessor }) { icon={} title={{session.name}} description={ - <> + Created } > - getController("modal").push({ + openModal({ type: "rename_session", session, }) } > - Rename + Rename session.delete()} > - Log Out + Log Out )} diff --git a/packages/client/components/app/interface/settings/user/Sync.tsx b/packages/client/components/app/interface/settings/user/Sync.tsx index 5016018b..6287494b 100644 --- a/packages/client/components/app/interface/settings/user/Sync.tsx +++ b/packages/client/components/app/interface/settings/user/Sync.tsx @@ -1,10 +1,10 @@ -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; + import { CategoryButton, CategoryButtonGroup, Checkbox, Column, - FormGroup, Time, iconSize, } from "@revolt/ui"; @@ -17,45 +17,46 @@ import MdPalette from "@material-design-icons/svg/outlined/palette.svg?component * Sync Configuration Page */ export default function Sync() { - const t = useTranslation(); - return ( - - void value} />} - onClick={() => void 0} - icon={} - description={t("app.settings.pages.sync.descriptions.appearance")} - > - {t("app.settings.pages.appearance.title")} - - - - void value} />} - onClick={() => void 0} - icon={} - description={t("app.settings.pages.sync.descriptions.theme")} - > - {t("app.settings.pages.appearance.theme")} - - - - void value} />} - onClick={() => void 0} - icon={} - description={t("app.settings.pages.sync.descriptions.locale")} - > - {t("app.settings.pages.language.title")} - - + void value} />} + onClick={() => void 0} + icon={} + description={ + + Sync appearance options, such as chosen emoji pack and message + density. + + } + > + Appearance + + void value} />} + onClick={() => void 0} + icon={} + description={ + Sync your chosen theme, colours, and any custom CSS. + } + > + Theme + + void value} />} + onClick={() => void 0} + icon={} + description={Sync your currently chosen language.} + > + Language + - Last sync diff --git a/packages/client/components/app/interface/settings/user/_AccountCard.tsx b/packages/client/components/app/interface/settings/user/_AccountCard.tsx index 2d9a0ed9..209ef601 100644 --- a/packages/client/components/app/interface/settings/user/_AccountCard.tsx +++ b/packages/client/components/app/interface/settings/user/_AccountCard.tsx @@ -1,8 +1,8 @@ +import { Trans } from "@lingui-solid/solid/macro"; + import { useClient } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; import { Avatar, OverflowingText, Ripple, typography } from "@revolt/ui"; -// import MdError from "@material-design-icons/svg/filled/error.svg?component-solid"; import { useSettingsNavigation } from "../Settings"; import { SidebarButton, @@ -15,7 +15,6 @@ import { */ export function AccountCard() { const client = useClient(); - const t = useTranslation(); const { page, navigate } = useSettingsNavigation(); return ( @@ -32,7 +31,7 @@ export function AccountCard() { > {client().user!.displayName} - {t("app.settings.pages.account.title")} + My Account {/* diff --git a/packages/client/components/app/interface/settings/user/account/UserSummary.tsx b/packages/client/components/app/interface/settings/user/account/UserSummary.tsx index f72d0066..474fdaa1 100644 --- a/packages/client/components/app/interface/settings/user/account/UserSummary.tsx +++ b/packages/client/components/app/interface/settings/user/account/UserSummary.tsx @@ -1,30 +1,35 @@ import { Show } from "solid-js"; -import { User } from "@upryzing/upryzing.js"; -import dayjs from "dayjs"; -import { cva } from "styled-system/css"; +import { User } from "upryzing.js"; import { styled } from "styled-system/jsx"; -import { Avatar, Button, CategoryButtonGroup, iconSize } from "@revolt/ui"; +import { useTime } from "@revolt/i18n"; +import { Avatar, CategoryButton, IconButton, iconSize } from "@revolt/ui"; import MdCakeFill from "@material-design-icons/svg/filled/cake.svg?component-solid"; import MdEdit from "@material-design-icons/svg/outlined/edit.svg?component-solid"; -const banner = cva({ - base: { - background: "var(--colours-settings-background)", - }, -}); - export function UserSummary(props: { user: User; showBadges?: boolean; bannerUrl?: string; onEdit?: () => void; }) { + const dayjs = useTime(); + const bannerStyle = () => + props.bannerUrl + ? { + "background-image": `linear-gradient(color-mix(in srgb, var(--md-sys-color-surface-container-low) 70%, transparent), color-mix(in srgb, var(--md-sys-color-surface-container-low) 70%, transparent)), url("${props.bannerUrl}")`, + color: "black", + } + : { + background: `var(--md-sys-color-primary-container)`, + color: "var(--md-sys-color-on-primary)", + }; + return ( - - + + @@ -34,9 +39,9 @@ export function UserSummary(props: { - + @@ -52,23 +57,20 @@ export function UserSummary(props: { use:floating={{ tooltip: { placement: "top", + // todo content: dayjs(props.user.createdAt).format( - "[Account created] Do MMMM YYYY [at] HH:mm" + "[Account created] Do MMMM YYYY [at] HH:mm", ), }, }} > - {/* TODO)) Change colour to something more... appropriate... */} - + - + ); } @@ -98,6 +100,8 @@ const Username = styled("div", { display: "flex", flexDirection: "column", + color: "var(--md-sys-color-on-secondary-container)", + // Display Name "& :nth-child(1)": { fontSize: "18px", @@ -133,9 +137,10 @@ const ProfileBadges = styled("div", { display: "flex", gap: "var(--gap-sm)", width: "fit-content", - padding: "var(--gap-sm) var(--gap-sm)", + padding: "var(--gap-md)", borderRadius: "var(--borderRadius-md)", - background: "var(--colours-settings-background)", + fill: "var(--md-sys-color-on-secondary)", + background: "var(--md-sys-color-secondary)", }, }); diff --git a/packages/client/components/app/interface/settings/user/appearance/AppearanceMenu.tsx b/packages/client/components/app/interface/settings/user/appearance/AppearanceMenu.tsx new file mode 100644 index 00000000..1c52731e --- /dev/null +++ b/packages/client/components/app/interface/settings/user/appearance/AppearanceMenu.tsx @@ -0,0 +1,459 @@ +import { For, Match, Show, Switch, createSignal } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { css } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { useUser } from "@revolt/client"; +import { + UNICODE_EMOJI_PACKS, + UnicodeEmoji, + UnicodeEmojiPacks, +} from "@revolt/markdown/emoji/UnicodeEmoji"; +import { useState } from "@revolt/state"; +import { + Avatar, + Button, + Checkbox, + Column, + IconButton, + MenuItem, + MessageContainer, + Row, + Slider, + Text, + TextField, +} from "@revolt/ui"; +import { + FONT_KEYS, + Fonts, + MONOSPACE_FONT_KEYS, + MonospaceFonts, +} from "@revolt/ui/themes/fonts"; + +import MDPalette from "@material-design-icons/svg/outlined/palette.svg?component-solid"; + +/** + * All appearance options for the client + */ +export function AppearanceMenu() { + const user = useUser(); + const state = useState(); + const [pickerRef, setPickerRef] = createSignal(); + + return ( + + + + Welcome to the new appearance menu, custom themes are not available + just yet but we are looking for feedback on how to best implement + them! + + + + + + Colours + + + + + + + + + {/* + + + */} + + + + pickerRef()?.click()} + > + + + { + const colour = (e.currentTarget as HTMLInputElement).value; + state.theme.setM3Accent(colour); + }} + style={{ + position: "absolute", + opacity: 0, + width: "0px", + height: "0px", + padding: 0, + border: "none", + }} + /> + + {(colour) => ( + + + + + + + + + + + {/* + + + + */} + + + + + + + + Display & Text + + + + + Enable transparency glass/blur effects (slow on older machines) + + + + + + + } + timestamp={new Date()} + username={user()?.displayName} + isLink="hide" + > + Sphinx of black quartz, judge my vow + + } + timestamp={new Date()} + username={"MysticPixie"} + isLink="hide" + > + + The quick brown fox jumped over the lazy dog + + + + + + + Message Size + + + (state.theme.messageSize = event.currentTarget.value) + } + /> + + + + Message Group Spacing + + + (state.theme.messageGroupSpacing = event.currentTarget.value) + } + /> + + + Interface Font + + + state.theme.setInterfaceFont(e.currentTarget.value as Fonts) + } + > + + {(key) => {key}} + + + + + Monospace Font + + + state.theme.setMonospaceFont(e.currentTarget.value as MonospaceFonts) + } + > + + {(key) => {key}} + + + + + + Chat Input + + + + state.settings.setValue( + "appearance:show_send_button", + event.currentTarget.checked, + ) + } + > + Show send message button + + + + Emoji Pack (affects your messages only) + + + state.settings.setValue( + "appearance:unicode_emoji", + e.currentTarget.value as never, + ) + } + > + + {(pack) => } + + + + + ); +} + +/** + * Render an individual emoji pack + * @param pack Pack + */ +function EmojiPack(props: { pack: UnicodeEmojiPacks }) { + return ( + + + + + + + + + Fluent 3D + Fluent Color + Fluent Flat + Mutant Remix + Noto + OpenMoji + Twemoji + + + + ); +} + +const Preview = styled("div", { + base: { + height: "126px", + overflow: "hidden", + borderRadius: "var(--borderRadius-lg)", + background: "var(--md-sys-color-surface-container-highest)", + }, +}); + +const MessagePreview = styled("div", { + base: { + display: "flex", + flexDirection: "column", + padding: "var(--gap-md)", + gap: "var(--message-group-spacing)", + }, +}); diff --git a/packages/client/components/app/interface/settings/user/appearance/index.ts b/packages/client/components/app/interface/settings/user/appearance/index.ts new file mode 100644 index 00000000..06e35aca --- /dev/null +++ b/packages/client/components/app/interface/settings/user/appearance/index.ts @@ -0,0 +1 @@ +export { AppearanceMenu } from "./AppearanceMenu"; diff --git a/packages/client/components/app/interface/settings/user/bots/MyBots.tsx b/packages/client/components/app/interface/settings/user/bots/MyBots.tsx index 03f53928..04ccee5a 100644 --- a/packages/client/components/app/interface/settings/user/bots/MyBots.tsx +++ b/packages/client/components/app/interface/settings/user/bots/MyBots.tsx @@ -1,14 +1,16 @@ import { ErrorBoundary, For, Suspense } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; + import { useClient } from "@revolt/client"; import { createOwnBotsResource } from "@revolt/client/resources"; -import { modalController } from "@revolt/modal"; +import { useModals } from "@revolt/modal"; import { Avatar, CategoryButton, CategoryButtonGroup, + CircularProgress, Column, - Preloader, iconSize, } from "@revolt/ui"; @@ -34,6 +36,7 @@ export function MyBots() { */ function CreateBot() { const client = useClient(); + const { openModal } = useModals(); const { navigate } = useSettingsNavigation(); return ( @@ -42,7 +45,7 @@ function CreateBot() { action="chevron" icon={} onClick={() => - modalController.push({ + openModal({ type: "create_bot", client: client(), onCreate(bot) { @@ -50,17 +53,23 @@ function CreateBot() { }, }) } - description="You agree that your bot is subject to the Acceptable Usage Policy." + description={ + + You agree that your bot is subject to the Acceptable Usage Policy. + + } > - Create Bot + Create Bot } - onClick={() => window.open("https://developers.revolt.chat", "_blank")} - description="Learn more about how to create bots on Revolt." + onClick={() => window.open("https://developers.stoat.chat", "_blank")} + description={ + Learn more about how to create bots on Upryzing. + } > - Developer Documentation + Developer Documentation ); @@ -75,7 +84,7 @@ function ListBots() { return ( - }> + }> {(bot) => ( @@ -89,7 +98,7 @@ function ListBots() { } onClick={() => navigate(`bots/${bot.id}`)} action="chevron" - // description={bot.id} + // description={bot.id} > {bot.user!.displayName} diff --git a/packages/client/components/app/interface/settings/user/bots/ViewBot.tsx b/packages/client/components/app/interface/settings/user/bots/ViewBot.tsx index 81d2b083..c4036364 100644 --- a/packages/client/components/app/interface/settings/user/bots/ViewBot.tsx +++ b/packages/client/components/app/interface/settings/user/bots/ViewBot.tsx @@ -1,71 +1,105 @@ -import { useClient } from "@revolt/client"; +import { Trans } from "@lingui-solid/solid/macro"; +import { Bot } from "upryzing.js"; + import { createProfileResource } from "@revolt/client/resources"; -import { - CategoryButton, - CategoryButtonGroup, - Column, - iconSize, -} from "@revolt/ui"; +import { useModals } from "@revolt/modal"; +import { CategoryButton, Column, iconSize } from "@revolt/ui"; +import MdContentCopy from "@material-design-icons/svg/outlined/content_copy.svg?component-solid"; +import MdKey from "@material-design-icons/svg/outlined/key.svg?component-solid"; import MdLink from "@material-design-icons/svg/outlined/link.svg?component-solid"; import MdPersonAdd from "@material-design-icons/svg/outlined/person_add.svg?component-solid"; import MdPublic from "@material-design-icons/svg/outlined/public.svg?component-solid"; import MdToken from "@material-design-icons/svg/outlined/token.svg?component-solid"; -import { useSettingsNavigation } from "../../Settings"; import { UserSummary } from "../account/index"; -import { EditProfileButtons } from "../profile/EditProfileButtons"; +import { UserProfileEditor } from "../profile/UserProfileEditor"; /** * View a specific bot */ -export function ViewBot() { - const client = useClient(); - const { page } = useSettingsNavigation(); - - const bot = () => client().bots.get(page()!.substring("bots/".length))!; - const profile = createProfileResource(bot().user!); +export function ViewBot(props: { bot: Bot }) { + // `bot` will never change, so we don't care about reactivity here + // eslint-disable-next-line solid/reactivity + const profile = createProfileResource(props.bot.user!); + const { openModal } = useModals(); return ( - + + {/* Failed to load profile}> loading...}>{profile.data?.content} */} - + Generate a new token if it gets lost or compromised + } icon={} action="chevron" + onClick={() => openModal({ type: "reset_bot_token", bot: props.bot })} > - Reset Token + Reset Token + Allow others to add your bot to their servers from Discover + + } icon={} action="chevron" > - Submit to Discover + Submit to Discover - + - - } action="copy"> - Copy Invite - + } action="chevron" + onClick={() => + openModal({ + type: "add_bot", + invite: props.bot.publicBot, + }) + } + > + Invite Bot + + } + action="copy" + onClick={() => + navigator.clipboard.writeText( + new URL(`/bot/${props.bot.id}`, window.origin).toString(), + ) + } + > + Copy Invite URL + + } + action="copy" + onClick={() => navigator.clipboard.writeText(props.bot.id)} + > + Copy ID + + } + action="copy" + onClick={() => navigator.clipboard.writeText(props.bot.token)} > - Invite Bot + Copy Token - + ); } diff --git a/packages/client/components/app/interface/settings/user/index.tsx b/packages/client/components/app/interface/settings/user/index.tsx deleted file mode 100644 index 557d2b76..00000000 --- a/packages/client/components/app/interface/settings/user/index.tsx +++ /dev/null @@ -1,288 +0,0 @@ -import { Component, Show } from "solid-js"; - -import { Server } from "@upryzing/upryzing.js"; - -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; -import { useUser } from "@revolt/markdown/users"; -import { ColouredText, Column, iconSize } from "@revolt/ui"; -import { ColourSwatches } from "@revolt/ui/components/design/atoms/inputs/ColourSwatches"; - -// Filled Icons -import MdAccountCircleFill from "@material-design-icons/svg/filled/account_circle.svg?component-solid"; -import MdDesktopWindowsFill from "@material-design-icons/svg/filled/desktop_windows.svg?component-solid"; -import MdExtensionFill from "@material-design-icons/svg/filled/extension.svg?component-solid"; -import MdFormatListBulletedFill from "@material-design-icons/svg/filled/format_list_bulleted.svg?component-solid"; -import MdLanguageFill from "@material-design-icons/svg/filled/language.svg?component-solid"; -import MdLocalCafeFill from "@material-design-icons/svg/filled/local_cafe.svg?component-solid"; -import MdLogoutFill from "@material-design-icons/svg/filled/logout.svg?component-solid"; -import MdMemoryFill from "@material-design-icons/svg/filled/memory.svg?component-solid"; -import MdNotificationsFill from "@material-design-icons/svg/filled/notifications.svg?component-solid"; -import MdPaletteFill from "@material-design-icons/svg/filled/palette.svg?component-solid"; -import MdRateReviewFill from "@material-design-icons/svg/filled/rate_review.svg?component-solid"; -import MdScienceFill from "@material-design-icons/svg/filled/science.svg?component-solid"; -import MdSmartToyFill from "@material-design-icons/svg/filled/smart_toy.svg?component-solid"; -import MdSpeakerFill from "@material-design-icons/svg/filled/speaker.svg?component-solid"; -import MdSyncFill from "@material-design-icons/svg/filled/sync.svg?component-solid"; -import MdVerifiedUserFill from "@material-design-icons/svg/filled/verified_user.svg?component-solid"; -import MdAccessibility from "@material-design-icons/svg/outlined/accessibility.svg?component-solid"; -// Outlined Icons -import MdAccountCircle from "@material-design-icons/svg/outlined/account_circle.svg?component-solid"; -import MdDesktopWindows from "@material-design-icons/svg/outlined/desktop_windows.svg?component-solid"; -import MdExtension from "@material-design-icons/svg/outlined/extension.svg?component-solid"; -import MdFormatListBulleted from "@material-design-icons/svg/outlined/format_list_bulleted.svg?component-solid"; -import MdKeybinds from "@material-design-icons/svg/outlined/keyboard.svg?component-solid"; -import MdLanguage from "@material-design-icons/svg/outlined/language.svg?component-solid"; -import MdLocalCafe from "@material-design-icons/svg/outlined/local_cafe.svg?component-solid"; -import MdLogout from "@material-design-icons/svg/outlined/logout.svg?component-solid"; -import MdMemory from "@material-design-icons/svg/outlined/memory.svg?component-solid"; -import MdNotifications from "@material-design-icons/svg/outlined/notifications.svg?component-solid"; -import MdPalette from "@material-design-icons/svg/outlined/palette.svg?component-solid"; -import MdRateReview from "@material-design-icons/svg/outlined/rate_review.svg?component-solid"; -import MdScience from "@material-design-icons/svg/outlined/science.svg?component-solid"; -import MdSmartToy from "@material-design-icons/svg/outlined/smart_toy.svg?component-solid"; -import MdSpeaker from "@material-design-icons/svg/outlined/speaker.svg?component-solid"; -import MdSync from "@material-design-icons/svg/outlined/sync.svg?component-solid"; -import MdVerifiedUser from "@material-design-icons/svg/outlined/verified_user.svg?component-solid"; - -import { SettingsConfiguration } from ".."; - -import accessibility from "./Accessibility"; -import account from "./Account"; -import appearance from "./Appearance"; -import experiments from "./Experiments"; -import feedback from "./Feedback"; -import keybinds from "./Keybinds"; -import language from "./Language"; -import native from "./Native"; -import notifications from "./Notifications"; -import sessions from "./Sessions"; -import sync from "./Sync"; -import { AccountCard } from "./_AccountCard"; -import { MyBots, ViewBot } from "./bots"; -import { EditProfile } from "./profile"; - -/** - * All the available routes for client settings - */ -const ClientSettingsRouting: Record = { - account, - profile: EditProfile, - sessions, - - // Bots - bots: MyBots, - "bots/view": ViewBot, - - feedback, - audio: () => null, - appearance, - "appearance/colours": () => , - accessibility, - notifications, - language, - sync, - native, - experiments, - keybinds, -}; - -/** - * Map the page key to component - * @param id Id - * @returns New Id - */ -function mapRoutingId(id: string) { - if (id.startsWith("bots/")) { - return "bots/view"; - } - - return id; -} - -const Config: SettingsConfiguration<{ server: Server }> = { - /** - * Page titles - * @param key - */ - title(key) { - const t = useTranslation(); - - if (key.startsWith("bots/")) { - const user = useUser(key.substring(5)); - return user()!.username; - } - - return t( - `app.settings.pages.${key.replaceAll("/", ".")}.title` as any, - undefined, - key - ); - }, - - /** - * Render the current client settings page - */ - render(props) { - // eslint-disable-next-line solid/reactivity - const id = props.page(); - // eslint-disable-next-line solid/components-return-once - if (!id) return null; - - const Component = ClientSettingsRouting[mapRoutingId(id)]; - return ( - - - - ); - }, - - /** - * Generate list of categories / entries for client settings - * @returns List - */ - list() { - const t = useTranslation(); - - return { - prepend: ( - - -
- - ), - entries: [ - { - title: t("app.settings.categories.user_settings"), - entries: [ - { - id: "account", - icon: <>, - title: <>, - hidden: true, - }, - { - id: "profile", - icon: , - title: t("app.settings.pages.profile.title"), - }, - { - id: "sessions", - icon: , - title: t("app.settings.pages.sessions.title"), - }, - ], - }, - { - title: "Upryzing", - entries: [ - { - id: "bots", - icon: , - title: t("app.settings.pages.bots.title"), - }, - { - id: "feedback", - icon: , - title: t("app.settings.pages.feedback.title"), - }, - ], - }, - { - title: t("app.settings.categories.client_settings"), - entries: [ - // { - // id: "audio", - // icon: , - // title: t("app.settings.pages.audio.title"), - // hidden: - // !getController("state").experiments.isEnabled("voice_chat"), - // }, - // { - // id: "appearance", - // icon: , - // title: t("app.settings.pages.appearance.title"), - // }, - // { - // id: "accessibility", - // icon: , - // title: t("app.settings.pages.accessibility.title"), - // }, - // { - // id: "plugins", - // icon: , - // title: t("app.settings.pages.plugins.title"), - // hidden: !getController("state").experiments.isEnabled("plugins"), - // }, - // { - // id: "notifications", - // icon: , - // title: t("app.settings.pages.notifications.title"), - // }, - // { - // id: "keybinds", - // icon: , - // title: t("app.settings.pages.keybinds.title"), - // }, - { - id: "language", - icon: , - title: t("app.settings.pages.language.title"), - }, - // { - // id: "sync", - // icon: , - // title: t("app.settings.pages.sync.title"), - // }, - // { - // id: "native", - // hidden: false, - // icon: , - // title: t("app.settings.pages.native.title"), - // }, - { - id: "experiments", - icon: , - title: t("app.settings.pages.experiments.title"), - }, - ], - }, - { - entries: [ - // { - // onClick: () => - // getController("modal").push({ type: "changelog", posts: [] }), - // icon: , - // title: t("app.special.modals.changelogs.title"), - // }, - { - href: "https://github.com/upryzing", - icon: , - title: t("app.settings.pages.source_code"), - }, - { - id: "logout", - icon: ( - - ), - title: ( - - {t("app.settings.pages.logOut")} - - ), - onClick: () => { - getController("modal").pop(); - getController("client").logout(); - }, - }, - ], - }, - ], - }; - }, -}; - -export default Config; diff --git a/packages/client/components/app/interface/settings/user/profile/EditProfile.tsx b/packages/client/components/app/interface/settings/user/profile/EditProfile.tsx index 4bcb3239..9dfca228 100644 --- a/packages/client/components/app/interface/settings/user/profile/EditProfile.tsx +++ b/packages/client/components/app/interface/settings/user/profile/EditProfile.tsx @@ -1,28 +1,24 @@ import { For } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; + import { useClient } from "@revolt/client"; import { createOwnProfileResource } from "@revolt/client/resources"; -import { modalController } from "@revolt/modal"; -import { - Avatar, - CategoryButton, - CategoryButtonGroup, - CategoryCollapse, - Column, - iconSize, -} from "@revolt/ui"; +import { useModals } from "@revolt/modal"; +import { Avatar, CategoryButton, Column, Text, iconSize } from "@revolt/ui"; import MdGroups from "@material-design-icons/svg/outlined/groups.svg?component-solid"; import { UserSummary } from "../account/index"; -import { EditProfileButtons } from "./EditProfileButtons"; +import { UserProfileEditor } from "./UserProfileEditor"; /** * Edit profile */ export function EditProfile() { const client = useClient(); + const { openModal } = useModals(); const profile = createOwnProfileResource(); return ( @@ -32,13 +28,11 @@ export function EditProfile() { bannerUrl={profile.data?.animatedBannerURL} /> - - - - + } - title="Space Identities" - description="Change your profile per-space" + title={Server Identities} + description={Change your profile per-server} scrollable > @@ -52,7 +46,7 @@ export function EditProfile() { /> } onClick={() => - modalController.push({ + openModal({ type: "server_identity", member: server.member!, }) @@ -62,8 +56,15 @@ export function EditProfile() { )} - - + + + + + + Edit Global Profile + + + ); } diff --git a/packages/client/components/app/interface/settings/user/profile/EditProfileButtons.tsx b/packages/client/components/app/interface/settings/user/profile/EditProfileButtons.tsx deleted file mode 100644 index 7c287261..00000000 --- a/packages/client/components/app/interface/settings/user/profile/EditProfileButtons.tsx +++ /dev/null @@ -1,187 +0,0 @@ -import { Match, Switch } from "solid-js"; - -import { User } from "@upryzing/upryzing.js"; - -import { useClient } from "@revolt/client"; -import { createOwnProfileResource } from "@revolt/client/resources"; -import { modalController } from "@revolt/modal"; -import { state } from "@revolt/state"; -import { - CategoryButton, - CategoryButtonGroup, - CategoryCollapse, - iconSize, -} from "@revolt/ui"; - -import MdBadge from "@material-design-icons/svg/outlined/badge.svg?component-solid"; -import MdCrop169 from "@material-design-icons/svg/outlined/crop_16_9.svg?component-solid"; -import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; -import MdDiversity from "@material-design-icons/svg/outlined/diversity_1.svg?component-solid"; -import MdReplaceImage from "@material-design-icons/svg/outlined/edit.svg?component-solid"; -import MdEditNote from "@material-design-icons/svg/outlined/edit_note.svg?component-solid"; -import MdImage from "@material-design-icons/svg/outlined/image.svg?component-solid"; - -export function EditProfileButtons(props: { user: User }) { - const client = useClient(); - const profile = createOwnProfileResource(); - - function selectImage(tag: string, cb: (id: string) => void) { - const el = document.createElement("input"); - el.type = "file"; - el.accept = "image/*"; - - el.onchange = async () => { - if (el.files) { - const [file] = el.files; - if (file) { - const body = new FormData(); - body.append("file", file); - - const token = state.auth.getSession()?.token ?? ""; - - const data = await fetch( - `${client().configuration?.features.pigeon.url}/${tag}`, - { - method: "POST", - body, - headers: { - "X-Session-Token": token, - }, - } - ).then((res) => res.json()); - - // TODO: show progress (at least pending, use mutations from tanstack query?) - // TODO: handle errors - - cb(data.id); - } - } - }; - - document.body.append(el); - el.click(); - el.remove(); - } - - function replaceAvatar() { - selectImage("avatars", (avatar) => props.user.edit({ avatar })); - } - - function replaceBanner() { - selectImage("backgrounds", (background) => - props.user.edit({ profile: { background } }).then(() => profile.refetch()) - ); - } - - return ( - - } - action="chevron" - onClick={() => - modalController.push({ - type: "edit_display_name", - user: props.user, - }) - } - > - Display Name - - } - action="chevron" - onClick={() => - modalController.push({ - type: "edit_pronouns", - user: props.user, - }) - } - > - Pronouns - - } - action="chevron" - onClick={replaceAvatar} - > - Avatar - - } - > - - } - title="Avatar" - description="Change or remove your profile picture" - > - } - action="chevron" - onClick={replaceAvatar} - > - Replace Avatar - - } - action="chevron" - onClick={() => props.user.edit({ remove: ["Avatar"] })} - > - Remove Avatar - - - - - } - action="chevron" - onClick={replaceBanner} - > - Banner - - } - > - - } - title="Banner" - description="Change or remove your profile banner" - > - } - action="chevron" - onClick={replaceBanner} - > - Replace Banner - - } - action="chevron" - onClick={() => props.user.edit({ remove: ["ProfileBackground"] })} - > - Remove Banner - - - - - } - action="chevron" - > - Bio - - - ); -} diff --git a/packages/client/components/app/interface/settings/user/profile/UserProfileEditor.tsx b/packages/client/components/app/interface/settings/user/profile/UserProfileEditor.tsx new file mode 100644 index 00000000..364d120c --- /dev/null +++ b/packages/client/components/app/interface/settings/user/profile/UserProfileEditor.tsx @@ -0,0 +1,209 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { Show, createEffect, createSignal, on } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { useQuery, useQueryClient } from "@tanstack/solid-query"; +import { API, User } from "upryzing.js"; + +import { useClient } from "@revolt/client"; +import { CONFIGURATION } from "@revolt/common"; +import { + CategoryButton, + CircularProgress, + Column, + Form2, + Row, + Text, +} from "@revolt/ui"; + +import MdBadge from "@material-design-icons/svg/filled/badge.svg?component-solid"; + +import { useSettingsNavigation } from "../../Settings"; + +interface Props { + user: User; +} + +export function UserProfileEditor(props: Props) { + const { t } = useLingui(); + const client = useClient(); + const queryClient = useQueryClient(); + + const profile = useQuery(() => ({ + queryKey: ["profile", props.user.id], + queryFn: () => props.user.fetchProfile(), + refetchOnReconnect: false, + refetchOnWindowFocus: false, + })); + + const { navigate } = useSettingsNavigation(); + + /* eslint-disable solid/reactivity */ + const editGroup = createFormGroup({ + displayName: createFormControl(props.user.displayName), + // username: createFormControl(props.user.username), + avatar: createFormControl( + props.user.animatedAvatarURL, + ), + banner: createFormControl(null), + bio: createFormControl(""), + }); + /* eslint-enable solid/reactivity */ + + // unlike the other forms, this one does not react to + // further changes outside of our control because it's + // unlikely that the user is going to be doing this + + const [initialBio, setInitialBio] = createSignal(); + + // once profile data is loaded, copy it into the form + createEffect( + on( + () => profile.data, + (profileData) => { + if (profileData) { + editGroup.controls.banner.setValue( + profileData.animatedBannerURL || null, + ); + + editGroup.controls.bio.setValue(profileData.content || ""); + setInitialBio([profileData.content || ""]); + } + }, + ), + ); + + function onReset() { + editGroup.controls.displayName.setValue(props.user.displayName); + editGroup.controls.avatar.setValue(props.user.animatedAvatarURL); + + if (profile.data) { + editGroup.controls.banner.setValue( + profile.data.animatedBannerURL || null, + ); + editGroup.controls.bio.setValue(profile.data.content || ""); + setInitialBio([profile.data.content || ""]); + } + } + + async function onSubmit() { + const changes: API.DataEditUser = { + remove: [], + }; + + if (editGroup.controls.displayName.isDirty) { + changes.display_name = editGroup.controls.displayName.value.trim(); + } + + if (editGroup.controls.avatar.isDirty) { + if (!editGroup.controls.avatar.value) { + changes.remove!.push("Avatar"); + } else if (Array.isArray(editGroup.controls.avatar.value)) { + changes.avatar = await client().uploadFile( + "avatars", + editGroup.controls.avatar.value[0], + CONFIGURATION.DEFAULT_MEDIA_URL, + ); + } + } + + if (editGroup.controls.bio.isDirty) { + if (!editGroup.controls.bio.value) { + changes.remove!.push("ProfileContent"); + } else { + changes.profile ??= {}; + changes.profile.content = editGroup.controls.bio.value; + } + } + + let newBannerUrl: string | null = null; + + if (editGroup.controls.banner.isDirty) { + if (!editGroup.controls.banner.value) { + changes.remove!.push("ProfileBackground"); + } else if (Array.isArray(editGroup.controls.banner.value)) { + changes.profile ??= {}; + changes.profile.background = await client().uploadFile( + "backgrounds", + editGroup.controls.banner.value[0], + CONFIGURATION.DEFAULT_MEDIA_URL, + ); + + newBannerUrl = `${CONFIGURATION.DEFAULT_MEDIA_URL}/backgrounds/${changes.profile.background}`; + } else { + newBannerUrl = editGroup.controls.banner.value; + } + } + + await props.user.edit(changes); + + if (editGroup.controls.banner.isDirty && profile.data) { + queryClient.setQueryData(["profile", props.user.id], { + ...profile.data, + animatedBannerURL: newBannerUrl, + bannerURL: newBannerUrl, + }); + } + } + + const submit = Form2.useSubmitHandler(editGroup, onSubmit, onReset); + + return ( +
+ + + + + {/* TODO: pronouns, again */} + + + } + action="chevron" + description={ + Go to account settings to edit your username + } + onClick={() => navigate("account")} + > + Want to change username? + + + + + Profile Bio + + + + + + + Save + + + + + + +
+ ); +} diff --git a/packages/client/components/app/interface/settings/user/subscriptions/EditSubscription.tsx b/packages/client/components/app/interface/settings/user/subscriptions/EditSubscription.tsx new file mode 100644 index 00000000..c000a250 --- /dev/null +++ b/packages/client/components/app/interface/settings/user/subscriptions/EditSubscription.tsx @@ -0,0 +1,15 @@ +import { + EditSubscriptionJoinFlow, + TempMountStripe, +} from "./EditSubscriptionJoinFlow"; + +/** + * Settings menu for joining or changing [premium subscription name here] + */ +export function EditSubscription() { + return ( + + + + ); +} diff --git a/packages/client/components/app/interface/settings/user/subscriptions/EditSubscriptionJoinFlow.tsx b/packages/client/components/app/interface/settings/user/subscriptions/EditSubscriptionJoinFlow.tsx new file mode 100644 index 00000000..d84483ff --- /dev/null +++ b/packages/client/components/app/interface/settings/user/subscriptions/EditSubscriptionJoinFlow.tsx @@ -0,0 +1,59 @@ +import { JSXElement, createSignal, onMount } from "solid-js"; +import { Elements, PaymentElement, useElements, useStripe } from "solid-stripe"; + +import { loadStripe } from "@stripe/stripe-js/pure"; + +/** + * Tier selection and purchase flow + */ +export function EditSubscriptionJoinFlow() { + const stripe = useStripe(); + const elements = useElements(); + + return ( +
+ + + {/* Show error message to your customers */} + {/* {errorMessage() &&
{errorMessage()}
} */} + + ); +} + +export function TempMountStripe(props: { children: JSXElement }) { + const [stripe, setStripe] = createSignal(null); + + onMount(async () => { + const _stripe = await loadStripe( + "pk_test_51QeG4NQS9UmC2GH3zIQp8F8hpOtSiq1Cix94Xjf0giCm6MW5qj0Wtdf4RY5HpvtG2Z8CmlR1W5ELLAqjSxgZjTAn00899Z6cfd", + ); + + setStripe(_stripe as never); + }); + + const theme = window.getComputedStyle(document.body); + + return ( + + {props.children} + + ); +} diff --git a/packages/client/components/app/interface/settings/user/subscriptions/index.ts b/packages/client/components/app/interface/settings/user/subscriptions/index.ts new file mode 100644 index 00000000..3ddd7812 --- /dev/null +++ b/packages/client/components/app/interface/settings/user/subscriptions/index.ts @@ -0,0 +1 @@ +export * from "./EditSubscription"; diff --git a/packages/client/components/app/interface/settings/user/voice/VoiceInputOptions.tsx b/packages/client/components/app/interface/settings/user/voice/VoiceInputOptions.tsx new file mode 100644 index 00000000..f392c3c1 --- /dev/null +++ b/packages/client/components/app/interface/settings/user/voice/VoiceInputOptions.tsx @@ -0,0 +1,142 @@ +import { For } from "solid-js"; +import { useMediaDeviceSelect } from "solid-livekit-components"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { useState } from "@revolt/state"; +import { Checkbox, Column, Slider, Text } from "@revolt/ui"; +import { + CategoryButton, + CategoryCollapse, +} from "@revolt/ui/components/design/CategoryButton"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; + +/** + * Input options + */ +export function VoiceInputOptions() { + return ( + + + + + + + + ); +} + +/** + * Select audio input + */ +function SelectMicrophone() { + const { t } = useLingui(); + const state = useState(); + const { activeDeviceId, devices, setActiveMediaDevice } = + useMediaDeviceSelect({ + kind: "audioinput", + }); + + const activeId = () => + (activeDeviceId() === "default" + ? state.voice.preferredAudioInputDevice + : undefined) ?? activeDeviceId(); + + const description = () => + devices().find((device) => device.deviceId === activeId())?.label ?? + t`Using default microphone`; + + return ( + mic} + title={Select audio input} + description={description()} + scrollable + > + + {(device) => ( + } + onClick={() => { + state.voice.preferredAudioInputDevice = device.deviceId; + setActiveMediaDevice(device.deviceId); + }} + > + {device.label} + + )} + + + ); +} + +/** + * Select audio output + */ +function SelectSpeaker() { + const { t } = useLingui(); + const state = useState(); + const { activeDeviceId, devices, setActiveMediaDevice } = + useMediaDeviceSelect({ + kind: "audiooutput", + }); + + const activeId = () => + (activeDeviceId() === "default" + ? state.voice.preferredAudioOutputDevice + : undefined) ?? activeDeviceId(); + + const description = () => + devices().find((device) => device.deviceId === activeId())?.label ?? + t`Using default speaker`; + + return ( + speaker} + title={Select audio output} + description={description()} + scrollable + > + + {(device) => ( + } + onClick={() => { + state.voice.preferredAudioOutputDevice = device.deviceId; + setActiveMediaDevice(device.deviceId); + }} + > + {device.label} + + )} + + + ); +} + +/** + * Select volume + */ +function VolumeSliders() { + const state = useState(); + + return ( + + + Output Volume + + + (state.voice.outputVolume = event.currentTarget.value) + } + labelFormatter={(label) => (label * 100).toFixed(0) + "%"} + /> + + ); +} diff --git a/packages/client/components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx b/packages/client/components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx new file mode 100644 index 00000000..4cb3e851 --- /dev/null +++ b/packages/client/components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx @@ -0,0 +1,39 @@ +import { Trans } from "@lingui-solid/solid/macro"; + +import { useState } from "@revolt/state"; +import { CategoryButton, Checkbox, Column, Text } from "@revolt/ui"; + +/** + * Voice processing options + */ +export function VoiceProcessingOptions() { + const state = useState(); + + return ( + + + Voice Processing + + + } + onClick={() => + (state.voice.noiseSupression = !state.voice.noiseSupression) + } + > + Browser Noise Supression + + } + onClick={() => + (state.voice.echoCancellation = !state.voice.echoCancellation) + } + > + Browser Echo Cancellation + + + + ); +} diff --git a/packages/client/components/app/interface/settings/user/voice/VoiceSettings.tsx b/packages/client/components/app/interface/settings/user/voice/VoiceSettings.tsx new file mode 100644 index 00000000..bb10d3e4 --- /dev/null +++ b/packages/client/components/app/interface/settings/user/voice/VoiceSettings.tsx @@ -0,0 +1,16 @@ +import { Column } from "@revolt/ui"; + +import { VoiceInputOptions } from "./VoiceInputOptions"; +import { VoiceProcessingOptions } from "./VoiceProcessingOptions"; + +/** + * Configure voice options + */ +export function VoiceSettings() { + return ( + + + + + ); +} diff --git a/packages/client/components/app/menus/CategoryContextMenu.tsx b/packages/client/components/app/menus/CategoryContextMenu.tsx new file mode 100644 index 00000000..81d32075 --- /dev/null +++ b/packages/client/components/app/menus/CategoryContextMenu.tsx @@ -0,0 +1,110 @@ +import { Show } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import type { API } from "upryzing.js"; +import { Channel, Server } from "upryzing.js"; + +import { useModals } from "@revolt/modal"; +import { useState } from "@revolt/state"; + +import MdBadge from "@material-design-icons/svg/outlined/badge.svg?component-solid"; +import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; +import MdLibraryAdd from "@material-design-icons/svg/outlined/library_add.svg?component-solid"; +import MdMarkChatRead from "@material-design-icons/svg/outlined/mark_chat_read.svg?component-solid"; + +import { + ContextMenu, + ContextMenuButton, + ContextMenuDivider, +} from "./ContextMenu"; + +export type CategoryData = Omit & { + channels: Channel[]; +}; + +/** + * Context menu for categories + */ +export function CategoryContextMenu(props: { + server: Server; + category: CategoryData; +}) { + const state = useState(); + const { openModal } = useModals(); + + /** + * Mark category as read + */ + function markAsRead() { + props.category.channels + .filter((channel) => channel.unread) + .forEach((channel) => channel.ack()); + } + + /** + * Create a new category + */ + function createCategory() { + openModal({ + type: "create_category", + server: props.server, + }); + } + + /** + * Delete category + */ + function deleteCategory() { + openModal({ + type: "delete_category", + server: props.server, + categoryId: props.category.id, + }); + } + + /** + * Copy category id to clipboard + */ + function copyId() { + navigator.clipboard.writeText(props.category.id); + } + + /** + * Determine if any channel in category has unread messages + */ + const hasUnread = () => { + return props.category.channels.some((channel) => channel?.unread); + }; + + return ( + + + + Mark as read + + + + + + + Create category + + + + + Delete category + + + + + + + + + + Copy category ID + + + + ); +} diff --git a/packages/client/components/app/menus/ChannelContextMenu.tsx b/packages/client/components/app/menus/ChannelContextMenu.tsx index d7606b84..02b022d8 100644 --- a/packages/client/components/app/menus/ChannelContextMenu.tsx +++ b/packages/client/components/app/menus/ChannelContextMenu.tsx @@ -1,9 +1,10 @@ -import { Show } from "solid-js"; +import { Match, Show, Switch } from "solid-js"; -import { Channel } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { Channel } from "upryzing.js"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; +import { useModals } from "@revolt/modal"; +import { useState } from "@revolt/state"; import MdBadge from "@material-design-icons/svg/outlined/badge.svg?component-solid"; import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; @@ -20,12 +21,14 @@ import { ContextMenuButton, ContextMenuDivider, } from "./ContextMenu"; +import { NotificationContextMenu } from "./shared/NotificationContextMenu"; /** * Context menu for channels */ export function ChannelContextMenu(props: { channel: Channel }) { - const t = useTranslation(); + const state = useState(); + const { openModal } = useModals(); /** * Mark channel as read @@ -38,7 +41,7 @@ export function ChannelContextMenu(props: { channel: Channel }) { * Create a new invite */ function createInvite() { - getController("modal").push({ + openModal({ type: "create_invite", channel: props.channel, }); @@ -48,7 +51,7 @@ export function ChannelContextMenu(props: { channel: Channel }) { * Create a new channel */ function createChannel() { - getController("modal").push({ + openModal({ type: "create_channel", server: props.channel.server!, }); @@ -58,7 +61,7 @@ export function ChannelContextMenu(props: { channel: Channel }) { * Edit channel */ function editChannel() { - getController("modal").push({ + openModal({ type: "settings", config: "channel", context: props.channel, @@ -69,19 +72,19 @@ export function ChannelContextMenu(props: { channel: Channel }) { * Delete channel */ function deleteChannel() { - getController("modal").push({ + openModal({ type: "delete_channel", channel: props.channel, }); } /** - * Open channel in Revolt Admin Panel + * Open channel in Upryzing Admin Panel */ function openAdminPanel() { window.open( - `https://admin.revolt.chat/panel/inspect/channel/${props.channel.id}`, - "_blank" + `https://legacy-admin.stoatinternal.com/panel/inspect/channel/${props.channel.id}`, + "_blank", ); } @@ -90,9 +93,8 @@ export function ChannelContextMenu(props: { channel: Channel }) { */ function copyLink() { navigator.clipboard.writeText( - `${location.origin}${ - props.channel.server ? `/server/${props.channel.server?.id}` : "" - }/channel/${props.channel.id}` + `${location.origin}${props.channel.server ? `/server/${props.channel.server?.id}` : "" + }/channel/${props.channel.id}`, ); } @@ -112,36 +114,40 @@ export function ChannelContextMenu(props: { channel: Channel }) { > - {t("app.context_menu.mark_as_read")} + Mark as read - {t("app.context_menu.create_invite")} + Create invite + + + + - {t("app.context_menu.create_channel")} + Create channel - {t("app.context_menu.open_channel_settings")} + Open channel settings - {t( - props.channel.type === "Group" - ? "app.context_menu.leave_group" - : "app.context_menu.delete_channel" - )} + Delete channel}> + + Leave group + + @@ -154,15 +160,19 @@ export function ChannelContextMenu(props: { channel: Channel }) { - - Admin Panel - + + + Admin Panel + + - {t("app.context_menu.copy_link")} - - - {t("app.context_menu.copy_cid")} + Copy link + + + Copy channel ID + + ); } diff --git a/packages/client/components/app/menus/ContextMenu.tsx b/packages/client/components/app/menus/ContextMenu.tsx index 28ff6aba..bad03d54 100644 --- a/packages/client/components/app/menus/ContextMenu.tsx +++ b/packages/client/components/app/menus/ContextMenu.tsx @@ -1,72 +1,252 @@ -import { Component, ComponentProps, JSX, splitProps } from "solid-js"; +import { useFloating } from "solid-floating-ui"; +import { + Component, + ComponentProps, + JSX, + Show, + createSignal, + splitProps, +} from "solid-js"; +import { Portal } from "solid-js/web"; +import { Motion, Presence } from "solid-motionone"; +import { autoUpdate, offset, shift } from "@floating-ui/dom"; import { styled } from "styled-system/jsx"; -import { iconSize } from "@revolt/ui"; +import { Text, iconSize, symbolSize } from "@revolt/ui"; -export const ContextMenu = styled("div", { +import MdChevronRight from "@material-design-icons/svg/outlined/chevron_right.svg?component-solid"; + +const Base = styled("div", { base: { display: "flex", flexDirection: "column", padding: "var(--gap-md) 0", overflow: "hidden", - borderRadius: "var(--borderRadius-md)", - background: "var(--colours-component-context-menu-background)", - color: "var(--colours-component-context-menu-foreground)", - fill: "var(--colours-component-context-menu-foreground)", - boxShadow: "0 0 3px var(--colours-component-context-menu-shadow)", + borderRadius: "var(--borderRadius-xs)", + background: "var(--md-sys-color-surface-container)", + color: "var(--md-sys-color-on-surface)", + fill: "var(--md-sys-color-on-surface)", + boxShadow: "0 0 3px var(--md-sys-color-shadow)", + + userSelect: "none", }, }); +export function ContextMenu(props: ComponentProps) { + return ( + e.stopImmediatePropagation()} + {...props} + /> + ); +} + export const ContextMenuDivider = styled("div", { base: { height: "1px", margin: "var(--gap-sm) 0", - background: "var(--colours-component-context-menu-divider)", + background: "var(--md-sys-color-outline-variant)", }, }); export const ContextMenuItem = styled("a", { base: { - display: "block", + display: "flex", + gap: "var(--gap-md)", + alignItems: "center", padding: "var(--gap-md) var(--gap-lg)", + "&:hover": { - background: "var(--colours-component-context-menu-item-hover-background)", + background: + "color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent)", + }, + + "& span": { + flexGrow: 1, }, }, variants: { + selected: { + true: { + background: + "color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent)", + }, + false: {}, + }, + action: { + true: { + cursor: "pointer", + }, + }, button: { true: { + cursor: "pointer", display: "flex", alignItems: "center", gap: "var(--gap-md)", - textTransform: "capitalize", "& span": { marginTop: "1px", }, }, }, + _titleCase: { + true: {}, + false: {}, + }, destructive: { true: { - fill: "var(--customColours-error-color)", - color: "var(--customColours-error-color)", + fill: "var(--md-sys-color-error)", + color: "var(--md-sys-color-error)", }, }, }, + defaultVariants: { + _titleCase: true, + selected: false, + }, + compoundVariants: [ + { + _titleCase: true, + button: true, + css: { + textTransform: "capitalize", + }, + }, + ], }); type ButtonProps = ComponentProps & { - icon?: Component>; + icon?: JSX.Element | Component>; + symbol?: Component>; destructive?: boolean; + actionIcon?: JSX.Element | Component>; + actionSymbol?: Component>; }; export function ContextMenuButton(props: ButtonProps) { - const [local, remote] = splitProps(props, ["icon", "children"]); + const [local, remote] = splitProps(props, [ + "icon", + "symbol", + "actionIcon", + "actionSymbol", + "children", + ]); return ( - {local.icon?.(iconSize("1.2em"))} - {local.children} + {typeof local.icon === "function" + ? local.icon?.(iconSize(16)) + : local.icon} + {local.symbol?.(symbolSize(16))} + {local.children} + {typeof local.actionIcon === "function" + ? local.actionIcon?.(iconSize(20)) + : local.actionIcon} + {local.actionSymbol?.(symbolSize(20))} ); } + +export function ContextMenuSubMenu( + props: Omit< + ButtonProps, + "ref" | "onClick" | "onMouseEnter" | "onMouseLeave" + > & { + buttonContent: JSX.Element; + onClick?: () => void; + }, +) { + const [anchor, setAnchor] = createSignal(); + const [ref, setRef] = createSignal(); + + const [show, setShow] = createSignal<"hide" | "show" | boolean>(false); + const [local, buttonProps] = splitProps(props, [ + "children", + "buttonContent", + "onClick", + ]); + + function isShowing() { + return show() === true || show() === "show"; + } + + const position = useFloating(anchor, ref, { + placement: "right-start", + whileElementsMounted: autoUpdate, + middleware: [offset(5), shift()], + }); + + return ( + <> + { + e.stopImmediatePropagation(); + }} + onClick={(e) => { + if (local.onClick) { + local.onClick(); + } else { + e.stopImmediatePropagation(); + setShow(isShowing() ? false : "show"); + } + }} + onMouseEnter={() => setShow((show) => (show === "hide" ? show : true))} + {...buttonProps} + > + {local.buttonContent} + + + + + + setShow((show) => (show === true ? false : show)) + } + // stop submenu from closing context menu + onMouseDown={(e) => e.stopImmediatePropagation()} + > +
{ + if (local.onClick) { + local.onClick(); + } else { + // prevent submenu trigger from closing context menu + e.stopImmediatePropagation(); + setShow((show) => (show ? "hide" : true)); + } + }} + // float a virtual element to ensure the mouseLeave event covers + // both the anchor/button we attached to and the newly created context menu + style={{ + position: "fixed", + top: 0, + left: `-${(anchor()?.clientWidth ?? 0) + 5}px`, + width: `${(anchor()?.clientWidth ?? 0) + 5}px`, + height: `${anchor()?.clientHeight ?? 0}px`, + cursor: "pointer", + }} + /> + {local.children} + + + + + + ); +} diff --git a/packages/client/components/app/menus/DraftMessageContextMenu.tsx b/packages/client/components/app/menus/DraftMessageContextMenu.tsx index 24f2ac72..8d2a9b52 100644 --- a/packages/client/components/app/menus/DraftMessageContextMenu.tsx +++ b/packages/client/components/app/menus/DraftMessageContextMenu.tsx @@ -1,10 +1,10 @@ import { Show } from "solid-js"; -import { Channel } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { Channel } from "upryzing.js"; import { useClient } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; -import { state } from "@revolt/state"; +import { useState } from "@revolt/state"; import { UnsentMessage } from "@revolt/state/stores/Draft"; import MdClose from "@material-design-icons/svg/outlined/close.svg?component-solid"; @@ -22,20 +22,20 @@ interface Props { * Context menu for draft messages */ export function DraftMessageContextMenu(props: Props) { + const state = useState(); const client = useClient(); - const t = useTranslation(); /** * Retry sending the draft message */ - function retrySend(ev: MouseEvent) { + function retrySend() { state.draft.retrySend(client(), props.channel, props.draft.idempotencyKey); } /** * Delete the draft message */ - function deleteMessage(ev: MouseEvent) { + function deleteMessage() { state.draft.cancelSend(props.channel, props.draft.idempotencyKey); } @@ -44,7 +44,7 @@ export function DraftMessageContextMenu(props: Props) { - {t("app.context_menu.cancel_message")} + Cancel message - {t("app.context_menu.retry_message")} + Retry sending - {t("app.context_menu.delete_message")} + Delete message diff --git a/packages/client/components/app/menus/MessageContextMenu.tsx b/packages/client/components/app/menus/MessageContextMenu.tsx index b017bea2..0d43f45f 100644 --- a/packages/client/components/app/menus/MessageContextMenu.tsx +++ b/packages/client/components/app/menus/MessageContextMenu.tsx @@ -1,63 +1,74 @@ -import { Show } from "solid-js"; +import { For, Match, Show, Switch } from "solid-js"; -import { Message } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { File, Message } from "upryzing.js"; import { useClient, useUser } from "@revolt/client"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; -import { state } from "@revolt/state"; +import { CustomEmoji, UnicodeEmoji } from "@revolt/markdown/emoji"; +import { useModals } from "@revolt/modal"; +import { useState } from "@revolt/state"; import MdBadge from "@material-design-icons/svg/outlined/badge.svg?component-solid"; import MdContentCopy from "@material-design-icons/svg/outlined/content_copy.svg?component-solid"; import MdDelete from "@material-design-icons/svg/outlined/delete.svg?component-solid"; +import MdDeleteSweep from "@material-design-icons/svg/outlined/delete_sweep.svg?component-solid"; +import MdDownload from "@material-design-icons/svg/outlined/download.svg?component-solid"; +import MdEdit from "@material-design-icons/svg/outlined/edit.svg?component-solid"; +import MdLink from "@material-design-icons/svg/outlined/link.svg?component-solid"; import MdMarkChatUnread from "@material-design-icons/svg/outlined/mark_chat_unread.svg?component-solid"; +import MdOpenInNew from "@material-design-icons/svg/outlined/open_in_new.svg?component-solid"; +import MdPin from "@material-design-icons/svg/outlined/pin_invoke.svg?component-solid"; import MdReply from "@material-design-icons/svg/outlined/reply.svg?component-solid"; import MdReport from "@material-design-icons/svg/outlined/report.svg?component-solid"; import MdShare from "@material-design-icons/svg/outlined/share.svg?component-solid"; import MdShield from "@material-design-icons/svg/outlined/shield.svg?component-solid"; +import MdSentimentContent from "@material-symbols/svg-400/outlined/sentiment_content.svg?component-solid"; + import { ContextMenu, ContextMenuButton, ContextMenuDivider, + ContextMenuSubMenu, } from "./ContextMenu"; /** * Context menu for messages */ -export function MessageContextMenu(props: { message: Message }) { +export function MessageContextMenu(props: { message?: Message; file?: File }) { const user = useUser(); + const state = useState(); const client = useClient(); - const t = useTranslation(); + const { openModal, showError } = useModals(); /** * Reply to this message */ function reply() { - state.draft.addReply(props.message, user()!.id); + state.draft.addReply(props.message!, user()!.id); } /** * Mark message as unread */ function markAsUnread() { - props.message.ack(); + props.message!.ack(true, false, true); } /** * Copy message contents to clipboard */ function copyText() { - navigator.clipboard.writeText(props.message.content); + navigator.clipboard.writeText(props.message!.content); } /** * Report the message */ function report() { - getController("modal").push({ + openModal({ type: "report_content", - target: props.message, + target: props.message!, client: client(), }); } @@ -67,22 +78,22 @@ export function MessageContextMenu(props: { message: Message }) { */ function deleteMessage(ev: MouseEvent) { if (ev.shiftKey) { - props.message.delete(); + props.message!.delete(); } else { - getController("modal").push({ + openModal({ type: "delete_message", - message: props.message, + message: props.message!, }); } } /** - * Open message in Revolt Admin Panel + * Open message in Upryzing Admin Panel */ function openAdminPanel() { window.open( - `https://admin.revolt.chat/panel/inspect/message/${props.message.id}`, - "_blank" + `https://legacy-admin.stoatinternal.com/panel/inspect/message/${props.message!.id}`, + "_blank", ); } @@ -91,9 +102,8 @@ export function MessageContextMenu(props: { message: Message }) { */ function copyLink() { navigator.clipboard.writeText( - `${location.origin}${ - props.message.server ? `/server/${props.message.server?.id}` : "" - }/channel/${props.message.channelId}/${props.message.id}` + `${location.origin}${props.message!.server ? `/server/${props.message!.server?.id}` : "" + }/channel/${props.message!.channelId}/${props.message!.id}`, ); } @@ -101,46 +111,163 @@ export function MessageContextMenu(props: { message: Message }) { * Copy message id to clipboard */ function copyId() { - navigator.clipboard.writeText(props.message.id); + navigator.clipboard.writeText(props.message!.id); + } + + /** + * Opens the file preview in a new tab + */ + function OpenFile() { + window.open(props.file?.originalUrl, "_blank"); + } + + /** + * Copies the link to the original url of the file + */ + function CopyLink() { + navigator.clipboard.writeText(props.file?.originalUrl ?? ""); } return ( - - {t("app.context_menu.reply_message")} - - - {t("app.context_menu.mark_unread")} - - - {t("app.context_menu.copy_text")} - - - - - {t("app.context_menu.report_message")} + + + Open file + + + Copy link + + + Save file + + + + - - - {t("app.context_menu.delete_message")} + + + + Reply + + + + Mark as unread + + + Copy text + + + + state.draft.setEditingMessage(props.message!)} + > + Edit message + + + + { + if (props.message!.pinned) { + props.message!.unpin().catch(showError); + } else { + props.message!.pin().catch(showError); + } + }} + > + Pin message}> + + Unpin message + + + + + + props.message!.clearReactions()} + destructive + buttonContent={Remove reaction} + > + + {(key) => ( + props.message!.unreact(key, true)} + > + }> + + + + + + )} + + + + + props.message!.clearReactions()} + destructive + > + Remove all reactions + + + + + Delete message + + + + + Report message + + + + + + Admin Panel + + + + Copy link + + + Copy message ID + + - - - Admin Panel - - - {t("app.context_menu.copy_link")} - - - {t("app.context_menu.copy_mid")} - ); } diff --git a/packages/client/components/app/menus/ServerContextMenu.tsx b/packages/client/components/app/menus/ServerContextMenu.tsx index 581e991c..76f967de 100644 --- a/packages/client/components/app/menus/ServerContextMenu.tsx +++ b/packages/client/components/app/menus/ServerContextMenu.tsx @@ -1,32 +1,46 @@ -import { Show } from "solid-js"; +import { For, Show } from "solid-js"; -import { Server } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import dayjs from "dayjs"; +import { Server } from "upryzing.js"; import { useClient } from "@revolt/client"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; +import { useModals } from "@revolt/modal"; +import { useState } from "@revolt/state"; +import { Column, Text, Time } from "@revolt/ui"; +import MdAlternateEmail from "@material-design-icons/svg/outlined/alternate_email.svg?component-solid"; import MdBadge from "@material-design-icons/svg/outlined/badge.svg?component-solid"; import MdFace from "@material-design-icons/svg/outlined/face.svg?component-solid"; import MdLogout from "@material-design-icons/svg/outlined/logout.svg?component-solid"; import MdMarkChatRead from "@material-design-icons/svg/outlined/mark_chat_read.svg?component-solid"; +import MdNotificationsActive from "@material-design-icons/svg/outlined/notifications_active.svg?component-solid"; +import MdNotificationsOff from "@material-design-icons/svg/outlined/notifications_off.svg?component-solid"; import MdPersonAdd from "@material-design-icons/svg/outlined/person_add.svg?component-solid"; import MdReport from "@material-design-icons/svg/outlined/report.svg?component-solid"; import MdSettings from "@material-design-icons/svg/outlined/settings.svg?component-solid"; import MdShield from "@material-design-icons/svg/outlined/shield.svg?component-solid"; +import MdDoNotDisturbOff from "@material-symbols/svg-400/outlined/do_not_disturb_off.svg?component-solid"; +import MdDoNotDisturbOn from "@material-symbols/svg-400/outlined/do_not_disturb_on.svg?component-solid"; +import MdNotificationSettings from "@material-symbols/svg-400/outlined/notification_settings.svg?component-solid"; +import MdRadioButtonChecked from "@material-symbols/svg-400/outlined/radio_button_checked-fill.svg?component-solid"; +import MdRadioButtonUnchecked from "@material-symbols/svg-400/outlined/radio_button_unchecked.svg?component-solid"; + import { ContextMenu, ContextMenuButton, ContextMenuDivider, + ContextMenuSubMenu, } from "./ContextMenu"; /** * Context menu for servers */ export function ServerContextMenu(props: { server: Server }) { + const state = useState(); const client = useClient(); - const t = useTranslation(); + const { openModal } = useModals(); /** * Mark server as read @@ -43,12 +57,12 @@ export function ServerContextMenu(props: { server: Server }) { const channel = props.server.orderedChannels .find((category) => category.channels.find((channel) => - channel.havePermission("InviteOthers") - ) + channel.havePermission("InviteOthers"), + ), )! .channels.find((channel) => channel.havePermission("InviteOthers"))!; - getController("modal").push({ + openModal({ type: "create_invite", channel, }); @@ -58,7 +72,7 @@ export function ServerContextMenu(props: { server: Server }) { * Open server settings */ function editIdentity() { - getController("modal").push({ + openModal({ type: "server_identity", member: props.server.member!, }); @@ -68,7 +82,7 @@ export function ServerContextMenu(props: { server: Server }) { * Open server settings */ function openSettings() { - getController("modal").push({ + openModal({ type: "settings", config: "server", context: props.server, @@ -79,7 +93,7 @@ export function ServerContextMenu(props: { server: Server }) { * Report the server */ function report() { - getController("modal").push({ + openModal({ type: "report_content", target: props.server, client: client(), @@ -90,19 +104,19 @@ export function ServerContextMenu(props: { server: Server }) { * Leave the server */ function leave() { - getController("modal").push({ + openModal({ type: "leave_server", server: props.server, }); } /** - * Open server in Revolt Admin Panel + * Open server in Upryzing Admin Panel */ function openAdminPanel() { window.open( - `https://admin.revolt.chat/panel/inspect/server/${props.server.id}`, - "_blank" + `https://legacy-admin.stoatinternal.com/panel/inspect/server/${props.server.id}`, + "_blank", ); } @@ -118,7 +132,7 @@ export function ServerContextMenu(props: { server: Server }) { */ const permissionInviteOthers = () => props.server.channels.find((channel) => - channel.havePermission("InviteOthers") + channel.havePermission("InviteOthers"), ); /** @@ -148,24 +162,130 @@ export function ServerContextMenu(props: { server: Server }) { - {t("app.context_menu.mark_as_read")} + Mark as read + + state.notifications.setServerMute(props.server, undefined) + } + symbol={MdDoNotDisturbOff} + _titleCase={false} + > + + Unmute Server + + + + Muted until{" "} + + + + + + } + > + state.notifications.setServerMute(props.server, {})} + buttonContent={Mute Server} + symbol={MdDoNotDisturbOn} + > + For 15 minutes], + [60, For 1 hour], + [180, For 3 hours], + [480, For 8 hours], + [1440, For 24 hours], + [undefined, Until I turn it back on], + ] as const + } + > + {([timeMin, i18n]) => ( + + state.notifications.setServerMute(props.server, { + until: timeMin + ? +dayjs().add(timeMin, "minutes") + : undefined, + }) + } + _titleCase={false} + > + {i18n} + + )} + + + + + Notifications} + > + state.notifications.setServer(props.server, "all")} + actionSymbol={ + state.notifications.computeForServer(props.server) === "all" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + All Messages + + state.notifications.setServer(props.server, "mention")} + actionSymbol={ + state.notifications.computeForServer(props.server) === "mention" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + Mentions Only + + state.notifications.setServer(props.server, "none")} + actionSymbol={ + state.notifications.computeForServer(props.server) === "none" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + None + + + + - {t("app.context_menu.create_invite")} + Create invite - {t("app.context_menu.edit_your_identity")} + Edit your identity - {t("app.context_menu.open_server_settings")} + Open server settings - {t("app.context_menu.report_server")} + Report server - {t("app.context_menu.leave_server")} + Leave server + + + + + + + + + + Admin Panel + + + + + Copy server ID - - - Admin Panel - - - {t("app.context_menu.copy_sid")} - ); } diff --git a/packages/client/components/app/menus/ServerSidebarContextMenu.tsx b/packages/client/components/app/menus/ServerSidebarContextMenu.tsx index f3ada6cd..6c89332c 100644 --- a/packages/client/components/app/menus/ServerSidebarContextMenu.tsx +++ b/packages/client/components/app/menus/ServerSidebarContextMenu.tsx @@ -1,9 +1,9 @@ import { Show } from "solid-js"; -import { Server } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { Server } from "upryzing.js"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; +import { useModals } from "@revolt/modal"; import MdLibraryAdd from "@material-design-icons/svg/outlined/library_add.svg?component-solid"; @@ -13,23 +13,36 @@ import { ContextMenu, ContextMenuButton } from "./ContextMenu"; * Context menu for server sidebar */ export function ServerSidebarContextMenu(props: { server: Server }) { - const t = useTranslation(); + const { openModal } = useModals(); /** * Create a new channel */ function createChannel() { - getController("modal").push({ + openModal({ type: "create_channel", server: props.server!, }); } + /** + * Create a new category + */ + function createCategory() { + openModal({ + type: "create_category", + server: props.server!, + }); + } + return ( - {t("app.context_menu.create_channel")} + Create channel + + + Create category diff --git a/packages/client/components/app/menus/UserContextMenu.tsx b/packages/client/components/app/menus/UserContextMenu.tsx index 136c198a..80cff407 100644 --- a/packages/client/components/app/menus/UserContextMenu.tsx +++ b/packages/client/components/app/menus/UserContextMenu.tsx @@ -1,29 +1,40 @@ -import { JSX, Show } from "solid-js"; +import { JSX, Match, Show, Switch } from "solid-js"; -import { Channel, Message, ServerMember, User } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useNavigate } from "@solidjs/router"; +import { Channel, Message, ServerMember, User } from "upryzing.js"; import { useClient } from "@revolt/client"; -import { getController } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; +import { useModals } from "@revolt/modal"; +import { useSmartParams } from "@revolt/routing"; +import { useState } from "@revolt/state"; +import { Slider, Text } from "@revolt/ui"; import MdAddCircleOutline from "@material-design-icons/svg/outlined/add_circle_outline.svg?component-solid"; import MdAdminPanelSettings from "@material-design-icons/svg/outlined/admin_panel_settings.svg?component-solid"; import MdAlternateEmail from "@material-design-icons/svg/outlined/alternate_email.svg?component-solid"; +import MdAssignmentInd from "@material-design-icons/svg/outlined/assignment_ind.svg?component-solid"; import MdBadge from "@material-design-icons/svg/outlined/badge.svg?component-solid"; import MdBlock from "@material-design-icons/svg/outlined/block.svg?component-solid"; import MdCancel from "@material-design-icons/svg/outlined/cancel.svg?component-solid"; +import MdChat from "@material-design-icons/svg/outlined/chat.svg?component-solid"; import MdClose from "@material-design-icons/svg/outlined/close.svg?component-solid"; import MdDoNotDisturbOn from "@material-design-icons/svg/outlined/do_not_disturb_on.svg?component-solid"; import MdFace from "@material-design-icons/svg/outlined/face.svg?component-solid"; +import MdMicOff from "@material-design-icons/svg/outlined/mic_off.svg?component-solid"; import MdPersonAddAlt from "@material-design-icons/svg/outlined/person_add_alt.svg?component-solid"; import MdPersonRemove from "@material-design-icons/svg/outlined/person_remove.svg?component-solid"; import MdReport from "@material-design-icons/svg/outlined/report.svg?component-solid"; +import MdChecked from "@material-symbols/svg-400/outlined/check_box.svg?component-solid"; +import MdUnchecked from "@material-symbols/svg-400/outlined/check_box_outline_blank.svg?component-solid"; + import { ContextMenu, ContextMenuButton, ContextMenuDivider, } from "./ContextMenu"; +import { NotificationContextMenu } from "./shared/NotificationContextMenu"; /** * Context menu for users @@ -33,17 +44,30 @@ export function UserContextMenu(props: { channel?: Channel; member?: ServerMember; contextMessage?: Message; + inVoice?: boolean; }) { // TODO: if we take serverId instead, we could dynamically fetch server member here // same for the floating menu I guess? + const state = useState(); const client = useClient(); - const t = useTranslation(); + const navigate = useNavigate(); + const { openModal } = useModals(); + + // server context + const params = useSmartParams(); + + /** + * Open direct message channel + */ + function openDm() { + props.user.openDM().then((channel) => navigate(channel.url)); + } /** * Delete channel */ function closeDm() { - getController("modal").push({ + openModal({ type: "delete_channel", channel: props.channel!, }); @@ -53,14 +77,15 @@ export function UserContextMenu(props: { * Mention the user */ function mention() { - getController("state").draft.insertText(props.user.toString()); + if (!state.draft._setNodeReplacement) return; + state.draft._setNodeReplacement([props.user.toString()]); } /** * Edit server identity for user */ function editIdentity() { - getController("modal").push({ + openModal({ type: "server_identity", member: props.member!, }); @@ -70,7 +95,7 @@ export function UserContextMenu(props: { * Report the user */ function reportUser() { - getController("modal").push({ + openModal({ type: "report_content", target: props.user!, client: client(), @@ -78,11 +103,21 @@ export function UserContextMenu(props: { }); } + /** + * Edit this user's roles + */ + function editRoles() { + openModal({ + type: "user_profile_roles", + member: props.member!, + }); + } + /** * Kick the member */ function kickMember() { - getController("modal").push({ + openModal({ type: "kick_member", member: props.member!, }); @@ -92,12 +127,23 @@ export function UserContextMenu(props: { * Ban the member */ function banMember() { - getController("modal").push({ + openModal({ type: "ban_member", member: props.member!, }); } + /** + * Ban the user + */ + function banUser() { + openModal({ + type: "ban_non_member", + user: props.user!, + server: client().servers.get(params().serverId!)!, + }); + } + /** * Add friend */ @@ -127,12 +173,12 @@ export function UserContextMenu(props: { } /** - * Open user in Revolt Admin Panel + * Open user in Upryzing Admin Panel */ function openAdminPanel() { window.open( - `https://admin.revolt.chat/panel/inspect/user/${props.user.id}`, - "_blank" + `https://legacy-admin.stoatinternal.com/panel/inspect/user/${props.user.id}`, + "_blank", ); } @@ -144,47 +190,111 @@ export function UserContextMenu(props: { } return ( - + + + e.stopImmediatePropagation()} + onClick={(e) => e.stopImmediatePropagation()} + > + + Volume + + + state.voice.setUserVolume( + props.user.id, + event.currentTarget.value, + ) + } + labelFormatter={(label) => (label * 100).toFixed(0) + "%"} + /> + + + state.voice.setUserMuted( + props.user.id, + !state.voice.getUserMuted(props.user.id), + ) + } + actionSymbol={ + state.voice.getUserMuted(props.user.id) ? MdChecked : MdUnchecked + } + > + Mute + + + + + - {t("app.context_menu.close_dm")} + Close chat - {t("app.context_menu.mention")} + Mention + + + Message + + + + + + + + - {t( - `app.context_menu.${ - props.user.self ? "edit_your_identity" : "edit_identity" - }` - )} + Edit identity}> + + Edit your identity + + + + + + Edit roles + + {/** TODO: #287 timeout users */} - {t("app.context_menu.kick_member")} + Kick member - {t("app.context_menu.ban_member")} + Ban member - - + + + + Ban user + - {t("app.context_menu.report_user")} + Report user {/* TODO: #286 show profile / message */} - {t("app.context_menu.add_friend")} + Add friend - {t("app.context_menu.remove_friend")} + Remove friend - {t("app.context_menu.accept_friend")} + Accept friend request - {t("app.context_menu.reject_friend")} + Reject friend request - {t("app.context_menu.cancel_friend")} + Cancel friend request - {t("app.context_menu.block_user")} + Block user - {t("app.context_menu.unblock_user")} + Unblock user + + + - - Admin Panel - - - {t("app.context_menu.copy_uid")} - + + + Admin Panel + + + + + Copy user ID + + ); } @@ -282,7 +418,7 @@ export function UserContextMenu(props: { export function floatingUserMenus( user: User, member?: ServerMember, - contextMessage?: Message + contextMessage?: Message, ): JSX.Directives["floating"] & object { return { userCard: { @@ -299,6 +435,7 @@ export function floatingUserMenus( user={user} member={member} contextMessage={contextMessage} + channel={contextMessage?.channel} /> ); }, @@ -306,5 +443,7 @@ export function floatingUserMenus( } export function floatingUserMenusFromMessage(message: Message) { - return floatingUserMenus(message.author!, message.member, message); + return message.author + ? floatingUserMenus(message.author!, message.member, message) + : {}; // TODO: webhook menu } diff --git a/packages/client/components/app/menus/index.tsx b/packages/client/components/app/menus/index.tsx index e25bf8f5..5a08df19 100644 --- a/packages/client/components/app/menus/index.tsx +++ b/packages/client/components/app/menus/index.tsx @@ -1,5 +1,6 @@ +export { CategoryContextMenu } from "./CategoryContextMenu"; +export { ChannelContextMenu } from "./ChannelContextMenu"; export { MessageContextMenu } from "./MessageContextMenu"; -export { UserContextMenu } from "./UserContextMenu"; export { ServerContextMenu } from "./ServerContextMenu"; -export { ChannelContextMenu } from "./ChannelContextMenu"; export { ServerSidebarContextMenu } from "./ServerSidebarContextMenu"; +export { UserContextMenu } from "./UserContextMenu"; diff --git a/packages/client/components/app/menus/shared/NotificationContextMenu.tsx b/packages/client/components/app/menus/shared/NotificationContextMenu.tsx new file mode 100644 index 00000000..12659bea --- /dev/null +++ b/packages/client/components/app/menus/shared/NotificationContextMenu.tsx @@ -0,0 +1,177 @@ +import { For, Match, Show, Switch } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import dayjs from "dayjs"; +import { Channel } from "upryzing.js"; + +import { useState } from "@revolt/state"; +import { Column, Text, Time } from "@revolt/ui"; + +import MdAlternateEmail from "@material-design-icons/svg/outlined/alternate_email.svg?component-solid"; +import MdNotificationsActive from "@material-design-icons/svg/outlined/notifications_active.svg?component-solid"; +import MdNotificationsOff from "@material-design-icons/svg/outlined/notifications_off.svg?component-solid"; + +import MdDoNotDisturbOff from "@material-symbols/svg-400/outlined/do_not_disturb_off.svg?component-solid"; +import MdDoNotDisturbOn from "@material-symbols/svg-400/outlined/do_not_disturb_on.svg?component-solid"; +import MdNotificationSettings from "@material-symbols/svg-400/outlined/notification_settings.svg?component-solid"; +import MdRadioButtonChecked from "@material-symbols/svg-400/outlined/radio_button_checked-fill.svg?component-solid"; +import MdRadioButtonUnchecked from "@material-symbols/svg-400/outlined/radio_button_unchecked.svg?component-solid"; + +import { ContextMenuButton, ContextMenuSubMenu } from "../ContextMenu"; + +export function NotificationContextMenu(props: { channel: Channel }) { + const state = useState(); + + return ( + <> + + state.notifications.setChannelMute(props.channel, undefined) + } + symbol={MdDoNotDisturbOff} + _titleCase={false} + > + + Unmute Channel + + + + Muted until{" "} + + + + + + } + > + state.notifications.setChannelMute(props.channel, {})} + buttonContent={Mute Channel} + symbol={MdDoNotDisturbOn} + > + For 15 minutes], + [60, For 1 hour], + [180, For 3 hours], + [480, For 8 hours], + [1440, For 24 hours], + [undefined, Until I turn it back on], + ] as const + } + > + {([timeMin, i18n]) => ( + + state.notifications.setChannelMute(props.channel, { + until: timeMin + ? +dayjs().add(timeMin, "minutes") + : undefined, + }) + } + _titleCase={false} + > + {i18n} + + )} + + + + + Notifications} + > + + state.notifications.setChannel(props.channel, undefined) + } + actionSymbol={ + typeof state.notifications.getChannel(props.channel) === "undefined" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + + Default}> + Server Default + + + None}> + + All Messages + + + Mentions Only + + + + + + + state.notifications.setChannel(props.channel, "all")} + actionSymbol={ + state.notifications.getChannel(props.channel) === "all" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + All Messages + + + state.notifications.setChannel(props.channel, "mention") + } + actionSymbol={ + state.notifications.getChannel(props.channel) === "mention" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + Mentions Only + + state.notifications.setChannel(props.channel, "none")} + actionSymbol={ + state.notifications.getChannel(props.channel) === "none" + ? MdRadioButtonChecked + : MdRadioButtonUnchecked + } + > + None + + + + ); +} diff --git a/packages/client/components/auth/index.tsx b/packages/client/components/auth/index.tsx index 66bc7085..50b658b9 100644 --- a/packages/client/components/auth/index.tsx +++ b/packages/client/components/auth/index.tsx @@ -1,3 +1 @@ -import "../ui/styled.d.ts"; - export { AuthPage } from "./src/AuthPage"; diff --git a/packages/client/components/auth/src/AuthPage.tsx b/packages/client/components/auth/src/AuthPage.tsx index fd844755..9c08a8fd 100644 --- a/packages/client/components/auth/src/AuthPage.tsx +++ b/packages/client/components/auth/src/AuthPage.tsx @@ -1,21 +1,18 @@ -import { - BiLogos500px, - BiLogosGithub, - BiLogosHtml5, - BiLogosMastodon, - BiLogosTwitter, -} from "solid-icons/bi"; +import { BiLogosGithub } from "solid-icons/bi"; import { JSX } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; import { styled } from "styled-system/jsx"; -import { useTranslation } from "@revolt/i18n"; -import { Button, iconSize } from "@revolt/ui"; +import { Titlebar } from "@revolt/app/interface/desktop/Titlebar"; +import { useState } from "@revolt/state"; +import { IconButton, iconSize } from "@revolt/ui"; import MdDarkMode from "@material-design-icons/svg/filled/dark_mode.svg?component-solid"; import background from "./background.jpg"; import { FlowBase } from "./flows/Flow"; +import bluesky from "./flows/bluesky.svg"; /** * Authentication page layout @@ -29,8 +26,8 @@ const Base = styled("div", { userSelect: "none", overflowY: "scroll", - color: "white", - background: "var(--colours-background)", + color: "var(--md-sys-color-on-surface)", + background: "var(--md-sys-color-surface)", // background: `var(--url)`, // backgroundPosition: "center", // backgroundRepeat: "no-repeat", @@ -57,12 +54,7 @@ const Nav = styled("div", { flexDirection: "row", justifyContent: "space-between", - color: "white", textDecoration: "none", - - md: { - color: "var(--colours-foreground)", - }, }, }); @@ -120,83 +112,77 @@ const Bullet = styled("div", { }, }); -/** - * Revolt Wordmark - */ -const Logo = styled("img", { - base: { - height: "24px", - }, -}); - -let a = true; - /** * Authentication page */ export function AuthPage(props: { children: JSX.Element }) { - const t = useTranslation(); + const state = useState(); return ( - - - {/**/} - {props.children} - + +
); } diff --git a/packages/client/components/auth/src/LocaleSelector.tsx b/packages/client/components/auth/src/LocaleSelector.tsx deleted file mode 100644 index 019ba732..00000000 --- a/packages/client/components/auth/src/LocaleSelector.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { For } from "solid-js"; - -import { Language, Languages } from "@revolt/i18n/locales/Languages"; -import { state } from "@revolt/state"; -import { ComboBox } from "@revolt/ui"; - -/** - * Dropdown box for selecting the current language - */ -export function LocaleSelector() { - return ( - state.locale.switch(e.currentTarget.value as Language)} - > - - {(lang) => { - const l = Languages[lang as Language]; - return ( - - ); - }} - - - ); -} diff --git a/packages/client/components/auth/src/flows/Flow.tsx b/packages/client/components/auth/src/flows/Flow.tsx index e4c6cde5..705237c6 100644 --- a/packages/client/components/auth/src/flows/Flow.tsx +++ b/packages/client/components/auth/src/flows/Flow.tsx @@ -3,7 +3,7 @@ import { JSX, Show } from "solid-js"; import { defineKeyframes } from "@pandacss/dev"; import { styled } from "styled-system/jsx"; -import { Column, Row, Text, Typography } from "@revolt/ui"; +import { Column, Row, Text } from "@revolt/ui"; import envelope from "./envelope.svg"; import wave from "./wave.svg"; @@ -17,8 +17,8 @@ export const FlowBase = styled("div", { flexDirection: "column", gap: "var(--gap-lg)", flexGrow: 0, - background: "var(--colours-messaging-message-box-background)", - color: "var(--colours-messaging-message-box-foreground)", + background: "var(--md-sys-color-surface-container)", + color: "var(--md-sys-color-on-surface)", width: "360px", maxWidth: "360px", maxHeight: "600px", diff --git a/packages/client/components/auth/src/flows/FlowCheck.tsx b/packages/client/components/auth/src/flows/FlowCheck.tsx index e04d33af..ec819255 100644 --- a/packages/client/components/auth/src/flows/FlowCheck.tsx +++ b/packages/client/components/auth/src/flows/FlowCheck.tsx @@ -1,8 +1,9 @@ import { Show } from "solid-js"; -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; + import { useNavigate } from "@revolt/routing"; -import { Button, Column, Row, iconSize } from "@revolt/ui"; +import { Button, Row, iconSize } from "@revolt/ui"; import MdArrowBack from "@material-design-icons/svg/filled/arrow_back.svg?component-solid"; @@ -25,18 +26,25 @@ export function setFlowCheckEmail(e: string) { * Flow to tell the user to check their email */ export default function FlowCheck() { - const t = useTranslation(); const navigate = useNavigate(); return ( <> - - {t("login.check_mail")} + + We've sent you a verification email. Please allow up to 10 minutes + for it to arrive. + + } + emoji="mail" + > + Check your mail! - diff --git a/packages/client/components/auth/src/flows/FlowConfirmReset.tsx b/packages/client/components/auth/src/flows/FlowConfirmReset.tsx index 93157ec6..0239298a 100644 --- a/packages/client/components/auth/src/flows/FlowConfirmReset.tsx +++ b/packages/client/components/auth/src/flows/FlowConfirmReset.tsx @@ -1,7 +1,8 @@ -import { clientController } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; + +import { useApi } from "@revolt/client"; import { useNavigate, useParams } from "@revolt/routing"; -import { Button, Text } from "@revolt/ui"; +import { Button } from "@revolt/ui"; import { FlowTitle } from "./Flow"; import { Fields, Form } from "./Form"; @@ -10,7 +11,7 @@ import { Fields, Form } from "./Form"; * Flow for confirming a new password */ export default function FlowConfirmReset() { - const t = useTranslation(); + const api = useApi(); const { token } = useParams(); const navigate = useNavigate(); @@ -22,7 +23,7 @@ export default function FlowConfirmReset() { const password = data.get("new-password") as string; const remove_sessions = !!(data.get("log-out") as "on" | undefined); - await clientController.api.patch("/auth/account/reset_password", { + await api.patch("/auth/account/reset_password", { password, token, remove_sessions, @@ -33,12 +34,20 @@ export default function FlowConfirmReset() { return ( <> - {t("login.reset")} + + Reset password +
- + - {t("login.remembered")} + + + ); } diff --git a/packages/client/components/auth/src/flows/FlowCreate.tsx b/packages/client/components/auth/src/flows/FlowCreate.tsx index c3191599..7e9fc4a6 100644 --- a/packages/client/components/auth/src/flows/FlowCreate.tsx +++ b/packages/client/components/auth/src/flows/FlowCreate.tsx @@ -1,11 +1,12 @@ +import { Trans } from "@lingui-solid/solid/macro"; + import { CONFIGURATION } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; import { useNavigate } from "@revolt/routing"; import { Button, Row, iconSize } from "@revolt/ui"; import MdArrowBack from "@material-design-icons/svg/filled/arrow_back.svg?component-solid"; -import { clientController } from "../../../client"; +import { useApi } from "../../../client"; import { FlowTitle } from "./Flow"; import { setFlowCheckEmail } from "./FlowCheck"; @@ -15,7 +16,7 @@ import { Fields, Form } from "./Form"; * Flow for creating a new account */ export default function FlowCreate() { - const t = useTranslation(); + const api = useApi(); const navigate = useNavigate(); /** @@ -26,13 +27,11 @@ export default function FlowCreate() { const email = data.get("email") as string; const password = data.get("password") as string; const captcha = data.get("captcha") as string; - const invite = data.get("invite") as string; - await clientController.api.post("/auth/account/create", { + await api.post("/auth/account/create", { email, password, captcha, - invite, }); // FIXME: should tell client if email was sent @@ -46,18 +45,20 @@ export default function FlowCreate() { return ( <> - - {t("login.welcome2")} + Create an account} emoji="wave"> + Hello!
- - + + - - + {import.meta.env.DEV && ( @@ -71,7 +72,7 @@ export default function FlowCreate() { cursor: "pointer", }} onClick={() => { - setFlowCheckEmail("insert@revolt.chat"); + setFlowCheckEmail("insert@stoat.chat"); navigate("/login/check", { replace: true }); }} > diff --git a/packages/client/components/auth/src/flows/FlowDelete.tsx b/packages/client/components/auth/src/flows/FlowDelete.tsx new file mode 100644 index 00000000..8c577cec --- /dev/null +++ b/packages/client/components/auth/src/flows/FlowDelete.tsx @@ -0,0 +1,40 @@ +import { Match, Switch, createSignal, onMount } from "solid-js"; + +import { useApi } from "@revolt/client"; +import { useParams } from "@revolt/routing"; + +import { FlowTitle } from "./Flow"; + +/** + * Temporary flow for account deletion + */ +export default function FlowDeleteAccount() { + const api = useApi(); + const params = useParams(); + const [deleted, setDeleted] = createSignal(false); + + onMount(() => { + api + .put("/auth/account/delete", { + token: params.token, + }) + .then(() => setDeleted(true)) + .catch(() => setDeleted("error")); + }); + + return ( + <> + Delete Account + + + + Error occurred, please email support. + + + Account has been queued for deletion! + + + + + ); +} diff --git a/packages/client/components/auth/src/flows/FlowHome.tsx b/packages/client/components/auth/src/flows/FlowHome.tsx index f401e01b..c153cd3f 100644 --- a/packages/client/components/auth/src/flows/FlowHome.tsx +++ b/packages/client/components/auth/src/flows/FlowHome.tsx @@ -1,127 +1,106 @@ import { Match, Show, Switch } from "solid-js"; -import { cva } from "styled-system/css"; +import { Trans } from "@lingui-solid/solid/macro"; +import { css } from "styled-system/css"; -import { clientController } from "@revolt/client"; +import { useClientLifecycle } from "@revolt/client"; import { TransitionType } from "@revolt/client/Controller"; -import { useTranslation } from "@revolt/i18n"; import { Navigate } from "@revolt/routing"; import { Button, Column } from "@revolt/ui"; -import Logo from "../../../../public/assets/wordmark_wide_500px.svg?component-solid"; - -const logo = cva({ - base: { - width: "100%", - objectFit: "contain", - fill: "var(--colours-messaging-message-box-foreground)", - }, -}); +import { useState } from "@revolt/state"; +import Wordmark from "../../../../public/assets/web/wordmark.svg?component-solid"; /** * Flow for logging into an account */ export default function FlowHome() { - const t = useTranslation(); + const state = useState(); + const { lifecycle, isLoggedIn, isError } = useClientLifecycle(); return ( - - + + - - - - - - + + - - - Your conversations, your way. - - - Connect with Upryzing. - {/* [TODO] Add translations for multiple languages */} - - + + + + + Find your com + + munity, +
+ connect with the world. +
+
+
+ + + Upryzing is one of the best ways to stay connected with your + friends and community, anywhere, anytime. + + +
- - - - - - - - - - - - + + + + - - } - > - - - -

You were logged out!

-
-
- - -
-
+ + + + + + + + } > - + - -

You were logged out!

+ +

+ You were logged out! +

diff --git a/packages/client/components/auth/src/flows/FlowLogin.tsx b/packages/client/components/auth/src/flows/FlowLogin.tsx index 514e864c..45e2b250 100644 --- a/packages/client/components/auth/src/flows/FlowLogin.tsx +++ b/packages/client/components/auth/src/flows/FlowLogin.tsx @@ -1,54 +1,45 @@ -import { Match, Show, Switch } from "solid-js"; +import { Match, Switch } from "solid-js"; -import { styled } from "styled-system/jsx"; +import { Trans } from "@lingui-solid/solid/macro"; +import { css } from "styled-system/css"; +import { useClientLifecycle } from "@revolt/client"; import { State, TransitionType } from "@revolt/client/Controller"; -import { useTranslation } from "@revolt/i18n"; +import { useModals } from "@revolt/modal"; import { Navigate } from "@revolt/routing"; -import { - Button, - Column, - Preloader, - Row, - Typography, - iconSize, - typography, -} from "@revolt/ui"; +import { Button, CircularProgress, Column, Row, iconSize } from "@revolt/ui"; import MdArrowBack from "@material-design-icons/svg/filled/arrow_back.svg?component-solid"; -import RevoltSvg from "../../../../public/assets/wordmark_wide_500px.svg?component-solid"; -import { clientController } from "../../../client"; +import Wordmark from "../../../../public/assets/web/wordmark.svg?component-solid"; +import { useState } from "@revolt/state"; import { FlowTitle } from "./Flow"; import { Fields, Form } from "./Form"; -const Logo = styled(RevoltSvg, { - base: { - height: "0.8em", - display: "inline", - fill: "var(--colours-messaging-message-box-foreground)", - }, -}); - /** * Flow for logging into an account */ export default function FlowLogin() { - const t = useTranslation(); + const state = useState(); + const modals = useModals(); + const { lifecycle, isLoggedIn, login, selectUsername } = useClientLifecycle(); /** * Log into account * @param data Form Data */ - async function login(data: FormData) { + async function performLogin(data: FormData) { const email = data.get("email") as string; const password = data.get("password") as string; - await clientController.login({ - email, - password, - }); + await login( + { + email, + password, + }, + modals, + ); } /** @@ -57,7 +48,7 @@ export default function FlowLogin() { */ async function select(data: FormData) { const username = data.get("username") as string; - await clientController.selectUsername(username); + await selectUsername(username); } return ( @@ -65,37 +56,61 @@ export default function FlowLogin() { - - {t("login.welcome")} + Sign into Upryzing} emoji="wave"> + Welcome! -
+ - {t("login.reset")} - {t("login.resend")} + + + + + + - - + } > - - + + - - + + - - + + + Pick a username that you want people to be able to find you by. + This can be changed later in your user settings. + + } + > - {t("app.special.modals.onboarding.welcome")} + Welcome to{" "} + @@ -103,17 +118,17 @@ export default function FlowLogin() { diff --git a/packages/client/components/auth/src/flows/FlowResend.tsx b/packages/client/components/auth/src/flows/FlowResend.tsx index cb265275..6c826cdb 100644 --- a/packages/client/components/auth/src/flows/FlowResend.tsx +++ b/packages/client/components/auth/src/flows/FlowResend.tsx @@ -1,8 +1,9 @@ -import { clientController } from "@revolt/client"; +import { Trans } from "@lingui-solid/solid/macro"; + +import { useApi } from "@revolt/client"; import { CONFIGURATION } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; import { useNavigate } from "@revolt/routing"; -import { Button, Text } from "@revolt/ui"; +import { Button } from "@revolt/ui"; import { FlowTitle } from "./Flow"; import { setFlowCheckEmail } from "./FlowCheck"; @@ -12,7 +13,7 @@ import { Fields, Form } from "./Form"; * Flow for resending email verification */ export default function FlowResend() { - const t = useTranslation(); + const api = useApi(); const navigate = useNavigate(); /** @@ -23,7 +24,7 @@ export default function FlowResend() { const email = data.get("email") as string; const captcha = data.get("captcha") as string; - await clientController.api.post("/auth/account/reverify", { + await api.post("/auth/account/reverify", { email, captcha, }); @@ -34,12 +35,20 @@ export default function FlowResend() { return ( <> - {t("login.resend")} + + Resend verification +
- + - {t("login.remembered")} + + + ); } diff --git a/packages/client/components/auth/src/flows/FlowReset.tsx b/packages/client/components/auth/src/flows/FlowReset.tsx index b083aa9a..f695e8ba 100644 --- a/packages/client/components/auth/src/flows/FlowReset.tsx +++ b/packages/client/components/auth/src/flows/FlowReset.tsx @@ -1,8 +1,9 @@ -import { clientController } from "@revolt/client"; +import { Trans } from "@lingui-solid/solid/macro"; + +import { useApi } from "@revolt/client"; import { CONFIGURATION } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; import { useNavigate } from "@revolt/routing"; -import { Button, Text } from "@revolt/ui"; +import { Button } from "@revolt/ui"; import { FlowTitle } from "./Flow"; import { setFlowCheckEmail } from "./FlowCheck"; @@ -12,7 +13,7 @@ import { Fields, Form } from "./Form"; * Flow for sending password reset */ export default function FlowReset() { - const t = useTranslation(); + const api = useApi(); const navigate = useNavigate(); /** @@ -23,7 +24,7 @@ export default function FlowReset() { const email = data.get("email") as string; const captcha = data.get("captcha") as string; - await clientController.api.post("/auth/account/reset_password", { + await api.post("/auth/account/reset_password", { email, captcha, }); @@ -34,12 +35,20 @@ export default function FlowReset() { return ( <> - {t("login.reset")} + + Reset password +
- + - {t("login.remembered")} + + + {import.meta.env.DEV && (
({ state: "verifying", @@ -46,25 +50,28 @@ export default function FlowVerify() { } } - const data = (await clientController.api.post( - `/auth/account/verify/${params.token}` - )) as { ticket?: { token: string } }; + const data = (await api.post(`/auth/account/verify/${params.token}`)) as { + ticket?: { token: string }; + }; setState({ state: "success", mfa_ticket: data.ticket?.token }); } catch (err) { - setState({ state: "error", error: mapAnyError(err) }); + setState({ state: "error", error: err }); } }); /** - * Use MFA ticket to log into Revolt + * Use MFA ticket to login */ - async function login() { + async function performLogin() { const v = state(); if (v.state === "success" && v.mfa_ticket) { - await clientController.login({ - mfa_ticket: v.mfa_ticket, - }); + await login( + { + mfa_ticket: v.mfa_ticket, + }, + modals, + ); navigate("/login/auth", { replace: true }); } @@ -73,26 +80,42 @@ export default function FlowVerify() { return ( - {t("login.verifying_account")} - + + Verifying your account… + + - {t("login.error.verify")} - + + Failed to verify! + + {/* {t( `error.${(state() as State & { state: "error" }).error}` as any, undefined, (state() as State & { state: "error" }).error )} - - {t("login.remembered")} + TODO */} + + + - {t("login.verified_account")} + + Your account has been verified! + - + - {t("login.remembered")} + + + ); diff --git a/packages/client/components/auth/src/flows/Form.tsx b/packages/client/components/auth/src/flows/Form.tsx index 55f00bf5..24a663dd 100644 --- a/packages/client/components/auth/src/flows/Form.tsx +++ b/packages/client/components/auth/src/flows/Form.tsx @@ -1,68 +1,50 @@ import HCaptcha, { HCaptchaFunctions } from "solid-hcaptcha"; -import { For, JSX, Match, Show, Switch, createSignal } from "solid-js"; - -import { clientController, mapAnyError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; -import { - Checkbox, - Column, - FormGroup, - Text, - TextField, - Typography, -} from "@revolt/ui"; +import { For, JSX, Show, createSignal } from "solid-js"; + +import { useLingui } from "@lingui-solid/solid/macro"; + +import { useError } from "@revolt/i18n"; +import { Checkbox2, Column, Text, TextField } from "@revolt/ui"; /** * Available field types */ -type Field = - | "email" - | "password" - | "new-password" - | "log-out" - | "username" - | "invite"; +type Field = "email" | "password" | "new-password" | "log-out" | "username"; /** * Properties to apply to fields */ const useFieldConfiguration = () => { - const t = useTranslation(); + const { t } = useLingui(); return { email: { - type: "email", - name: () => t("login.email"), - placeholder: () => t("login.enter.email"), + type: "email" as const, + name: () => t`Email`, + placeholder: () => t`Please enter your email.`, }, password: { minLength: 8, - type: "password", - name: () => t("login.password"), - placeholder: () => t("login.enter.password"), + type: "password" as const, + name: () => t`Password`, + placeholder: () => t`Enter your current password.`, }, "new-password": { minLength: 8, - type: "password", + type: "password" as const, autocomplete: "new-password", - name: () => t("login.new_password"), - placeholder: () => t("login.enter.new_password"), + name: () => t`New Password`, + placeholder: () => t`Enter a new password.`, }, "log-out": { - name: () => t("login.log_out_other"), + name: () => t`Log out of all other sessions`, }, username: { minLength: 2, - type: "text", + type: "text" as const, autocomplete: "none", - name: () => t("login.username"), - placeholder: () => t("login.enter.username"), - }, - invite: { - minLength: 8, - type: "text", - name: () => t("login.invite"), - placeholder: () => t("login.enter.invite"), + name: () => t`Username`, + placeholder: () => t`Enter your preferred username.`, }, }; }; @@ -79,54 +61,25 @@ interface FieldProps { */ export function Fields(props: FieldProps) { const fieldConfiguration = useFieldConfiguration(); - const [failedValidation, setFailedValidation] = createSignal(false); - - const inviteCodeNeeded: boolean | undefined = - clientController.lifecycle.client.configuration?.features.invite_only; - - /** - * If an input element notifies us it was invalid, enable live input validation. - */ - function onInvalid() { - setFailedValidation(true); - } return ( {(field) => ( - - - - - {fieldConfiguration[field].name()} - - - - } - > - - - - - - + )} ); @@ -153,8 +106,8 @@ interface Props { * Small wrapper for HTML form */ export function Form(props: Props) { - const t = useTranslation(); - const [error, setError] = createSignal(""); + const [error, setError] = createSignal(); + const err = useError(); let hcaptcha: HCaptchaFunctions | undefined; /** @@ -175,7 +128,7 @@ export function Form(props: Props) { try { await props.onSubmit(formData); } catch (err) { - setError(mapAnyError(err)); + setError(err); } } @@ -185,7 +138,7 @@ export function Form(props: Props) { {props.children} - {t(`error.${error()}` as any, undefined, error())} + {err(error())} diff --git a/packages/client/components/auth/src/flows/MailProvider.tsx b/packages/client/components/auth/src/flows/MailProvider.tsx index 8831ffa1..5248774d 100644 --- a/packages/client/components/auth/src/flows/MailProvider.tsx +++ b/packages/client/components/auth/src/flows/MailProvider.tsx @@ -1,6 +1,7 @@ import { Show } from "solid-js"; -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; + import { Button } from "@revolt/ui"; interface Props { @@ -103,8 +104,8 @@ function mapMailProvider(email?: string): [string, string] | undefined { return ["Rambler", "https://rambler.ru/"]; case "revolt.chat": case "revolt.wtf": - case "insert.moe": - return ["Revolt Mail", "https://webmail.revolt.wtf"]; + case "stoat.chat": + return ["Upryzing Mail", "https://webmail.revolt.wtf"]; default: return [domain, `https://${domain}`]; } @@ -114,8 +115,6 @@ function mapMailProvider(email?: string): [string, string] | undefined { * Provide button to navigate to email provider */ export function MailProvider(props: Props) { - const t = useTranslation(); - /** * Convert email to provider * @returns Provider @@ -126,7 +125,7 @@ export function MailProvider(props: Props) { diff --git a/packages/client/components/auth/src/flows/bluesky.svg b/packages/client/components/auth/src/flows/bluesky.svg new file mode 100644 index 00000000..c71e2018 --- /dev/null +++ b/packages/client/components/auth/src/flows/bluesky.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/client/components/client/Controller.ts b/packages/client/components/client/Controller.ts index f5bdd61b..80490113 100644 --- a/packages/client/components/client/Controller.ts +++ b/packages/client/components/client/Controller.ts @@ -1,14 +1,12 @@ import { Accessor, Setter, createSignal } from "solid-js"; -import { API, Client, ConnectionState } from "@upryzing/upryzing.js"; import { detect } from "detect-browser"; +import { API, Client, ConnectionState } from "upryzing.js"; +import { ProtocolV1 } from "upryzing.js/lib/events/v1"; -import { - CONFIGURATION, - getController, - registerController, -} from "@revolt/common"; -import { state } from "@revolt/state"; +import { CONFIGURATION } from "@revolt/common"; +import { ModalControllerExtended } from "@revolt/modal"; +import type { State as ApplicationState } from "@revolt/state"; import type { Session } from "@revolt/state/stores/Auth"; export enum State { @@ -36,6 +34,7 @@ export enum TransitionType { NoUser = "no user", Cancel = "cancel", Dispose = "dispose", + DisposeOnly = "dispose only", Dismiss = "dismiss", Ready = "ready", Retry = "retry", @@ -64,15 +63,26 @@ export type Transition = | TransitionType.Ready | TransitionType.Retry | TransitionType.Dispose + | TransitionType.DisposeOnly | TransitionType.Logout; }; +type PolicyAttentionRequired = [ + ProtocolV1["types"]["policyChange"][], + () => Promise, +]; + class Lifecycle { - readonly state: Accessor; - #setStateSetter: Setter; + #controller: ClientController; + + readonly state: Accessor; + #setStateSetter: Setter; + + readonly loadedOnce: Accessor; + #setLoadedOnce: Setter; - readonly loadedOnce: Accessor; - #setLoadedOnce: Setter; + readonly policyAttentionRequired: Accessor; + #policyAttentionRequired: Setter; client: Client; @@ -80,9 +90,12 @@ class Lifecycle { #permanentError: string | undefined; #retryTimeout: number | undefined; - constructor() { + constructor(controller: ClientController) { + this.#controller = controller; + this.onState = this.onState.bind(this); this.onReady = this.onReady.bind(this); + this.onPolicyChanges = this.onPolicyChanges.bind(this); const [state, setState] = createSignal(State.Ready); this.state = state; @@ -92,6 +105,13 @@ class Lifecycle { this.loadedOnce = loadedOnce; this.#setLoadedOnce = setLoadedOnce; + const [policyAttentionRequired, setPolicyAttentionRequired] = createSignal< + undefined | PolicyAttentionRequired + >(undefined); + + this.policyAttentionRequired = policyAttentionRequired; + this.#policyAttentionRequired = setPolicyAttentionRequired; + this.client = null!; this.dispose(); } @@ -108,67 +128,47 @@ class Lifecycle { autoReconnect: false, syncUnreads: true, debug: import.meta.env.DEV, + channelIsMuted: (channel) => + this.#controller.state.notifications.isMuted(channel), + channelExclusiveMuted: (channel) => + this.#controller.state.notifications.isChannelMuted(channel), }); - let useBaseConfig = !CONFIGURATION.REQUEST_CONFIG; - - if (!useBaseConfig) { - fetch(CONFIGURATION.DEFAULT_API_URL) - .then((response) => { - if (!response.ok) throw new Error(response.statusText); - - return response.json(); - }) - .then((conf) => { - if (!conf.features.dove) { - conf.features.dove = conf.features.january; - delete conf.features.january; - } - - if (!conf.features.pigeon) { - conf.features.pigeon = conf.features.autumn; - delete conf.features.autumn; - } - - this.client.configuration = conf; - }) - .catch((error) => { - console.error(error); - - useBaseConfig = true; - }); - } - - if (useBaseConfig) { - this.client.configuration = { - revolt: String(), - app: String(), - build: {} as never, - features: { - dove: { - enabled: true, - url: CONFIGURATION.DEFAULT_PROXY_URL, - }, - pigeon: { - enabled: true, - url: CONFIGURATION.DEFAULT_MEDIA_URL, - }, - captcha: {} as never, - email: true, - invite_only: CONFIGURATION.INVITE_ONLY, - voso: {} as never, + this.client.configuration = { + revolt: String(), + app: String(), + build: {} as never, + features: { + pigeon: { + enabled: true, + url: CONFIGURATION.DEFAULT_MEDIA_URL, }, - vapid: String(), - ws: CONFIGURATION.DEFAULT_WS_URL, - }; - } + dove: { + enabled: true, + url: CONFIGURATION.DEFAULT_PROXY_URL, + }, + captcha: {} as never, + email: true, + invite_only: false, + livekit: { + enabled: false, + nodes: [], + }, + }, + vapid: String(), + ws: CONFIGURATION.DEFAULT_WS_URL, + }; this.client.events.on("state", this.onState); this.client.on("ready", this.onReady); + this.client.on("policyChanges", this.onPolicyChanges); } #enter(nextState: State) { - console.debug("Entering state", nextState); + if (import.meta.env.DEV) { + console.info("[lifecycle] entering state", nextState); + } + this.#setStateSetter(nextState); // Clean up retry timer @@ -195,7 +195,7 @@ class Lifecycle { this.client.connect(); break; case State.Connected: - state.auth.markValid(); + this.#controller.state.auth.markValid(); this.#setLoadedOnce(true); this.#connectionFailures = 0; break; @@ -221,7 +221,7 @@ class Lifecycle { console.info( "Will try to reconnect in", retryIn.toFixed(2), - "seconds!" + "seconds!", ); this.#retryTimeout = setTimeout(() => { @@ -238,6 +238,11 @@ class Lifecycle { transition(transition: Transition) { console.debug("Received transition", transition.type); + if (transition.type === TransitionType.DisposeOnly) { + this.dispose(); + return; + } + const currentState = this.state(); switch (currentState) { case State.Ready: @@ -351,6 +356,9 @@ class Lifecycle { case TransitionType.DeviceOnline: this.#enter(State.Reconnecting); break; + case TransitionType.Retry: + this.#enter(State.Reconnecting); + break; case TransitionType.Logout: this.#enter(State.Dispose); break; @@ -363,7 +371,7 @@ class Lifecycle { "An unhandled transition occurred!", transition, "was received on", - currentState + currentState, ); } } @@ -374,6 +382,16 @@ class Lifecycle { }); } + private onPolicyChanges( + changes: ProtocolV1["types"]["policyChange"][], + ack: () => Promise, + ) { + this.#policyAttentionRequired([ + changes, + () => ack().then(() => this.#policyAttentionRequired(undefined)), + ]); + } + private onState(state: ConnectionState) { switch (state) { case ConnectionState.Disconnected: @@ -420,17 +438,35 @@ export default class ClientController { */ readonly lifecycle: Lifecycle; + /** + * Reference to application state + */ + readonly state: ApplicationState; + /** * Construct new client controller */ - constructor() { + constructor(state: ApplicationState) { + this.state = state; this.api = new API.API({ baseURL: CONFIGURATION.DEFAULT_API_URL, }); - this.lifecycle = new Lifecycle(); + this.lifecycle = new Lifecycle(this); + + this.login = this.login.bind(this); + this.logout = this.logout.bind(this); + this.selectUsername = this.selectUsername.bind(this); + this.isLoggedIn = this.isLoggedIn.bind(this); + this.isError = this.isError.bind(this); - registerController("client", this); + const session = state.auth.getSession(); + if (session) { + this.lifecycle.transition({ + type: TransitionType.LoginCached, + session, + }); + } } getCurrentClient() { @@ -455,7 +491,7 @@ export default class ClientController { * Login given a set of credentials * @param credentials Credentials */ - async login(credentials: API.DataLogin) { + async login(credentials: API.DataLogin, modals: ModalControllerExtended) { const browser = detect(); // Generate a friendly name for this browser @@ -472,9 +508,9 @@ export default class ClientController { os = "iPadOS"; } - friendly_name = `Upryzing for Web (${name} on ${os})`; + friendly_name = `Lavender (${name} on ${os})`; } else { - friendly_name = "Upryzing for Web (Unknown Device)"; + friendly_name = "Lavender (Unknown Device)"; } // Try to login with given credentials @@ -489,12 +525,12 @@ export default class ClientController { while (session.result === "MFA") { const mfa_response: API.MFAResponse | undefined = await new Promise( (callback) => - getController("modal").push({ + modals.openModal({ type: "mfa_flow", state: "unknown", available_methods: allowed_methods, callback, - }) + }), ); if (typeof mfa_response === "undefined") { @@ -530,7 +566,7 @@ export default class ClientController { valid: false, }; - state.auth.setSession(createdSession); + this.state.auth.setSession(createdSession); this.lifecycle.transition({ type: TransitionType.LoginUncached, session: createdSession, @@ -548,9 +584,15 @@ export default class ClientController { } logout() { - state.auth.removeSession(); + this.state.auth.removeSession(); this.lifecycle.transition({ type: TransitionType.Logout, }); } + + dispose() { + this.lifecycle.transition({ + type: TransitionType.DisposeOnly, + }); + } } diff --git a/packages/client/components/client/NotificationsWorker.tsx b/packages/client/components/client/NotificationsWorker.tsx new file mode 100644 index 00000000..e333ac72 --- /dev/null +++ b/packages/client/components/client/NotificationsWorker.tsx @@ -0,0 +1,214 @@ +import { createEffect, onCleanup, onMount } from "solid-js"; + +import { useLingui } from "@lingui-solid/solid/macro"; +import { + ChannelEditSystemMessage, + ChannelOwnershipChangeSystemMessage, + ChannelRenamedSystemMessage, + Message, + MessagePinnedSystemMessage, + TextSystemMessage, + UserModeratedSystemMessage, + UserSystemMessage, +} from "upryzing.js"; + +import { useNavigate, useSmartParams } from "@revolt/routing"; +import { useState } from "@revolt/state"; + +import { useClient } from "."; + +/** + * Process and display desktop notifications + */ +export function NotificationsWorker() { + const state = useState(); + const { t } = useLingui(); + const client = useClient(); + const navigate = useNavigate(); + const params = useSmartParams(); + + /** + * Handle incoming messages + * @param message Message + */ + function onMessage(message: Message) { + const us = client().user!; + + // Ignore if we are currently looking at the channel + if (params().channelId === message.channelId && document.hasFocus()) return; + + // Ignore our own messages + if (message.author?.self) return; + + // Ignore blocked users + if (message.author?.relationship === "Blocked") return; + + // Ignore muted channels + if (state.notifications.isMuted(message.channel)) return; + + // Check channel notification settings + switch (state.notifications.computeForChannel(message.channel!)) { + case "none": + return; // ignore if muted/none + case "mention": + if (!message.mentioned) return; // ignore if not mentioned + } + + // Ignore if we're busy or focused + if ( + us.status?.presence === "Busy" || + (us.status?.presence === "Focus" && !message.mentioned) + ) + return; + + // Generate the title + let title; + switch (message.channel!.type) { + case "SavedMessages": + return; + case "DirectMessage": + title = `@${message.username}`; + break; + case "Group": + if (message.author?.id === "00000000000000000000000000") { + title = message.channel?.name; + } else { + title = `@${message.username} - ${message.channel?.name}`; + } + break; + case "TextChannel": + title = `@${message.username} (#${message.channel?.name}, ${message.channel?.server?.name})`; + break; + } + + // Find image if applicable + const image = message.attachments?.find( + (x) => x.metadata.type === "Image", + )?.previewUrl; + + // Find body/icon + let body, icon; + if (message.content) { + body = message.contentPlain; + icon = message.avatarURL; + } else if (message.systemMessage) { + switch (message.systemMessage.type) { + case "text": + body = (message.systemMessage as TextSystemMessage).content; + break; + case "user_added": + body = t`${(message.systemMessage as UserModeratedSystemMessage).user?.username} was added by ${(message.systemMessage as UserModeratedSystemMessage).by?.username}`; + icon = (message.systemMessage as UserModeratedSystemMessage).user + ?.avatarURL; + break; + case "user_remove": + body = t`${(message.systemMessage as UserModeratedSystemMessage).user?.username} was removed by ${(message.systemMessage as UserModeratedSystemMessage).by?.username}`; + icon = (message.systemMessage as UserModeratedSystemMessage).user + ?.avatarURL; + break; + case "user_joined": + body = t`${(message.systemMessage as UserSystemMessage).user?.username} joined`; + icon = (message.systemMessage as UserSystemMessage).user?.avatarURL; + break; + case "user_left": + body = t`${(message.systemMessage as UserSystemMessage).user?.username} left`; + icon = (message.systemMessage as UserSystemMessage).user?.avatarURL; + break; + case "user_kicked": + body = t`${(message.systemMessage as UserSystemMessage).user?.username} was kicked`; + icon = (message.systemMessage as UserSystemMessage).user?.avatarURL; + break; + case "user_banned": + body = t`${(message.systemMessage as UserSystemMessage).user?.username} was banned`; + icon = (message.systemMessage as UserSystemMessage).user?.avatarURL; + break; + case "channel_renamed": + body = t`${(message.systemMessage as ChannelRenamedSystemMessage).by?.username} renamed the channel`; + icon = (message.systemMessage as ChannelRenamedSystemMessage).by + ?.avatarURL; + break; + case "channel_description_changed": + body = t`${(message.systemMessage as ChannelEditSystemMessage).by?.username} changed the channel description`; + icon = (message.systemMessage as ChannelEditSystemMessage).by + ?.avatarURL; + break; + case "channel_icon_changed": + body = t`${(message.systemMessage as ChannelEditSystemMessage).by?.username} changed the channel icon`; + icon = (message.systemMessage as ChannelEditSystemMessage).by + ?.avatarURL; + break; + case "channel_ownership_changed": + body = t`${(message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username} made ${(message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username} the new group owner`; + icon = (message.systemMessage as ChannelOwnershipChangeSystemMessage) + .from?.avatarURL; + break; + case "message_pinned": + body = t`${(message.systemMessage as MessagePinnedSystemMessage).by?.username} pinned a message`; + icon = (message.systemMessage as MessagePinnedSystemMessage).by + ?.avatarURL; + break; + case "message_unpinned": + body = t`${(message.systemMessage as MessagePinnedSystemMessage).by?.username} unpinned a message`; + icon = (message.systemMessage as MessagePinnedSystemMessage).by + ?.avatarURL; + break; + } + } else if (message.attachments?.length) { + body = t`Sent ${message.attachments!.length} attachments`; + } + + // todo: play sound + + // Don't continue if we don't have notification permissions + if (Notification.permission !== "granted") return; + + console.info(`[notification] ${title} ${icon} ${body}`); + + const notification = new Notification(title!, { + icon, + // @ts-expect-error this does exist on some platforms + image, + body, + timestamp: message.createdAt, + tag: message.channelId, + badge: "/assets/web/android-chrome-512x512.png", + silent: true, + }); + + notification.addEventListener("click", () => { + window.focus(); + navigate(message.path); + }); + } + + createEffect(() => { + client().addListener("messageCreate", onMessage); + onCleanup(() => client().removeListener("messageCreate", onMessage)); + }); + + /** + * Handle page click to request notifications + */ + function tryRequest() { + document.removeEventListener("click", tryRequest); + + if (!localStorage.getItem("denied-notifications")) { + Notification.requestPermission().then( + (permission) => + permission === "denied" && + localStorage.setItem("denied-notifications", "1"), + ); + } + } + + onMount(() => { + // don't bother mounting if denied before + if (!localStorage.getItem("denied-notifications")) { + document.addEventListener("click", tryRequest); + } + }); + + onCleanup(() => document.removeEventListener("click", tryRequest)); + + return null; +} diff --git a/packages/client/components/client/error.ts b/packages/client/components/client/error.ts deleted file mode 100644 index 580f5de7..00000000 --- a/packages/client/components/client/error.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Turn any error into a i18n key. - * @param error Error object - */ -export function mapAnyError(error: any) { - console.error("Encountered an error:", error); - - // Check if Axios error - if (error.response) { - // Check if body contains error type - const type = error.response.data?.type; - if (type) { - return type; - } - - // Otherwise infer from status - switch (error.response.status) { - case 429: - return "TooManyRequests"; - case 401: - case 403: - return "Unauthorized"; - default: - return "UnknownError"; - } - // Check if network issue - } else if (error.request) { - return "NetworkError"; - } - - return typeof error === "string" ? error : "UnknownError"; -} - -/** - * Turn any error into a thrown i18n key. - * @param error Error object - */ -export const mapAndRethrowError = (error: any) => { - throw mapAnyError(error); -}; diff --git a/packages/client/components/client/index.tsx b/packages/client/components/client/index.tsx index 88de0139..b79e64e4 100644 --- a/packages/client/components/client/index.tsx +++ b/packages/client/components/client/index.tsx @@ -1,24 +1,106 @@ -import { Accessor } from "solid-js"; +import { + type JSXElement, + Accessor, + createContext, + createEffect, + on, + onCleanup, + useContext, +} from "solid-js"; -import type { Client, User } from "@upryzing/upryzing.js"; +import type { Client, User } from "upryzing.js"; +import { useModals } from "@revolt/modal"; +import { State } from "@revolt/state"; + +import { State as LifecycleState } from "./Controller"; + +import { CHANGELOG_MODAL_CONST } from "@revolt/modal/modals/Changelog"; import ClientController from "./Controller"; export type { default as ClientController } from "./Controller"; -export { mapAnyError, mapAndRethrowError } from "./error"; +const clientContext = createContext(null! as ClientController); /** - * Global client controller + * Mount the modal controller */ -export const clientController = new ClientController(); +export function ClientContext(props: { state: State; children: JSXElement }) { + const { openModal } = useModals(); + + // eslint-disable-next-line solid/reactivity + const controller = new ClientController(props.state); + onCleanup(() => controller.dispose()); + + createEffect(() => { + const lastIndex = props.state.settings.getValue("changelog:last_index"); + if (controller.lifecycle.state() === LifecycleState.Ready) return; + + if ( + lastIndex !== CHANGELOG_MODAL_CONST.index && + new Date() < CHANGELOG_MODAL_CONST.until + ) { + openModal({ + type: "changelog", + initial: CHANGELOG_MODAL_CONST.index, + }); + + props.state.settings.setValue( + "changelog:last_index", + CHANGELOG_MODAL_CONST.index, + ); + } + }); + + createEffect( + on( + () => controller.lifecycle.policyAttentionRequired(), + (attentionRequired) => { + if (typeof attentionRequired !== "undefined") { + const [changes, acknowledge] = attentionRequired; + + openModal({ + type: "policy_change", + changes, + acknowledge, + }); + } + }, + ), + ); + + return ( + + {props.children} + + ); +} + +/** + * Get various lifecycle objects + * @returns Lifecycle information + */ +export function useClientLifecycle() { + const { login, logout, selectUsername, lifecycle, isLoggedIn, isError } = + useContext(clientContext); + + return { + login, + logout, + selectUsername, + lifecycle, + isLoggedIn, + isError, + }; +} /** * Get the currently active client if one is available - * @returns @upryzing/upryzing.js Client + * @returns Client */ export function useClient(): Accessor { - return () => clientController.getCurrentClient()!; + const controller = useContext(clientContext); + return () => controller.getCurrentClient()!; } /** @@ -26,7 +108,8 @@ export function useClient(): Accessor { * @returns User */ export function useUser(): Accessor { - return () => clientController.getCurrentClient()!.user; + const controller = useContext(clientContext); + return () => controller.getCurrentClient()!.user; } /** @@ -34,7 +117,7 @@ export function useUser(): Accessor { * @returns API Client */ export function useApi() { - return clientController.api; + return useContext(clientContext).api; } export const IS_DEV = import.meta.env.DEV; diff --git a/packages/client/components/client/resources.ts b/packages/client/components/client/resources.ts index 2e18f916..f9594efb 100644 --- a/packages/client/components/client/resources.ts +++ b/packages/client/components/client/resources.ts @@ -1,5 +1,5 @@ import { createQuery } from "@tanstack/solid-query"; -import { User } from "@upryzing/upryzing.js"; +import { User } from "upryzing.js"; import { useClient } from "."; diff --git a/packages/client/components/common/index.tsx b/packages/client/components/common/index.tsx index 3bac9731..40f00ae5 100644 --- a/packages/client/components/common/index.tsx +++ b/packages/client/components/common/index.tsx @@ -1,4 +1,3 @@ -export { insecureUniqueId } from "./lib/unique"; -export { registerController, getController } from "./lib/controllers"; -export { default as CONFIGURATION } from "./lib/env"; export { debounce } from "./lib/debounce"; +export { default as CONFIGURATION } from "./lib/env"; +export { insecureUniqueId } from "./lib/unique"; diff --git a/packages/client/components/common/lib/controllers.ts b/packages/client/components/common/lib/controllers.ts deleted file mode 100644 index 2e57dcda..00000000 --- a/packages/client/components/common/lib/controllers.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { ClientController } from "@revolt/client"; -import type { ModalControllerExtended } from "@revolt/modal"; -import type { State } from "@revolt/state"; - -/** - * Single source of truth for global state controllers - * - * This is used to avoid circular dependency issues - */ -class Controllers { - // @ts-expect-error dynamic initialisation - client: ClientController; - // @ts-expect-error dynamic initialisation - modal: ModalControllerExtended; - // @ts-expect-error dynamic initialisation - state: State; - - constructor() { - (window as unknown as { controllers: Controllers }).controllers = this; - } -} - -/** - * Singleton - */ -const controllers = new Controllers(); - -/** - * Register a controller - * @param key Controller name - * @param value Controller itself - */ -export function registerController( - key: K, - value: (typeof controllers)[K] -) { - controllers[key] = value; -} - -/** - * Get a typed controller by its name - * @param key Controller name - * @returns Controller itself - */ -export function getController( - key: K -): (typeof controllers)[K] { - return controllers[key]; -} diff --git a/packages/client/components/common/lib/debounce.ts b/packages/client/components/common/lib/debounce.ts index b57e3863..9c12a9f7 100644 --- a/packages/client/components/common/lib/debounce.ts +++ b/packages/client/components/common/lib/debounce.ts @@ -6,7 +6,7 @@ */ export function debounce( cb: (...args: A) => void, - duration: number + duration: number, ) { // Store the timer variable. let timer: number; diff --git a/packages/client/components/common/lib/env.ts b/packages/client/components/common/lib/env.ts index 26959e1b..6afa0898 100644 --- a/packages/client/components/common/lib/env.ts +++ b/packages/client/components/common/lib/env.ts @@ -48,10 +48,12 @@ export default { * hCaptcha site key to use if enabled */ HCAPTCHA_SITEKEY: import.meta.env.VITE_HCAPTCHA_SITEKEY as string, + /** * Maximum number of replies a message can have */ MAX_REPLIES: (import.meta.env.VITE_CFG_MAX_REPLIES as number) ?? 5, + /** * Maximum number of attachments a message can have */ @@ -68,12 +70,14 @@ export default { DEVELOPMENT_SESSION_ID: import.meta.env.DEV ? (import.meta.env.VITE_SESSION_ID as string) : undefined, + /** * Token to set during development. */ DEVELOPMENT_TOKEN: import.meta.env.DEV ? (import.meta.env.VITE_TOKEN as string) : undefined, + /** * User ID to set during development. */ diff --git a/packages/client/components/common/lib/unique.ts b/packages/client/components/common/lib/unique.ts index 0139f20a..e02e7797 100644 --- a/packages/client/components/common/lib/unique.ts +++ b/packages/client/components/common/lib/unique.ts @@ -9,5 +9,5 @@ let counter = 0; * @returns a unique identifier */ export function insecureUniqueId() { - return Math.random().toString().substring(2) + Date.now() + ++counter; + return Math.random().toString().substring(2) + new Date() + ++counter; } diff --git a/packages/client/components/i18n/Languages.ts b/packages/client/components/i18n/Languages.ts new file mode 100644 index 00000000..96c9127d --- /dev/null +++ b/packages/client/components/i18n/Languages.ts @@ -0,0 +1,335 @@ +export enum Language { + // English + ENGLISH = "en", + ENGLISH_STUPEFIED = "en_US", + + // Foreign Languages + ARABIC = "ar", + ASSAMESE = "as", + AZERBAIJANI = "az", + BELARUSIAN = "be", + BULGARIAN = "bg", + BENGALI = "bn", + BRETON = "br", + CATALONIAN = "ca", + CEBUANO = "ceb", + CENTRAL_KURDISH = "ckb", + CZECH = "cs", + DANISH = "da", + GERMAN = "de", + GREEK = "el", + SPANISH = "es", + SPANISH_LATIN_AMERICA = "es_419", + ESTONIAN = "et", + FINNISH = "fi", + FILIPINO = "fil", + FRENCH = "fr", + IRISH = "ga", + HINDI = "hi", + CROATIAN = "hr", + HUNGARIAN = "hu", + ARMENIAN = "hy", + INDONESIAN = "id", + ICELANDIC = "is", + ITALIAN = "it", + JAPANESE = "ja", + KOREAN = "ko", + LUXEMBOURGISH = "lb", + LITHUANIAN = "lt", + MACEDONIAN = "mk", + MALAY = "ms", + NORWEGIAN_BOKMAL = "nb_NO", + DUTCH = "nl", + PERSIAN = "fa", + POLISH = "pl", + PORTUGUESE_BRAZIL = "pt_BR", + PORTUGUESE_PORTUGAL = "pt_PT", + ROMANIAN = "ro", + RUSSIAN = "ru", + SLOVAK = "sk", + SLOVENIAN = "sl", + ALBANIAN = "sq", + SERBIAN = "sr", + SINHALESE = "si", + SWEDISH = "sv", + TAMIL = "ta", + THAI = "th", + TURKISH = "tr", + UKRANIAN = "uk", + URDU = "ur", + VENETIAN = "vec", + VIETNAMESE = "vi", + CHINESE_SIMPLIFIED = "zh_Hans", + CHINESE_TRADITIONAL = "zh_Hant", + LATVIAN = "lv", + + // Constructed Languages + TOKIPONA = "tokipona", + ESPERANTO = "esperanto", + + // Joke Languages + OWO = "owo", + PIRATE = "pr", + BOTTOM = "bottom", + LEET = "leet", + PIGLATIN = "piglatin", + ENCHANTMENT_TABLE = "enchantment", + + // Test Languages + DEV = "dev", +} + +export interface LocaleOptions { + /** + * Date format + * + * Example values: DD/MM/YYYY, MM/DD/YYYY, YYYY/MM/DD + */ + dateFormat?: string; + + /** + * Time format + * + * Example values: h:mm A, hh:mm + */ + timeFormat?: string; + + /** + * Whether the UI should be right-to-left + */ + rtl?: boolean; +} + +export interface LanguageEntry { + /** + * What should appear in the UI as the name for the language + */ + display: string; + + /** + * What emoji should be displayed + */ + emoji: string; + + /** + * Filename of the related language file + */ + i18n: string; + + /** + * Dayjs locale file if different + */ + dayjs?: string; + + /** + * Locale options + */ + localeOptions?: Pick; + + /** + * Whether the language is a conlang (constructed language) or a joke + */ + cat?: "const" | "alt"; + + /** + * Whether the language has a maintainer + * (patched in) + */ + verified?: boolean; + + /** + * Whether the language is incomplete + * (patched in) + */ + incomplete?: boolean; +} + +export const Languages: { [key in Language]: LanguageEntry } = { + // English and "English" + en: { + display: "English (Traditional)", + emoji: "🇬🇧", + i18n: "en", + dayjs: "en-gb", + }, + en_US: { + display: "English (Simplified)", + emoji: "🇺🇸", + i18n: "en_US", + dayjs: "en", + }, + + // Foreign languages + ar: { + display: "عربي", + emoji: "🇸🇦", + i18n: "ar", + localeOptions: { rtl: true }, + verified: true, + }, + as: { + display: "অসমীয়া", + emoji: "🇮🇳", + i18n: "as", + }, + az: { display: "Azərbaycan dili", emoji: "🇦🇿", i18n: "az" }, + be: { display: "Беларуская", emoji: "🇧🇾", i18n: "be" }, + bg: { display: "Български", emoji: "🇧🇬", i18n: "bg" }, + bn: { display: "বাংলা", emoji: "🇧🇩", i18n: "bn" }, + br: { display: "Brezhoneg", emoji: "br", i18n: "br", verified: true }, + ca: { display: "Català", emoji: "🇪🇸", i18n: "ca" }, + ceb: { display: "Bisaya", emoji: "🇵🇭", i18n: "ceb" }, + ckb: { + display: "کوردی", + emoji: "krd", + i18n: "ckb", + dayjs: "ku", + }, + cs: { display: "Čeština", emoji: "🇨🇿", i18n: "cs" }, + da: { display: "Dansk", emoji: "🇩🇰", i18n: "da" }, + de: { display: "Deutsch", emoji: "🇩🇪", i18n: "de", verified: true }, + el: { display: "Ελληνικά", emoji: "🇬🇷", i18n: "el" }, + es: { display: "Español", emoji: "🇪🇸", i18n: "es" }, + es_419: { + display: "Español (América Latina)", + emoji: "🇪🇸", + i18n: "es_419", + dayjs: "es", + }, + et: { display: "eesti", emoji: "🇪🇪", i18n: "et", verified: true }, + fi: { display: "suomi", emoji: "🇫🇮", i18n: "fi" }, + fil: { + display: "Filipino", + emoji: "🇵🇭", + i18n: "fil", + dayjs: "tl-ph", + }, + fr: { display: "Français", emoji: "🇫🇷", i18n: "fr", verified: true }, + ga: { display: "Gaeilge", emoji: "🇮🇪", i18n: "ga" }, + hi: { display: "हिन्दी", emoji: "🇮🇳", i18n: "hi" }, + hr: { display: "Hrvatski", emoji: "🇭🇷", i18n: "hr" }, + hu: { display: "Magyar", emoji: "🇭🇺", i18n: "hu", verified: true }, + hy: { display: "հայերեն", emoji: "🇦🇲", i18n: "hy" }, + id: { display: "Bahasa Indonesia", emoji: "🇮🇩", i18n: "id" }, + is: { display: "Íslenska", emoji: "🇮🇸", i18n: "is" }, + it: { display: "Italiano", emoji: "🇮🇹", i18n: "it" }, + ja: { display: "日本語", emoji: "🇯🇵", i18n: "ja" }, + ko: { display: "한국어", emoji: "🇰🇷", i18n: "ko" }, + lb: { display: "Lëtzebuergesch", emoji: "🇱🇺", i18n: "lb" }, + lt: { display: "Lietuvių", emoji: "🇱🇹", i18n: "lt" }, + lv: { display: "Latviešu", emoji: "🇱🇻", i18n: "lv", verified: true }, + mk: { display: "Македонски", emoji: "🇲🇰", i18n: "mk" }, + ms: { display: "Bahasa Melayu", emoji: "🇲🇾", i18n: "ms" }, + nb_NO: { display: "Norsk bokmål", emoji: "🇳🇴", i18n: "nb_NO", dayjs: "nb" }, + nl: { display: "Nederlands", emoji: "🇳🇱", i18n: "nl" }, + fa: { display: "فارسی", emoji: "🇮🇷", i18n: "fa", verified: true }, + pl: { display: "Polski", emoji: "🇵🇱", i18n: "pl" }, + pt_BR: { + display: "Português (do Brasil)", + emoji: "🇧🇷", + i18n: "pt_BR", + dayjs: "pt-br", + }, + pt_PT: { + display: "Português (Portugal)", + emoji: "🇵🇹", + i18n: "pt_PT", + dayjs: "pt", + }, + ro: { display: "Română", emoji: "🇷🇴", i18n: "ro" }, + ru: { display: "Русский", emoji: "🇷🇺", i18n: "ru", verified: true }, + sk: { display: "Slovensky", emoji: "🇸🇰", i18n: "sk" }, + sl: { display: "Slovenščina", emoji: "🇸🇮", i18n: "sl" }, + sq: { display: "Shqip", emoji: "🇦🇱", i18n: "sq" }, + sr: { display: "Српски", emoji: "🇷🇸", i18n: "sr" }, + si: { display: "සිංහල", emoji: "🇱🇰", i18n: "si" }, + sv: { display: "Svenska", emoji: "🇸🇪", i18n: "sv", verified: true }, + ta: { display: "தமிழ்", emoji: "🇮🇳", i18n: "ta" }, + th: { display: "ไทย", emoji: "🇹🇭", i18n: "th" }, + tr: { display: "Türkçe", emoji: "🇹🇷", i18n: "tr" }, + ur: { display: "اردو", emoji: "🇵🇰", i18n: "ur" }, + uk: { display: "Українська", emoji: "🇺🇦", i18n: "uk", verified: true }, + vec: { display: "Vèneto", emoji: "vec", i18n: "vec", dayjs: "en-gb" }, + vi: { display: "Tiếng Việt", emoji: "🇻🇳", i18n: "vi" }, + zh_Hans: { + display: "简体中文", + emoji: "🇨🇳", + i18n: "zh_Hans", + dayjs: "zh", + }, + zh_Hant: { + display: "繁體中文", + emoji: "🇹🇼", + i18n: "zh_Hant", + dayjs: "zh", + }, + + // Constructed languages + tokipona: { + display: "Toki Pona", + emoji: "🙂", + i18n: "tokipona", + dayjs: "en-gb", + cat: "const", + }, + esperanto: { + display: "Esperanto", + emoji: "EO", + i18n: "eo", + dayjs: "eo", + cat: "const", + }, + + // Joke languages + owo: { + display: "OwO", + emoji: "😸", + i18n: "owo", + dayjs: "en-gb", + cat: "alt", + }, + pr: { + display: "Pirate", + emoji: "🏴‍☠️", + i18n: "pr", + dayjs: "en-gb", + cat: "alt", + }, + bottom: { + display: "Bottom", + emoji: "🥺", + i18n: "bottom", + dayjs: "en-gb", + cat: "alt", + }, + leet: { + display: "1337", + emoji: "💾", + i18n: "leet", + dayjs: "en-gb", + cat: "alt", + }, + enchantment: { + display: "Enchantment Table", + emoji: "🪄", + i18n: "enchantment", + dayjs: "en-gb", + cat: "alt", + }, + piglatin: { + display: "Pig Latin", + emoji: "🐖", + i18n: "piglatin", + dayjs: "en-gb", + cat: "alt", + }, + + // Test Language + dev: { + display: "Developer Test", + emoji: "🦝", + i18n: "dev", + dayjs: "en-gb", + cat: "alt", + }, +}; diff --git a/packages/client/components/i18n/__tests__/translationComponent.test.tsx b/packages/client/components/i18n/__tests__/translationComponent.test.tsx deleted file mode 100644 index 151dd6bb..00000000 --- a/packages/client/components/i18n/__tests__/translationComponent.test.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { createMemo, createResource } from "solid-js"; - -import * as i18n from "@solid-primitives/i18n"; -import { render, screen } from "@solidjs/testing-library"; -import { describe, expect, it } from "vitest"; - -import { I18nContext, dict, fetchLanguage, language, useTranslation } from ".."; - -const TranslatedText = () => { - const t = useTranslation(); - - return
{t("login.welcome")}
; -}; - -describe("Translation component", () => { - it("should translate the text", () => { - const [dictionary] = createResource(language, fetchLanguage, { - initialValue: i18n.flatten(dict.en), - }); - - const t = createMemo(() => - i18n.translator(dictionary, i18n.resolveTemplate) - ); - - render(() => ( - - - - )); - - const textElm = screen.getByText("Welcome!"); - expect(textElm).toBeInTheDocument(); - }); -}); diff --git a/packages/client/components/i18n/catalogs/.gitignore b/packages/client/components/i18n/catalogs/.gitignore new file mode 100644 index 00000000..b0a155ec --- /dev/null +++ b/packages/client/components/i18n/catalogs/.gitignore @@ -0,0 +1 @@ +*.ts \ No newline at end of file diff --git a/packages/client/components/i18n/catalogs/ar/messages.po b/packages/client/components/i18n/catalogs/ar/messages.po new file mode 100644 index 00000000..c9eba194 --- /dev/null +++ b/packages/client/components/i18n/catalogs/ar/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ar\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "شخص واحد تفاعل" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "حول" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "قبول طلب الصداقة" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "إرسال طلب صداقة" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "متقدم" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "كل الرسائل" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "أنت بالفعل صديق مع هذا المستخدم." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "المظهر" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "تعيين الرتب" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "تطبيق المصادقة الثنائية" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "الصورة الرمزية" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "الشارات" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "أُحظر" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "اُحظر العضو" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "حظر الأعضاء" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "المستخدمون المحظورون" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "احظر المستخدم" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "محظور" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "مستخدم محظور" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "بوت" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "متعقب الأخطاء" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "ألغ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "إلغاء طلب الصداقه" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "لا يمكن حذف الحساب حتى يتم حذف الخوادم أو نقلها" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "تعديل" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "تغيير الصورة الرمزية" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "تغيير اللقب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "وصف القناة" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "اسم القناة" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "القنوات" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "راجع بريدك الإلكتروني!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "امسح الحالة" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "إعدادات التطبيق" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "أغلق" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "تأكيد" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "تأكيد الأمر" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "الإتصال" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "يخالف المحتوى قانونًا واحدًا أو أكثر" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "استمرار" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "المحادثات" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "انسخ معرّف القناة" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "انسخ المعرّف" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "انسخ الرابط" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "انسخ معرّف الرسالة" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "انسخ معرّف السيرفر" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "انسخ النص" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "انسخ معرّف المستخدم" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "أنشئ" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "أنشئ مجموعة" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "إنشاء بوت جديد" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "أنشئ رتبة جديدة" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "إنشاء حساب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "إنشاء فئة" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "إنشاء قناة" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "إنشاء دعوة" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "كلمة السر الحالية" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "حالة مُخَصَّصة" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "التخصيص" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "منع الأعضاء من الاستماع" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "إفتراضي" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "احذف" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "حذف القناة" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "احذف الرسالة" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "حذف الرتبة" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "تعطيل الحساب" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "لا تقم بالإزعاج" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "تم إنجازه" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "تعديل الهوية" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "عدّل الرسالة" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "عدل هويتك" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "البريد الإلكتروني" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "الرموز التعبيرية" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "تفعيل تطبيق المصادقة الثنائية" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "فعّل تنبيهات الحاسوب" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "أدخل كلمة مرور جديدة." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "الدخول للقناة" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "ادخل الرمز" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "أدخل كلمة السر الحالية." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "أدخل اسم المستخدم الخاص بك." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "الروابط الخارجية قد تكون خطيرة!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "فشل توثيق حسابك!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "رأيك" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "ابحث عن مجتمع يحوي هواياتك أو اهتماماتك." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "مركز" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "الأصدقاء" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "إنتاج رموز استرجاع" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "جار انشاء دعوة…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "العودة لتسجيل الدخول" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "الذهاب لسيرفر المختبرين" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "اسم المجموعة" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "مرحباً!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "الصفحة الرئيسية" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "أنا أؤكد أن عمري لا يقل عن 18 عاماً." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "خامل" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "متخفي" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "قم بدعوة جميع أصدقائك، وبعض البوتات الرائعة، وأقم حفلة كبيرة." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "رمز الدعوة" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "دعوة الآخرين" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "الداعي" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "الدعوات" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "انتقل إلى الرسائل الحاضرة" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "انتقل إلى البداية" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "أطرد" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "اطرد العضو" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "طرد الأعضاء" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "اللغة" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "الأحدث" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "غادر" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "مغادرة المجموعة" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "مغادرة السيرفر" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "أخبرنا كيف يمكننا تحسين تطبيقنا من خلال تزويدنا بالتعليقات." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "تسجيل خروج" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "تسجيل خروج من جميع الجلسات الأخرى" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "تسجيل الدخول" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "إدارة التعديلات" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "إدارة الرسائل" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "إدارة الألقاب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "إدارة الصلاحيات" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "إدارة الرتب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "إدارة السيرفر" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "إدارة ربط الخدمات" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "حدده كمقروء" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "حدده كغير مقروء" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "التَّنَكُّر" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "الأعضاء" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "أذكر" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "عند ذكري فقط" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "راسِل" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "فشل تحميل الرسائل، اضغط للانتقال" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "عند استلام رسالة" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "عند إرسال رسالة" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "هذه الرسالة مرسلة من منصة أخرى" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "المراسلة" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "تحريك الأعضاء" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "كتم الأعضاء" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "مكتوم" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "الأصدقاء المُشتَركون" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "المجموعات المُشتَركة" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "حسابي" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "البوتّات الخاصة بي" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "كلمة مرور جديدة" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "لقب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "لا شيء" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "الإشعارات" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "موقف" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "التواصل الرسمي" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "سيرفر رسمي" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "غير متصل" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "تأكيد" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "الأقدم" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "مفعل" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "لا يمكن التراجع عن الحذف." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "متصل" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "افتح الإعدادات" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "نظرة عامة" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "كلمة المرور" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "الصلاحيات" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "اختر اسم مستخدم ليتمكن الآخرون من العثور عليك بواسطته، يمكنك تغييره لاحقاً في الإعدادات." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "يرجى التأكيد بإستخدام الطريقة المختارة." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "الرجاء إدخال بريدك الإلكتروني." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "الرجاء حفظ هذه الرموز في مكان آمن." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "يرجى استعمال الكاميرا لتصوير الشكل أو استخدام الرمز أدناه في تطبيق المصادقة الذي تستخدمه." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "يرجى إختيار طريقة لمصادقة طلبك." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "سياسة الخصوصية" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "الملف الشخصي" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "قراءة سِجِل الرسائل" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "السبب" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "رمز الاسترجاع" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "سجّل" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "رفض طلب الصداقة" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "الصلة" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "أزل موثقًا" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "إزالة الصور الرمزية" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "إزالة الصديق" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "ردّ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "الرد على" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "بلّغ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "الإبلاغ عن الرسالة" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "الإبلاغ عن السيرفر" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "أبلغ عن مستخدم" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "إعادة إرسال رسالة التحقق" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "إعادة التعيين" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "أعد تعيين كلمة السر" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "اسم الرتبة" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "الرُتب" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "احفظ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "الحفظ في ملاحظاتك" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "الملاحظات المحفوظة" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "اختر اللغة" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "إرسال رسائل مُضمَنة" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "إرسال الرسائل" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "أرسل مرفقًا" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "أرسل عدة مرفقات" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "وصف السيرفر" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "اسم السيرفر" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "الجلسات" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "الإعدادات" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "العديد من الأشخاص يكتبون…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "الأصوات" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "مصدر البرنامج" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "تحدث" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "أرسل إلينا اقتراحاتك لإضافة الميزات" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "إرسال اقتراحات لتحسين المنصة" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "ادعم المشروع بالتبرع - شكرًا لك!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "شروط الخدمة" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "قناة نصية" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "السمة" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "هذه هي بداية محادثتكم." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "هذه بداية ملاحظاتك." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "لقد قام هذا المستخدم بحظرك." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "حظر مؤقت للأعضاء" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "فك الحظر" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "رفع الملفات" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "المستخدم" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "عند انضمام مستخدم للمكالمة" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "عند مغادرة مستخدم للمكالمة" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "إدارة المستخدمين" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "إعدادات المستخدم" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "‌اسم المستخدم" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "جار التحقق من حسابك…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "فيديو" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "عرض القناة" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "عرض تقارير متعقب الأخطاء هنا." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "إعرض التحديثات السابقة" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "عرض رموز الاسترجاع" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "ما معروض هو رسائل قديمة" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "قناة صوتية" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "لقد أرسلنا لك بريد إلكتروني للتحقق. الرجاء انتظار لمدة 10 دقائق لوصول البريد قبل المحاولة مرة أخري." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "ربط الخدمات" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "مرحباً بك في" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "أهلًا!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "يمكنك أيضًا النقر بالزر الأيمن للفأرة فوق صورة المستخدم الموجودة في الجزء العلوي الأيسر، أو النقر بزر الفأرة الأيسر إذا كنت في الصفحة الرئيسية." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "يمكنك فتحها لاحقاً ولكنها ستختفي من كِلا الطرفين." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "يمكنك الإبلاغ عن أية مشاكل ومناقشة التحسينات معنا مباشرةً هنا." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "لا يمكنك التراجع عن هذا الفعل." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "ليس لديك صلاحية لإرسال رسائل في هذه القناة." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "لن يكن لك القدرة أن تستخدم حسابك إلا إذا اتصلت بالدعم لكن بياناتك لن تحذف." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "لن تتمكن من الانضمام مجدداً ما لم تتم دعوتك مرة أُخرى." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "تم توثيق حسابك بنجاح!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "رموز الإسترجاع الخاصة بك" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/as/messages.po b/packages/client/components/i18n/catalogs/as/messages.po new file mode 100644 index 00000000..c6bd0eca --- /dev/null +++ b/packages/client/components/i18n/catalogs/as/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: as\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 জন ব্যক্তিয়ে প্ৰতিক্ৰিয়া প্ৰকাশ কৰিছে" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "বিষয়ে" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "বন্ধুক যোগ কৰক" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "সকলো বাৰ্তা" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "প্ৰমাণীকৰণ এপ্প" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "সদস্যজনক নিষিদ্ধ কৰক" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "ব্যৱহাৰকাৰীক ব্লক কৰক" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "অৱৰুদ্ধ ব্যক্তি" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "বট" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "অনুৰোধ বাতিল কৰক" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "সলনি কৰক" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "চেনেলসমূহ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "আপোনাৰ মেইল পৰীক্ষা কৰক!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "ষ্টেটাছ আঁতৰাওক" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "ক্লায়েন্টৰ ছেটিংছ" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "কথোপকথন" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "লিংকটো কপি কৰক" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "এটা গোট সৃষ্টি কৰক" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "এটা একাওন্ট সৃষ্টি কৰক" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "এটা শ্ৰেণী সৃষ্টি কৰক" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "এটা চেনেল সৃষ্টি কৰক" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "বৰ্তমান পাছৱাৰ্ড" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "কাষ্টম ষ্টেটাছ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "চেনেল ডিলিট কৰক" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "বিচলিত নকৰিব" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "আপোনাৰ পৰিচয় সম্পাদনা কৰক" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ইমেইল" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "আপোনাৰ ইমেইল প্ৰবিষ্ট কৰক।" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "চেনেলত প্ৰৱেশ কৰক" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "আপোনাৰ বৰ্তমানৰ পাছৱৰ্ড প্ৰবিষ্ট কৰক।" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "আপোনাৰ ব্যৱহাৰকাৰীনাম প্ৰবিষ্ট কৰক।" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "প্ৰমাণিত কৰিব পৰা নগল!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "আপোনাৰ ৰুচি বা আগ্ৰহৰ ওপৰত আধাৰিত কৰি এটা সম্প্ৰদায় বিচাৰি উলিয়াওক।" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "ফোকাচ" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "বন্ধুসকল" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "পুনৰুদ্ধাৰ কোড সৃষ্টি কৰক" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "লগইনলৈ ঘূৰি যাওক" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "পৰীক্ষক চাৰ্ভাৰলৈ যাওক" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "গোটৰ নাম" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "নমস্কাৰ!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "ঘৰ" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "মই নিশ্চিত কৰো যে মোৰ বয়স ১৮ বছৰতকৈ অধিক।" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "নিষ্ক্ৰিয়" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "অদৃশ্য" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "আপোনাৰ সকলো বন্ধুবৰ্গক নিমন্ত্ৰণ কৰক, কিছুমান শীতল বট, আৰু এটা ডাঙৰ পাৰ্টি দিয়ক।" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "বৰ্তমানলৈ জাঁপ দিয়ক" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "আৰম্ভণিলৈ জঁপিয়াওক" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "শেহতীয়া" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "গোট এৰি যাওক" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "চাৰ্ভাৰ এৰি যাওক" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "আমাক মতামত দি আমি কেনেকৈ আমাৰ এপটো উন্নত কৰিব পাৰোঁ আমাক জনাব।" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "লগইন" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "কেৱল উল্লেখ কৰক" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "বাৰ্তা লোড কৰা হোৱা নাই, জঁপিয়াবলৈ ক্লিক কৰক" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "বাৰ্তা অন্য প্লেটফৰ্মত প্ৰেৰণ কৰা হৈছিল" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "নিস্তব্ধ কৰা হৈছে" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "মোৰ একাউণ্ট" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "নতুন পাছৱাৰ্ড" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "একো নাই" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "বন্ধ" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "অফিচিয়েল কমিউনিকেচন" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "অফলাইন" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "আটাইতকৈ পুৰণি" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "অন" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "অনলাইন" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "ছেটিংছ খোলক" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "পাসওয়ার্ড" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "অনুগ্ৰহ কৰি আপোনাৰ ইমেইল প্ৰবিষ্ট কৰক।" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "গোপনীয়তা নীতি" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "পুনৰুদ্ধাৰ কোড" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "পঞ্জীয়ন কৰক" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "প্ৰাসংগিকতা" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "বন্ধুক আঁতৰাওক" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "উত্তৰ দিয়া হৈছে" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "প্ৰমাণীকৰণ পুনৰ প্ৰেৰণ কৰক" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "পাছৱাৰ্ড ৰিছেট কৰক" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "আপোনাৰ টোকাসমূহত সংৰক্ষণ কৰক" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "সংৰক্ষিত টোকাসমূহ" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "এটা ফাইল পঠাইছে" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "বহু কেতা ফাইল পঠিয়াইছে" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "চাৰ্ভাৰৰ বিৱৰণ" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "ছেটিংছ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "কেইবাজনো লোকে টাইপ কৰি আছে…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "দান কৰি প্ৰকল্পটো সমৰ্থন কৰক - ধন্যবাদ!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "সেৱাৰ চৰ্তাৱলী" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "টেক্সট চেনেল" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "এয়া হৈছে আপোনাৰ কথোপকথনৰ আৰম্ভণি।" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "এয়া হৈছে আপোনাৰ টোকাবোৰৰ আৰম্ভণি।" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "ব্যৱহাৰকাৰীক আনব্লক কৰক" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "আপোনাৰ ছেটিংছ" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "ব্যৱহাৰকাৰীনাম" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "অপুনাৰ একাউণ্ট প্ৰমণিত কৰা হয় আছে…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "পুনৰুদ্ধাৰ কোডসমূহ দৰ্শন কৰক" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "পুৰণি বাৰ্তাসমূহ দৰ্শন কৰা হৈছে" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "ভইচ চেনেল" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "অনুগ্ৰহ কৰি ইয়াক আহিপোৱাৰ বাবে 10 মিনিটলৈকে অনুমতি দিয়ক।" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "স্বাগতম!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "আপুনি ওপৰৰ বাওঁফালে থকা ব্যৱহাৰকাৰী আইকনটো সোঁ-ক্লিক কৰিব পাৰে, বা আপুনি ইতিমধ্যে ঘৰত থাকিলে ইয়াত ক্লিক কৰিব পাৰে।" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "আপুনি সমস্যাবোৰ প্ৰতিবেদন কৰিব পাৰে আৰু ইয়াত পোনপটীয়াকৈ আমাৰ সৈতে উন্নতিৰ বিষয়ে আলোচনা কৰিব পাৰে।" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "এই চেনেলত বাৰ্তা প্ৰেৰণ কৰাৰ অনুমতি আপোনাৰ নাই।" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "অপুনাৰ একাউণ্ট প্ৰমণিত কৰা হয় গইছে!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/az/messages.po b/packages/client/components/i18n/catalogs/az/messages.po new file mode 100644 index 00000000..f39ccb1d --- /dev/null +++ b/packages/client/components/i18n/catalogs/az/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: az\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 nəfər reaksiya verdi" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Haqqında" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Dost əlavə edin" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Irəliləşmiş" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Bütün mesajlar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Bu istifadəçi ilə artıq dostlar." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Görünüş" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticator tətbiqi" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Profil" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Nişanlar" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "qadağa" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Üzv qadağanlıdır" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Üzvləri qadağan edin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Qadağalar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "İstifadəçini bloklayın" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blok edildi" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Bloklanmış İstifadəçi" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Hata İzləyici" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Ləğv et" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "İstəyi ləğv edin" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Hesab serverlər silinməyənə və ya köçürülməyənə qədər silinə bilməz" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Dəyişdirin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Dəyişdirmək Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "istifadəçi adını dəyişdirin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanal Təsviri" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanal adı" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanallar" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Poçtunuzu yoxlayın!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Statusu sil" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Müştəri parametrləri" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Yaxın" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Fəaliyyəti təsdiqləyin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Davam edin" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Söhbətlər" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kanal kimliyini kopyalayın" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Şəxsiyyət sənədini kopyalayın" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Linki kopyalayın" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Mesaj kimliyini kopyalayın" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Server kimliyini kopyalayın" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Mətni kopyalayın" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "İstifadəçi identifikatorunu kopyalayın" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Yaradın" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Qrup yaradın" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Yeni Bot Yarat" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Yeni bir rol yaradın" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Hesab yarat" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Kateqorya yarat" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Kanal yaradın" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Dəvət yarat" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Hazırkı şifrə" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Xüsusi status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Fərdiləşdirmə" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Defolt" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Sil" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Kanalı sil" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Mesajı silin" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Rolu silin" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Hesabı deaktiv edin" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Narahat Etməyin" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Kimliyi Redaktə Et" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Mesajı redaktə edin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Elektron poçt" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojilər" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Autentifikator tətbiqini aktivləşdirin" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Masaüstü Bildirişlərini Aktivləşdir." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Yeni şifrənizi daxil edin." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Kanala daxil olun" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Kodu daxil edin" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Cari parolunuzu daxil edin." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "İstədiyiniz istifadəçi adını daxil edin." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Xarici linkər təhlükəli ola bilər!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Doğrulamaq alınmadı!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Əlaqə" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Hobbinizə və ya maraqlarınıza əsaslanan bir cəmiyyət tapın." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Diqqət" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Dostlar" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Bərpa Kodları Yarat" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Dəvət hazırlanır…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Giriş səyfəsinə geri qayıt" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Testerlər serverinə get" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Qrup Adı" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Salam!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Ana səhifə" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Ən azı 18 yaşım olduğunu təsdiqləyirəm." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Boş" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Görünməz" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Bütün dostlarınızı, bəzi sərin Botları dəvət edin və böyük bir qonaqlıq verin." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Dəvət kodu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "istifadəçi adını dəyişdirin" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Dəvət Edən" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Dəvətlər" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Bu günə qayıdın" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Başlanğıca geri dön" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "At" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Üzvü atın" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "At Üzvləri" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Dil" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Ən son" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Buraxın" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "qrupu tərk et" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Serverdən ayrıl" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Rəy bildirərək tətbiqimizi necə inkişaf etdirə biləcəyimizi bizə bildirin." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Çıxış" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Bütün digər iclaslardan çıxın" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Daxil ol" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Mesajları idarə edin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "İstifadəçi adlarını idarə edin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Rolları idarə edin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Serveri idarə edin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Oxundu kimi qeyd edin" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "maskarad" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Üzvlər" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Bəhs edin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Yalnız qeydlər" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Mesaj" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mesaj yüklənmədi, tullanmaq üçün klikləyin" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mesaj alındı" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mesaj göndərildi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mesaj başqa platformada göndərildi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mesajlaşma" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Üzvləri köçürün" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Üzvləri susdurun" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Səssiz" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Qarşılıqlı Dostlar" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Qarşılıqlı Qruplar" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mənim Hesabım" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Botlərim" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Yeni Şifrə" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Ad" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Yoxdur" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Bildirişlər" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Qapalı" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Rəsmi Əlaqə" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Rəsmi Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Oflayn" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Tamam" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Ən köhnə" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Açıq" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Silinəndən sonra geri qayıtmaq olmaz." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Onlayn" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Parametrləri aç" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Baxış" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Şifrə" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "İcazələr" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "İnsanların sizi tapa bilməsini istədiyiniz bir istifadəçi adı seçin, bu daha sonra ayarlarda dəyişdirilə bilər." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Lütfən, seçilmiş metoddan istifadə edərək təsdiqləyin." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "E-poçtunuzu daxil edin." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Lütfən, bunları təhlükəsiz yerdə saxlayın." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Lütfən, autentifikasiya tətbiqinizdə aşağıdakı nişanı skan edin və ya istifadə edin." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Sorğunuzu doğrulamaq üçün bir üsul seçin." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Gizlilik Siyasəti" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Səbəb" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Bərpa kodu" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Qeydiyyatdan keçin" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Uyğunluq" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Doğrulayıcıyı silin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Avatarları silin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Dostluqdan çıxar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Cavab ver" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "cavab verilir" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Doğrulama mesajını yenidən göndər" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Parolu sıfırla" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rol adı" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Rollar" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Yadda saxla" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Qeydlərinizə yazın" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Saxlanılan qeydlər" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Dilinizi seçin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Mesaj göndər" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Əlavə göndərildi" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Birdən çox qoşma göndərildi" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Server Təsviri" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Server Adı" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "İclaslar" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Parametrlər" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Bir neçə nəfər yazır…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Səslər" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Mənbə kodu" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Xüsusiyyət təklifi göndərin" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Rəy göndərin" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Layihəni ianə ilə dəstəkləyin - təşəkkür edirəm!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Xidmət Şərtləri" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Mətn Kanalı" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Mövzu" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Bu söhbətinizin başlanğıcıdır." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Bu, qeydlərinizin başlanğıcıdır." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Bu istifadəçi sizi blok edib." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "İstifadəçini blokdan çıxarın" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Faylları yükləyin" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "İstifadəçi" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "İstifadəçi Zəngə qatıldı" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "İstifadəçi Sol Axtarış" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "İstifadəçi İdarəetmə" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "İstifadəçi parametrləri" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "İstifadəçi adı" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Hesabınızı yoxlamaq…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Kanala baxın" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Hazırda aktiv bug reportlarına burada baxın." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Köhnə yeniləmələrə baxın" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Bərpa Kodlarına Bax" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Köhnə mesajlar göstərilir" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Səs kanalı" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Sizə Təsdiq e-poçtu göndərdik. Zəhmət olmasa 10 dəqiqəyə qədər gözləyin." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Xoş gəlmisiniz" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Xoşgəldiniz!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Siz həmçinin yuxarı sol küncdəki istifadəçi ikonasına sağ klikləyə və ya artıq evdəsinizsə, sol klikləyə bilərsiniz." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Daha sonra yenidən aça bilərsiniz, lakin hər iki tərəfdə yox olacaq." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Problemləri bildirə və inkişafları birbaşa burada bizimlə müzakirə edə bilərsiniz." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Bu əməliyyatı geri qaytara bilməzsiniz." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Bu kanalda mesaj göndərmək üçün icazəniz yoxdur." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Dəstək xidməti ilə əlaqə saxlamadığınız halda hesabınıza giriş edə bilməyəcəksiniz - lakin məlumatlarınız silinməyəcək." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Yenidən dəvət edilmədikdə yenidən qoşula bilməyəcəksiniz." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Hesabınız təsdiqləndi!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Bərpa kodlarınız" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/be/messages.po b/packages/client/components/i18n/catalogs/be/messages.po new file mode 100644 index 00000000..b047ef0d --- /dev/null +++ b/packages/client/components/i18n/catalogs/be/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: be\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 чалавек адрэагаваў" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Пра нас" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Прыняць запыт сяброўства" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Дадаць у сябры" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Пашыраныя" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Усе паведамленні" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Вы ўжо сябруеце з гэтым карыстальнікам." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Знешні выгляд" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Прызначэнне роляў" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Праграма для праверкі сапраўднасці" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Аватар" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Значкі" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Заблакіраваць" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Заблакіраваць удзельніка" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Блакіраваць удзельнікаў" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Блакіроўкі" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Заблакіраваць карыстальніка" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Заблакіраваныя" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Заблакіраваны карыстальнік" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Бот" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Журнал багаў" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Скасаваць" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Адмяніць запыт сяброўства" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Немагчыма выдаліць уліковы запіс, пакуль вашы серверы не выдалены, альбо вы не перадалі іншаму ўдзельніку ролю уладальніка" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Змяніць" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Змяняць аватар" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Змяняць нікнэйм" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Апісанне канала" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Назва канала" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Каналы" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Праверце сваю пошту!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Ачысціць статус" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Налады кліента" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Закрыць" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Пацвердзіць" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Пацвердзіць дзеянне" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Далучацца" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Кантэнт парушае адзін ці некалькі законаў" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Працягнуць" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Гутаркі" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Скапіяваць ID канала" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Скапіяваць ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Скапіяваць спасылку" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Скапіяваць ID паведамлення" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Скапіяваць ID сервера" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Скапіяваць тэкст" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Скапіяваць ID карыстальніка" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Стварыць" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Стварыць групу" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Стварыць новага бота" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Стварыць новую ролю" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Стварыць уліковы запіс" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Стварыць катэгорыю" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Стварыць канал" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Стварыць запрашэнне" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Бягучы пароль" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Карыстальніцкі статус" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Дапасаванне" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Адключаць удзельнікам гук" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Прадвызначаныя" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Выдалiць" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Выдаліць канал" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Выдаліць паведамленне" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Выдаліць ролю" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Адключыць уліковы запіс" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Не турбаваць" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Гатова" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Змяніць асобу" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Рэдагаваць паведамленне" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Змяніць вашу асобу" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Электронная пошта" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Эмодзі" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Уключыць праграму для праверкі сапраўднасці" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Уключыць кампутарныя апавяшчэнні" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Увядзіце новы пароль." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Увайсці ў канал" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Увядзіце код" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Увядзіце ваш бягучы пароль." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Увядзіце імя карыстальніка, якое вам спадабаецца." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Вонкавыя спасылкі могуць быць небяспечнымі!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Не ўдалося пацвердзіць аккаунт!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Зваротная сувязь" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Знайдзіце супольнасць на аснове вашых хобі або інтарэсаў." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Сфакусіраваны" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Сябры" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Стварыць коды аднаўлення" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Стварэнне запрашэння…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Вярнуцца да ўваходу" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Перайсці на сервер тэсціроўшчыкаў" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Назва групы" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Прывітанне!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Галоўная" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Я пацвяржаю, што я старэйшы за 18 гадоў." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Неактыўны" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Нябачны" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Запрасіце ўсіх сваіх сяброў, крыху крутых ботаў і пачніце вялікую вечарыну." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Код запрашэння" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Запрашаць іншых" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Запрашаючы" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Запрашэнні" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Перайсці у канец" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Перайсці ў пачатак" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Выгнаць" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Выгнаць удзельніка" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Выганяць удзельнікаў" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Мова" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Апошнія" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Выйсці" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Выйсці з групы" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Выйсці з сервера" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Паведаміце, як мы можам палепшыць нашу праграму, пакінуўшы водгук." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Выйсці з уліковага запісу" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Выйсці з усіх іншых сеансаў" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Увайсці" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Кіраванне дапасаванням" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Кіраванне паведамленнямі" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Кіраваць нікнэймамі" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Кіраванне дазволамі" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Кіраванне ролямі" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Кіраванне серверам" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Кіраванне вэбхукамі" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Адзначыць як прачытанае" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Адзначыць як непрачытанае" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Маскарад" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Удзельнікі" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Згадаць" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Толькі згадаванні" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Напісаць" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Паведамленне не загружана, націсніце для перахода" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Паведамленне атрымана" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Паведамленне адпраўлена" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Паведамленне было адпраўлена з іншай платформы" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Абмен паведамленнямі" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Перамяшчаць удзельнікаў" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Адключаць мікрафон удзельнікам" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Заглушаны" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Агульныя сябры" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Агульныя групы" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Мой уліковы запіс" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Мае боты" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Новы пароль" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Нікнэйм" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Нічога" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Апавяшчэнні" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Выключана" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Афіцыйныя зносіны" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Афіцыйны сервер" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Па-за сеткай" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ок" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Старыя" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Уключана" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Пасля выдалення, шляху назад не будзе." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "У сетцы" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Адкрыйце налады" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Агляд" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Пароль" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Дазволы" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Абярыце імя карыстальніка, па якому людзі змогуць знаходзіць вас. Пазней яго можна будзе змяніць у наладах карыстальніка." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Калі ласка, пацвердзіце гэта дзеянне абраным спосабам." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Увядзіце ваш электронны адрас." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Калі ласка, захавайце іх ў бяспечным месцы." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Калі ласка, сканіруйце ці скарыстайцеся маркёрам ніжэй у вашай праграме для праверкі сапраўднасці." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Калі ласка, абярыце спосаб для праверкі сапраўднасці вашага запыту." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Палітыка прыватнасці" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Профіль" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Чытаць гісторыю паведамленняў" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Прычына" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Код аднаўлення" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Зарэгістравацца" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Адхіліць запыт сяброўства" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Актуальныя" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Выдаліць праграму для праверкі сапраўднасці" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Выдаляць аватары" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Выдаліць з сяброў" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Адказаць" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Адказваючы" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Паскардзіцца" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Паскардзіцца на гэта паведамленне" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Паскардзіцца на сервер" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Паскардзіцца на карыстальніка" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Паслаць паўторна" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Скінуць" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Скінуць пароль" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Скінуць токен" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Назва ролі" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Ролі" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Захаваць" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Захаваць у нататкі" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Захаваныя нататкі" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Абярыце мову" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Адпраўляць эмбеды" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Адпраўляць паведамленні" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Адправіў далучэнне" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Адправіў некалькі далучэнняў" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Апісанне сервера" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Назва сервера" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Сеансы" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Налады" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Некалькі чалавек пішуць…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Гукі" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Зыходны код" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Гаварыць" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Адправіць прапанову" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Адправіць водгук" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Падтрымайце праект ахвяраваннем - дзякуй!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Умовы карыстання" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Тэкставы канал" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Тэма" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Гэта пачатак вашай размовы." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Гэта пачатак вашых нататак." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Гэты карыстальнік заблакіраваў вас." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Адстраняць удзельнікаў" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Разблакіраваць карыстальніка" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Запампоўваць файлы" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Карыстальнік" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Карыстальнік далучыўся да выкліку" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Карыстальнік выйшаў з выкліку" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Кіраванне карыстальнікамі" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Налады карыстальніка" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Імя карыстальніка" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Пацвярджэнне вашага ўліковага запісу…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Трансліраваць" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Праглядваць канал" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Паглядзець актыўныя ў бягучы час справаздачы пра памылкі можна тут." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Праглядзець старыя абнаўленні" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Праглядзець коды аднаўлення" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Вы праглядвайце старыя паведамленні" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Галасавы канал" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Мы адправілі вам электронны ліст для пацвяржэння вашага ўліковага запісу. Вы атрымайце яго ня больш, чым праз 10 хвілін." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Вэбхукі" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Сардэчна запрашаем у" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Вітаем!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Вы таксама можаце націснуць правай кнопкай мышы на значок карыстальніка ў левым верхнім вуглу, або левай кнопкай мышы, калі вы на дамашняй старонцы." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Вы можаце зноў адкрыць яе пазней, але яна знікне з абодвух бакоў." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Тут вы можаце паведаміць аб праблемах і абмеркаваць з намі паляпшэнні." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Гэта дзеянне нельга адрабіць." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "У вас няма дазволу на адпраўленне паведамленняў у гэтым канале." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Вы не будзеце мець доступу да ўліковага запісу, пакуль не звернецеся да службы падтрымкі, але вашы дадзеныя не будуць выдалены." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Вы не зможаце далучыцца ізноў, пакуль вас не запросяць паўторна." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ваш уліковы запіс быў пацверджаны!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Вашы коды аднаўлення" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/bg/messages.po b/packages/client/components/i18n/catalogs/bg/messages.po new file mode 100644 index 00000000..661f57fe --- /dev/null +++ b/packages/client/components/i18n/catalogs/bg/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: bg\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 човек реагира" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Относно" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Добавяне на приятел" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Всички съобщения" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Вече сте приятели с този потребител." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Външен вид" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Присвояване Роли" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Приложение за удостоверяване" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Аватар" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Значки" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Бан" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Бан на потребител" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Бан на потребители" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Банове" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Блокиране на потребител" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Блокирани" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Блокиран потребител" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "бот" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Преследвач на бъгове" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Откажете се" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Отмяна на заявката" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Промяна" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Промяна на профилна снимка" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Промяна на прякора" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Описание на канала" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Име на канала" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Канали" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Проверете входната си поща!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Изчистване на статуса" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Настройки на приложението" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Затвори" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Потвърди" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Потвърждаване на действие" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Свържете се" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Съдържанието не спазва едно или повече правила" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Продължаване" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Разговори" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Копиране на идентификатора на канала" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Копиране на идентификатор" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Копиране на линк" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Копиране на идентификатора на съобщението" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Копиране на идентификатора на сървъра" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Копиране на текст" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Копиране на потребителския идентификатор" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Създаване" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Създаване на група" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Създай нов бот" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Създаване на нова роля" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Създай профил" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Създаване на категория" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Създаване на канала" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Създаване на покана" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Текуща парола" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Персонализиран статус" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Персонализиране" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Оглушавам членове" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Роля по подразбиране" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Изтрий" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Изтриване на канала" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Изтриване на съобщението" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Изтриване на роля" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Деактивиране на акаунта ви" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Не безпокой" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Готово" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Редактиране на идентичността" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Редакция на съобщението" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Редактиране на самоличността ви" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Имейл" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Емоджита" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Включване на приложението за удостоверяване" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Разрешаване на известията на работния плот." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Въведете нова парола." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Влезте в канала" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Въведете код" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Въведете текущата си парола." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Въведете Вашето потребителско име." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Външните линкове може да са опасни!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Неуспешна проверка!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Обратна връзка" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Намерете общност въз основа на вашите хобита или интереси." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Фокус" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Приятели" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Генерирай кодове за възстановяване" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Генериране на покана…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Върнете се към входната страница" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Отидете на сървъра на тестери" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Име на групата" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Здравейте!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Начална страница" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Потвърждавам, че имам навършени 18 години." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Празен" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Невидим" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Поканете всичките си приятели, някои страхотни ботове и организирайте голямо парти." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Код за покана" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Покани други хора" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Поканващ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Покани" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Преминаване към представяне" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Преминете към началото" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Изгони" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Изгонване на потребител" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Изгонване на потребители" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Език" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Най-нови" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Напусни" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Излизане от групата" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Излизане от сървъра" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Кажете ни как можем да подобрим нашето приложение, като ни дадете обратна връзка." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Отпишете се" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Изтриване на всички други сесии" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Вход" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Управление на персонализирането" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Управление на съобщенията" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Управление на прякори" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Управлявайте Разрешения" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Управление на ролите" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Управление на сървъра" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Управлявайте Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Маркиране като прочетено" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Маркирай като непрочетено" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Маскарад" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Потребители" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Спомени" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Само споменавания" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Прати съобщение" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Съобщението не зареди, кликни за препращане" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Получено съобщение" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Пратено съобщение" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Съобщението бе изпратено от друга платформа" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Преместване на членове" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Заглушаване членове" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Заглушен" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Взаимни приятели" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Взаимни групи" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Моят акаунт" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Моите ботове" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Нова Парола" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Псевдоним" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Няма" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Известия" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Изключено" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Официална комуникация" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Официялен сървър" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Извън линия" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Продължаване" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Най-стари" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Включено" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "След изтриването му няма връщане назад." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Онлайн" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Отворете настройките" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Общ преглед" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Парола" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Права" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Изберете потребителско име, по което искате хората да ви намират, което може да бъде променено по-късно в настройките." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Моля потвърдете използвайки избрания метод." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Моля, въведете Вашия имейл." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Моля запазете тези на сигурно място." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Моля, сканирайте или използвайте токена по-долу във вашето приложение за удостоверяване." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Моля изберете метод, за да удостоверите вашата заявка." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Декларация за поверителност" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Профил" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Прочетете историята на съобщенията" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Причина" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Код за възстановяване" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Регистриране" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Отхвърляне на заявката" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "По съответствие" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Премахване на аутентификатор" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Премахване на профилни снимки" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Премахване на приятел" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Отговор" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Отговаряйки на" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Докладване" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Пращане отново" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Нулиране" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Променете паролата си" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Име на роля" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Роли" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Запази" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Запазете във вашите бележки" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Запазени бележки" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Изберете езика си" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Изпратете embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Пращане на съобщения" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Изпрати прикачен файл" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Изпратете множество прикачени файлове" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Описание на сървъра" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Име на сървъра" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Сесии" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Настройки" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Няколко души пишат…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Звуци" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Изходен код" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "говори" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Предложете нова функция" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Изпрати обратна връзка" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Подкрепете проекта чрез дарение - благодарим ви!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Условия за ползване" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Текстов канал" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Тема" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Това е началото на вашия разговор." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Това е началото на вашите бележки." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Този потребител ви е блокирал." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Таймаут на потребители" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Отмяна на блокирането на потребител" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Качване на файлове" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Потребител" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Потребител влезе в гласовия канал" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Потребител напусна гласовия канал" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Членове" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Потребителски настройки" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Потребителско име" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Потвърдете вашият акаунт…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Видео" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Преглед на канал" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Напревете преглед на активните в момента доклади за бъгове тук." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Вижте предишни промени" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Вижте кодовете за възстановяване" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Преглед на по-стари съобщения" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Гласов канал" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Изпратихме ти имейл за потвърждаване. Може да отнеме до 10 минути за да пристигне." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Добре дошли в" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Добре дошли!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Можете също да щракнете с десния бутон върху иконата на потребителя в горния ляв ъгъл или щракнете с левия бутон върху нея, ако вече сте у дома." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Можете да го отворите отново по-късно, но той ще изчезне и от двете страни." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Можете да докладвате проблеми и да обсъждате подобрения с нас директно тук." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Това действие не може да бъде отменено." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Нямате разрешение да изпращате съобщения в този канал." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Няма да можете да се присъедините отново, освен ако не бъдете поканени отново." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Акаунтът ви беше потвърден!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Вашите кодове за възстановяване" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/bn/messages.po b/packages/client/components/i18n/catalogs/bn/messages.po new file mode 100644 index 00000000..6052c152 --- /dev/null +++ b/packages/client/components/i18n/catalogs/bn/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: bn\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 জন রিয়্যাক্ট করেছেন" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Revolt সম্পর্কে জানুন" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "বন্ধু যোগ করুন" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "সমস্ত মেসেজগুলো" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "আপনি ইতিমধ্যেই এই ইউজারের বন্ধু।" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "রুপ" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "রোলগুলো যোগ করুন" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "অথেনটিকেটর অ্যাপ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "প্রোফাইলের ছবি" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "ব্যাজগুলি" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "ব্যান করুন" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "সদস্যকে ব্যান করুন" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "সদস্যদের ব্যান করুন" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "ব্যানগুলো" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "ইউজারকে ব্লক করুন" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "ব্লকড" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "ব্লক করা ইউজার" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "বট" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "বাগ ট্র্যাকার" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "বাতিল করুন" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "অনুরোধ বাতিল করুন" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "যতক্ষণ না আপনি আপনার সমস্ত সার্ভার ডিলিট করছেন বা সার্ভারগুলোর মালিকানা হস্তান্তর করছেন, ততক্ষণ আপনি আপনার অ্যাকাউন্ট ডিলিট করতে পারবেন না" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "পরিবর্তন করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "প্রোফাইলের ছবি পরিবর্তন করুন" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "ডাকনাম পরিবর্তন করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "চ্যানেলের বর্ণনা" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "চ্যানেলের নাম" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "চ্যানেলগুলো" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "আপনার মেইল দেখুন!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "স্ট্যাটাস মুছুন" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "ক্লায়েন্ট সেটিংস" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "বন্ধ করুন" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "নিশ্চিত করুন" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "কার্য নিশ্চিত করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "সংযোগ করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "কনটেন্ট এক বা একাধিক নিয়ম ভাঙছে" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "চালিয়ে যান" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "কথোপকথনগুলো" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "চ্যানেল আইডি কপি করুন" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "আইডি (ID) কপি করুন" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "লিঙ্ক কপি করুন" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "মেসেজ আইডি কপি করুন" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "সার্ভার আইডি কপি করুন" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "টেক্সট কপি করুন" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "ইউজার আইডি কপি করুন" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "তৈরি করুন" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "একটি গ্রুপ তৈরি করুন" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "একটি নতুন বট তৈরি করুন" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "একটি নতুন রোল তৈরি করুন" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "একটি অ্যাকাউন্ট তৈরি করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "বিভাগ তৈরি করুন" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "চ্যানেল তৈরি করুন" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "আমন্ত্রণ লিঙ্ক তৈরি করুন" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "বর্তমান পাসওয়ার্ড" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "কাস্টম স্ট্যাটাস" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "কাস্টমাইজেশন" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "সদস্যদের ভয়েস চ্যানেলে ব্লক করুন" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "ডিফল্ট" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "মুছুন" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "চ্যানেল মুছুন" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "মেসেজ মুছুন" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "রোল মুছে ফেলুন" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "অ্যাকাউন্টকে সাময়িকভাবে নিস্ক্রিয় করুন" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "বিরক্ত করবেন না" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "হয়ে গেছে" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "পরিচয় সম্পাদনা করুন" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "মেসেজকে সম্পাদনা করুন" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ই-মেইল" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "ইমোজিগুলি" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "অথেনটিকেটর অ্যাপ চালু করুন" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "ডেস্কটপ নোটিফিকেশন চালু করুন-" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "একটি নতুন পাসওয়ার্ড লিখুন।" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "চ্যানেলে প্রবেশ করুন" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "কোডটি দিন" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "আপনার বর্তমান পাসওয়ার্ড লিখুন।" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "আপনার পছন্দের নাম লিখুন।" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "বাহ্যিক লিঙ্ক বিপজ্জনক হতে পারে!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "যাচাই করা যায়নি!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "মতামত" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "আপনার আগ্রহ ও শখ অনুযায়ী সম্প্রদায় (কমিউনিটি) খুঁজুন।" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "ফোকাস" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "বন্ধুরা" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "রিকভারি কোডগুলো বের করুন" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "আমন্ত্রণ কোড তৈরি করা হচ্ছে…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "লগইনে ফিরে যান" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "পরীক্ষক সার্ভারে যান" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "গ্রুপের নাম" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "নমস্কার!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "বাড়ি" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "আমি নিশ্চিত যে আমার বয়স কমপক্ষে 18 বছর।" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "অলস" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "অদৃশ্য" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "আপনার সমস্ত বন্ধুদের আমন্ত্রণ জানান, কিছু দুর্দান্ত বটেদের সার্ভারে যুক্ত করুন, এবং একটি বড় অনুষ্ঠানের আয়োজন করুন।" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "আমন্ত্রণ কোড" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "অন্যদের আমন্ত্রণ পাঠান" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "আমন্ত্রক" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "আমন্ত্রণগুলো" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "বর্তমানের মেসেজগুলোতে ফিরে যান" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "শুরুতে চলে যান" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "কিক করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "সদস্যকে কিক করুন" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "সদস্যদের কিক করুন" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "ভাষা" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "সর্বশেষ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "চলে যান" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "গ্রুপ ছেড়ে চলে যান" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "সার্ভার ছেড়ে চলে যান" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "আপনার মতামত দ্বারা আমাদেরকে জানান যে কিভাবে আমরা আমাদের অ্যাপকে আরো ভালো করতে পারি।" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "লগ আউট করুন" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "অন্যান্য সকল সেশন থেকে লগ আউট করুন" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "লগইন করুন" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "কাস্টমাইজেশন পরিচালনা করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "মেসেজ নিয়ন্ত্রণ করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "ডাকনামগুলি পরিচালনা করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "অনুমতি পরিচালনা করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "রোল পরিচালনা করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "সার্ভার পরিচালনা করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "ওয়েবহুক (Webhook) পরিচালনা করুন" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "পঠিত হিসেবে মার্ক করে রাখুন" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "অপঠিত হিসেবে মার্ক করে রাখুন" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "ম্যাসকোয়ারেড" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "সদস্যরা" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "পিং করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "শুধুমাত্র পিং করা মেসেজগুলো" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "মেসেজ করুন" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "মেসেজ লোড হয়নি, ক্লিক করে উপরে চলে যান" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "আপনি মেসেজ পেয়েছেন" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "আপনি মেসেজ পাঠিয়েছেন" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "মেসেজটি অন্য প্ল্যাটফর্মে পাঠানো হয়েছে" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "মেসেজিং" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "সদস্যদের সরান" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "সদস্যদের মিউট করুন" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "মিউট করা" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "পারস্পরিক বন্ধু" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "পারস্পরিক গ্রুপ" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "আমার অ্যাকাউন্ট" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "আমার সমস্ত বট অ্যাপ্লিকেশনগুলো" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "নতুন পাসওয়ার্ড" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "ডাকনাম" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "কিছুই নয়" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "নোটিফিকেশন" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "বন্ধ করুন" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "অফিসিয়াল কমিউনিকেশন" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "অফিসিয়াল সার্ভার" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "অফলাইন" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "ঠিক আছে" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "সবথেকে পুরনো" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "চালু করুন" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "একবার এটি মুছে ফেলা হলে, আর ফিরে যাওয়া সম্ভব নয়।" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "অনলাইন" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "সেটিংস খুলুন" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "ওভারভিউ" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "পাসওয়ার্ড" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "অনুমতিগুলো" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "একটি ইউজারনেম নির্বাচন করুন যার দ্বারা যে কোনো কেউ আপনাকে খুঁজে পেতে পারে, এটি পরে আপনার ইউজার সেটিংসে পরিবর্তন করা যেতে পারে।" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "নির্বাচিত পদ্ধতিকে ব্যবহার করে এটি নিশ্চিত করুন।" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "দয়া করে আপনার ইমেইল লিখুন।" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "দয়া করে এগুলোকে কোনো নিরাপদ স্থানে সেভ করে রাখুন।" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "দয়া করে স্ক্যান করুন বা আপনার অথেনটিকেটর অ্যাপের দেওয়া টোকেনটি ব্যবহার করুন।" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "আপনার অনুরোধকে প্রমানিত করার জন্য একটি পদ্ধতি বাছুন।" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "গোপনীয়তা নীতি" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "প্রোফাইল" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "মেসেজের ইতিহাস পড়ুন" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "কারণ" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "রিকভারি কোড" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "রেজিষ্টার করুন" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "প্রাসঙ্গিক" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "অথেনটিকেটর সিস্টেমকে বন্ধ করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "প্রোফাইলের ছবি মুছুন" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "বন্ধুকে মুছে ফেলুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "উত্তর দিন" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "উত্তর দিচ্ছেন" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "রিপোর্ট করুন" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "মেসেজ রিপোর্ট করুন" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "সার্ভারের নামে রিপোর্ট করুন" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "ইউজারের নামে রিপোর্ট করুন" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "যাচাইকরণ ইমেল আবার পাঠানোর জন্য অনুরোধ করুন" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "রিসেট করুন" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "পাসওয়ার্ড পুনরায় সেট করুন" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "রোলের নাম" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "রোলগুলো" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "সেভ করুন" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "আপনার নোটসে সেভ করুন" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "সেভ করা নোটসগুলো" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "আপনার ভাষা নির্বাচন করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "এম্বেড মেসেজ পাঠান" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "মেসেজ পাঠান" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "একটি ফাইল পাঠানো হয়েছে" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "একাধিক ফাইল পাঠানো হয়েছে" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "সার্ভারের বর্ণনা" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "সার্ভারের নাম" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "সেশনগুলো" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "সেটিংস" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "অনেকে লিখছেন …" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "শব্দ" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "সোর্স কোড" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "বলুন" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "ফিচার সম্পর্কে আপনার মতামত জানান" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "আপনার মতামত জমা করুন" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "অনুদানের মাধ্যমে আপনি আমাদের সাহায্য করতে পারেন - ধন্যবাদ!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Revolt এর সার্ভিসের শর্তাবলী" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "টেক্সট চ্যানেল" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "থিম" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "এটি আপনার কথোপকথনের সূচনা।" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "এটি আপনার নোটসের সূচনা।" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "এই ইউজার আপনাকে ব্লক করেছে।" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "সদস্যদের টাইমআউট করুন" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "ইউজারকে আনব্লক করুন" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "ফাইল আপলোড করুন" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "ইউজার" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "ইউজার কলে যুক্ত হয়েছেন" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "ইউজার কল ছেড়ে চলে গেলেন" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "ইউজার ব্যবস্থাপনা" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "ইউজার সেটিংস" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "ইউজারনেম" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "আপনার অ্যাকাউন্টকে যাচাই করা হচ্ছে…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "ভিডিও করুন" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "চ্যানেল দেখুন" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "বর্তমানের সমস্ত সক্রিয় বাগ রিপোর্টগুলো এখানে দেখুন।" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "পুরানো আপডেটগুলি দেখুন" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "রিকভারি কোডগুলো দেখুন" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "আপনি পুরনো মেসেজগুলো দেখছেন" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "ভয়েস চ্যানেল" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "আমরা আপনাকে যাচাইকরণের একটি জন্য ই-মেইল পাঠিয়েছি। এটি আসার জন্য দয়া করে 10 মিনিট সময় দিন।" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "ওয়েবহুকগুলি" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "স্বাগতম" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "আপনাকে স্বাগত জানাই!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "আপনি বাম দিকে থাকা ইউজার আইকনে-ক্লিক করতে পারেন, অথবা আপনি যদি বাড়িতেই থাকেন তবে আপনি বাম ক্লিকও করতে পারেন।" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "আপনি পরে এটি আবারও খুলতে পারেন, কিন্তু এটি উভয় পক্ষ থেকে অদৃশ্য হয়ে যাবে।" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "আপনি এখানে অ্যাপ সম্পর্কিত যেকোন সমস্যার রিপোর্ট করতে ও অ্যাপের উন্নতি সম্পর্কে আমাদের সঙ্গে সরাসরি আলোচনা করতে পারেন।" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "আপনি এই ক্রিয়াটিকে আর আগের অবস্থায় ফিরিয়ে আনতে পারবেন না৷" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "এই চ্যানেলে আপনার মেসেজ পাঠানোর অনুমতি নেই।" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "আপনি আমাদের সহায়তা কেন্দ্রের সাথে যোগাযোগ না করা পর্যন্ত আপনার অ্যাকাউন্ট অ্যাক্সেস করতে পারবেন না - তবে, আপনার সমস্ত তথ্যাদি মুছে ফেলা হবে না।" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "পুনরায় আমন্ত্রিত না হলে আপনি যোগদান করতে পারবেন না।" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "আপনার অ্যাকাউন্টকে যাচাই করা হয়ে গেছে!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "আপনার রিকভারি কোডগুলি" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/bottom/messages.po b/packages/client/components/i18n/catalogs/bottom/messages.po new file mode 100644 index 00000000..082d2b0d --- /dev/null +++ b/packages/client/components/i18n/catalogs/bottom/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: bottom\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "✨✨✨✨🥺,,,,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "💖✨🥺👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨,,,👉👈💖💖✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "💖✨🥺👉👈💖💖👉👈💖💖👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "💖✨🥺👉👈💖💖👉👈💖💖✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈💖💖👉👈" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "💖✨🥺👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "💖✨🥺👉👈💖💖🥺,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨✨🥺,👉👈" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "💖✨🥺👉👈💖💖✨,,👉👈💖💖✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖,,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "💖✨🥺👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨🥺👉👈💖💖✨,,👉👈💖💖✨,,👉👈" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "💖✨🥺👉👈💖💖✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "💖✨🥺,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "💖✨🥺,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖,👉👈💖💖👉👈" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "💖✨🥺,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "💖✨🥺,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "💖✨🥺,👉👈💖💖✨🥺,,👉👈💖💖,,,👉👈✨✨✨,,👉👈💖✨✨✨,,,,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨,,,👉👈💖💖✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺👉👈💖💖,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖👉👈" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺👉👈💖💖✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖✨,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "💖✨🥺,,👉👈💖💖,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈✨✨✨,,,👉👈" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "💖✨🥺,,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "💖✨🥺,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "💖✨🥺,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺👉👈💖💖,👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,,👉👈💖💖🥺👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,,👉👈💖💖🥺👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨🥺,,👉👈💖💖,👉👈" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨,,,👉👈💖✨🥺,,,👉👈" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨✨,,,👉👈💖✨🥺,,,👉👈" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖🥺,,👉👈" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨,,,👉👈💖✨🥺,,,👉👈" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨,,,👉👈💖✨🥺,,,👉👈" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨✨👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "💖✨🥺,,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨,,,👉👈💖✨🥺,,,👉👈" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖,,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖,👉👈" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨✨,👉👈" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "💖✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖👉👈" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "💖✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "💖✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "💖✨🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖,,👉👈💖💖,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "💖✨🥺,,,👉👈💖💖,👉👈💖💖,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖🥺,,,👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "💖✨🥺,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "💖✨🥺,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "💖✨🥺,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "💖✨🥺,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "💖✨🥺,,,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,,👉👈" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "💖✨🥺,,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "💖✨🥺,,,,👉👈💖💖👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖✨✨,👉👈" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "💖✨🥺,,,,👉👈💖💖👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "💖✨🥺,,,,👉👈💖💖👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖✨✨,👉👈" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "💖✨🥺,,,,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "💖✨🥺,,,,👉👈💖💖🥺,,,,👉👈💖💖✨,👉👈💖💖🥺,👉👈💖💖🥺👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,👉👈💖💖✨,,👉👈" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖🥺,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖👉👈✨✨✨✨🥺,👉👈" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "💖✨🥺,,,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "💖✨🥺,,,,👉👈💖💖✨✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,,👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "💖✨✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖✨✨,👉👈✨✨✨,,,👉👈" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "💖✨✨👉👈💖💖,👉👈💖💖,👉👈💖💖👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "💖✨✨👉👈💖💖🥺👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖✨🥺👉👈✨✨✨✨🥺,👉👈" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "💖✨✨👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "💖✨✨👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "💖✨✨,👉👈💖💖,👉👈💖💖✨👉👈💖💖,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "💖✨✨,👉👈💖💖,👉👈💖💖✨👉👈💖💖,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈🫂✨✨🥺,👉👈💖💖✨✨🥺,,,👉👈💖💖💖✨🥺,👉👈" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "💖✨✨,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖💖,,,👉👈💖💖🥺👉👈💖💖✨👉👈" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "💖✨✨,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "💖✨✨,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "💖✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈✨✨✨,,,👉👈" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "💖✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "💖✨✨,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,,👉👈💖💖🥺👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈✨✨✨✨🥺,,,,👉👈💖🥺,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "💖✨✨,,,👉👈💖💖👉👈💖💖🥺,,,👉👈💖💖,👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "💖✨✨,,,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "💖✨✨,,,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈💖💖✨🥺👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖✨🥺👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈💖💖✨✨,👉👈✨✨✨✨🥺,👉👈" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "💖✨✨,,,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "💖✨✨,,,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "💖✨✨,,,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "💖✨✨,,,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "💖✨✨,,,,👉👈💖💖✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "💖✨✨,,,,👉👈💖💖✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "💖✨✨🥺👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "💖✨✨🥺👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "💖✨✨🥺👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "💖✨✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "💖✨✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "💖✨✨🥺,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "💖✨✨🥺,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖,,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "💖✨✨🥺,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "💖✨✨🥺,👉👈💖💖,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖🥺,,👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖🥺,,,,👉👈💖💖✨,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖,,,👉👈💖💖🥺👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖,👉👈💖💖,👉👈💖💖👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨✨🥺,👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "💖✨✨🥺,👉👈💖💖✨,👉👈💖💖,,,👉👈✨✨✨,,👉👈💖✨✨🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "💖✨✨🥺,👉👈💖💖✨,👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "💖✨✨🥺,👉👈💖💖✨,👉👈💖💖,,,👉👈💖💖🥺👉👈💖💖✨👉👈" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨🥺,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖✨,👉👈💖💖🥺,,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨,,,👉👈💖💖✨🥺,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈💖💖,👉👈" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨🥺,,,,👉👈💖💖✨👉👈💖💖🥺,,,👉👈💖💖✨✨,👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈💖💖,👉👈💖💖👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖🥺,👉👈💖💖✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖✨,,👉👈" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈💖💖🥺👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖👉👈" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "💖✨✨🥺,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "💖✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "💖✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "💖✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "💖✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "💖✨✨🥺,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "💖✨✨🥺,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨🥺,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "💖✨✨🥺,,,👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖👉👈" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "💖✨✨🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "💖✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,👉👈" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "💖✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "💖✨✨🥺,,,,👉👈💖💖,,👉👈💖💖,,👉👈" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "💖✨✨🥺,,,,👉👈💖💖,,👉👈💖💖,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "💖✨✨🥺,,,,👉👈💖💖,,👉👈💖💖,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "💖✨✨🥺,,,,👉👈💖💖,,👉👈💖💖,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,👉👈" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "💖✨✨🥺,,,,👉👈💖✨✨🥺👉👈" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "💖✨✨🥺,,,,👉👈💖💖🥺,,,👉👈💖💖👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "💖✨✨🥺,,,,👉👈💖💖✨👉👈" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "💖✨✨🥺,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨🥺,,,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨🥺,,,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖,,,👉👈💖💖✨,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨✨🥺,👉👈" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "💖✨✨🥺,,,,👉👈💖💖✨👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,👉👈" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "💖✨✨🥺,,,,👉👈💖💖✨,,👉👈💖💖,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "💖✨✨🥺,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "💖✨✨✨👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖👉👈" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "💖✨✨✨👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "💖✨✨✨👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨✨,👉👈✨✨✨✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨,,,,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺👉👈✨✨✨✨🥺,👉👈" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "💖✨✨✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖,,👉👈💖💖🥺👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖👉👈✨✨✨✨🥺,👉👈" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "💖✨✨✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈✨✨✨✨🥺,👉👈" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "💖✨✨✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "💖✨✨✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖🥺,,👉👈💖💖,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,👉👈💖💖✨,,👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "💖✨✨✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨,,,👉👈💖💖✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "💖✨✨✨👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨✨✨👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨✨,👉👈" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "💖✨✨✨👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨✨,👉👈" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖🥺,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨,,,👉👈💖💖✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺👉👈💖💖✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖💖✨✨,👉👈" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖💖✨✨,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨🥺,👉👈" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖👉👈" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "💖✨✨✨,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨,,,,👉👈💖💖✨,👉👈💖💖🥺,,👉👈💖💖,👉👈💖💖✨👉👈" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "💖✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "💖✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "💖✨✨✨,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "💖✨✨✨,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "💖✨✨✨,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖✨🥺,,,,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖🥺,,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖✨,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖,👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨✨,👉👈💖💖✨,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈🫂✨✨🥺,👉👈💖💖✨✨🥺,,,👉👈💖💖💖✨🥺,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "💖✨✨✨,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "💖✨✨✨,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "💖✨✨✨,,,👉👈💖💖✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,👉👈" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "💖✨✨✨,,,👉👈💖💖✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨🥺,,👉👈💖💖,,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "💖✨✨✨,,,👉👈💖💖✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖,👉👈💖💖,👉👈💖💖👉👈💖✨✨✨✨🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "💖✨✨✨,,,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖🥺,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖👉👈💖💖✨,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈✨✨✨✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,,👉👈" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "💖✨✨✨,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖,,👉👈✨✨✨,,👉👈💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "💖✨✨✨,,,,👉👈💖💖,👉👈💖💖✨✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "💖✨✨✨,,,,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "💖✨✨✨,,,,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨✨🥺,👉👈" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "💖✨✨✨,,,,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈✨✨✨✨🥺,👉👈" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "💖✨✨✨,,,,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "💖✨✨✨,,,,👉👈💖💖🥺👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨🥺👉👈" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "💖✨✨✨🥺👉👈💖💖✨👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "💖✨✨✨🥺👉👈💖💖✨,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈✨✨✨,,👉👈💖✨✨👉👈💖💖🥺👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨,,,,👉👈💖💖✨,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,👉👈💖💖👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨🥺,👉👈💖💖,👉👈💖💖,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨🥺,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈💖💖✨🥺👉👈" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "💖✨✨✨🥺👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "💖✨✨✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖✨✨,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈🫂✨✨🥺,👉👈💖💖✨✨🥺,,,👉👈💖💖💖✨🥺,👉👈" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "💖✨✨✨🥺,👉👈💖💖🥺👉👈💖💖👉👈💖💖,👉👈💖💖✨,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "💖✨✨✨🥺,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "💖✨✨✨🥺,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖🥺,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨🥺,,👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨✨🥺,👉👈" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "💖✨✨✨🥺,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈💖💖👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "💖✨✨✨🥺,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖✨✨✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "💖✨✨✨🥺,👉👈💖💖🥺👉👈💖💖,👉👈💖💖✨🥺,,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖🥺,,,👉👈💖💖👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "💖✨✨✨🥺,👉👈💖💖✨,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨🥺,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "💖✨✨✨🥺,,👉👈💖💖,👉👈✨✨✨🥺,,,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈✨✨✨✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈✨✨✨✨🥺,,,,👉👈✨✨✨✨🥺,,,👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨✨🥺,👉👈" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "💖✨✨✨🥺,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖✨,👉👈💖💖🥺,,👉👈💖💖✨🥺👉👈" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "💖✨✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "💖✨✨✨🥺,,👉👈💖💖,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖,👉👈✨✨✨,,,👉👈" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖✨🥺👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,,,👉👈💖💖,,,,👉👈💖💖✨🥺,👉👈✨✨✨✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈💖💖✨,,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖,,👉👈💖💖✨🥺,👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,,👉👈💖💖🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖🥺,,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨🥺,,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖🥺,,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖🥺,,,,👉👈💖💖,👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨✨🥺👉👈💖💖✨,👉👈💖💖✨,,👉👈💖💖,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,👉👈💖💖✨,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖✨,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖👉👈💖💖,👉👈💖💖✨🥺👉👈✨✨✨✨🥺,👉👈" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖✨🥺,,👉👈💖💖,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖🥺,,,,👉👈💖💖✨,,👉👈💖💖✨,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖👉👈💖💖🥺👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖🥺,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨✨🥺,👉👈" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨✨🥺,👉👈" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖💖👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖💖🥺👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖,👉👈💖💖✨👉👈💖💖👉👈✨✨✨,,👉👈💖💖🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈💖✨✨✨✨🥺,,👉👈💖💖,,,👉👈💖💖,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖🥺👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖,,,,👉👈💖💖🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨👉👈💖💖✨👉👈💖💖,👉👈💖💖🥺,,,👉👈✨✨✨✨🥺,👉👈" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖✨🥺👉👈💖💖✨🥺,,👉👈💖💖✨,,👉👈💖💖✨,,👉👈💖💖✨,👉👈💖💖✨,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈✨✨✨✨🥺👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,,👉👈💖💖,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈✨✨✨✨,,,,👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺,👉👈💖✨✨✨✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖🥺👉👈💖💖🥺,,,👉👈💖💖🥺,,,👉👈✨✨✨,,👉👈💖💖✨👉👈💖💖✨,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖👉👈💖💖,👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈✨✨✨✨🥺,👉👈" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖💖✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨👉👈✨✨✨🥺,,,,👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖🥺,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨🥺,👉👈💖💖✨,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖💖🥺,👉👈💖💖✨,👉👈💖💖🥺👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖🥺,,,👉👈💖💖,👉👈💖💖✨🥺👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖💖✨✨,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈✨✨✨✨🥺👉👈💖💖🥺👉👈💖💖✨👉👈💖💖✨🥺,,,👉👈💖💖🥺👉👈💖💖✨🥺,👉👈💖💖,👉👈💖💖👉👈✨✨✨✨🥺,👉👈" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,👉👈💖✨✨✨✨🥺,,,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨👉👈💖💖✨🥺,👉👈✨✨✨,,👉👈💖💖,,,,👉👈💖✨✨✨✨🥺,,👉👈💖💖✨🥺👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,👉👈💖💖,👉👈💖💖,👉👈💖💖✨👉👈✨✨✨,,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖🥺👉👈💖💖,,👉👈💖💖🥺👉👈💖💖,👉👈💖💖👉👈✨✨✨,,,👉👈" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "💖✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,👉👈💖💖✨,,,,👉👈✨✨✨,,👉👈💖💖✨,,,,👉👈💖💖,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖✨🥺,,,👉👈💖💖,👉👈💖💖✨,,,,👉👈💖💖✨✨,👉👈✨✨✨,,👉👈💖✨✨✨✨🥺,,,,👉👈💖💖✨,👉👈💖💖👉👈💖💖,👉👈💖💖✨🥺👉👈" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/br/messages.po b/packages/client/components/i18n/catalogs/br/messages.po new file mode 100644 index 00000000..175b9f1d --- /dev/null +++ b/packages/client/components/i18n/catalogs/br/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: br\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 tud ersavet" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Diwar hor penn" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Ouzhpennañ ur mignon" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Kemennadennoù holl" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Dija oc'h mignon gant an implijer-se." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Neuz" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Reiñ Perzhioù" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "aplikadenn aotentikadur" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Skeudenn ar Profil" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Ardamezoù" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Forbanniñ" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Forbanniñ an ezel-mañ" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Forbanniñ Izili" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Forbanned" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Berzañ an implijer" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Berzet" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Implijer Berzet" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Chaseour Beugoù" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Nullañ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Nullañ ar goulenn" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Cheñch" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Cheñch ar skeudenn profil" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Cheñch ho Lesanv" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Deskrivadur ar c'hanol" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Anv ar c'hanol" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanolioù" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Sellit ouzh ho posteloù !" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Lemel ar statud" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Arventennoù Arval" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Serriñ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Kadarnaat" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Kadarnaat" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Pellgomz" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Kenderc'hel" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Kaozeadennoù" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Eilañ an ID ar c'hanol" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Eilañ ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Eilañ al liamm" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Eilañ an ID ar c'hemennad" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Eilañ an ID ar servijer" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Eilañ ar skrid" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Eilañ ID implijer" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Krouiñ" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Krouiñ ur strollad" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Krouiñ ur robot nevez" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Krouiñ ur perzh nevez" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Krouiñ ur gont" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Krouiñ ur rummad" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Krouiñ ur c'hanol" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Krouiñ ur bedadenn" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Ger-tremen a-vremañ" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Statud personelaet" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Bouzarañ an Izili" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Dre ziouer" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Dilemel" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Dilemel ar c'hanol-mañ" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Dilemel ar c'hemennad" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Dilemel ar Perzh" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Diweredekaat ar Gont" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Arabat Direnkañ" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Graet" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Kemmañ ho pivelezh" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Kemmañ ar c'hemennad" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Chomlec'h Postel" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Elumiñ arload dilesadur" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Elumiñ ar c'hemennoù da burev" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "skrivit ur ger-tremen nevez." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Mont e-barzh ar c'hanol" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Skriv ar c'hod" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Skrivit ho kod-pediñ a-vremañ." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Roit ho anv implijer muiañ-karet." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Al liammoù diavaez a c'hall bezañ arvarus !" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "c'hwitet da gwiriañ !" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Evezhiadennoù" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Kavit ur kumuniezh hervez ho plijadur." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Dizourennet" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Mignoned" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "O genel ur pedadenn…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Distreiñ d'ar c'hevreadur" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Mont er servijer ar prouaderien" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Anv ar strollad" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Salud deoc'h !" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Degemer" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Kadarnaat on un den-a-dra (18 vloaz on da nebeutañ)." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Ezvezant" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Diwelus" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Pedit ho mignoned, ur re bennak robotoù, ha bec'h d'ar fest." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Boneg-pediñ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Pediñ tud all" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Pediñ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Pedadennoù" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Mont d'an amzer-vremañ" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Mont d'an deraouenn" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Diberzhañ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Diberzhañ an ezel-mañ" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Diberzhañ izili" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Yezh" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Hini diwezhañ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Kuitaat" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Kuitaat ar strollad" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Kuitaat ar servijer" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Grit da cʼhouzout penaos gwellaat hor arload gant ober un evezhiadenn." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Digevreañ" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Digevreañ diouzh an estezioù all" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Kevreañ" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Merañ ar C'hemennadoù" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Merañ al Lesanvioù" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Merañ an Aotreoù" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Merañ ar perzhioù" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Merañ ar Servijer" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Merañ ar Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Merkañ evel lennet" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Merkañ evel anlennet" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskaradenn" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Izili" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Ober meneg" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Menegioù Hepken" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Kas ur C'hemennadenn" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Kemennadenn Resevet" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Kemennadenn Kaset" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Dilecʼhiañ an Izili" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Lazhañ vouezh an izili" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Mut" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Mignoned boutin" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Strolladoù boutin" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Ma Gont" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Ma Robotoù" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Ger-tremen nevez" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Lesanv" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Hini ebet" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Kemennoù" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Lazhet" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Darempred ofisiel" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servijer Ofisiel" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Ezlinenn" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Mat eo" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Hini koshañ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "War elum" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "N'eus distro ebet ur wech dilamet eo." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Enlinenn" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Digeriñ an arventennoù" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Diverradur" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Ger-tremen" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Aotreoù" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Diuzit un anv implijer. Gantañ a c'hall tud kavout ho kont. Posupl eo cheñch an anv implijer en arventennoù." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Skrivit ho postell." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Buhez Prevez" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Lenn roll-istor ar c'hemennadennoù" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Daspunadur kod" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "En em enskrivañ" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Reizhidigezh" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Lemel ur Reolenn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Lemel ar skeudennoù profil" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Lemel ur mignon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Respont" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "O respont da" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Adkas ar gwiriadur" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Adkorañ" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Krouiñ ur ger-tremen nevez" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Anv ar perzh" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Perzhioù" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Gwareziñ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Gwareziñ er c'harned-notenniñ" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notennoù Enrollet" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Dibab ho yezh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Kas Enframmet Kemennadennoù" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Kas Kemennadennoù" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Restr stag kaset" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Lies restroù stag kaset" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Deskrivadur ar servijer" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Anv ar servijer" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Estezioù" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Arventennoù" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Kalz tud o skriv…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sonioù" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Tarzh" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Komz" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Kinnig un aezamant" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Kinnig un evezhiadenn" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Skorañ ar raktres gant reiñ - trugarez !" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Divizoù Implijout" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Kanol Skrid" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Danvez" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Setu ar deraouenn ar gaozeadenn." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Setu ar deraouenn ho karned-notenniñ." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "An implijer-se a verzas ho kont." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Ehanañ an Izili" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Dinaskañ an implijer" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Ezkargañ Restroù" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Implijer" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Erru eo an implijer er pellgomzadenn" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Aet eo an implijer eus pellgomzadenn" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Merañ an Implijer" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Arventennoù Implijer" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Anv Implijer" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "O wiriañ ho kont…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Gwelout ouzh ar C'hanol" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Gwelout amañ an danevell oberiant beugoù a-vremañ." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "O sell ouzh kemennadennoù kozh" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Kanol Komz" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Postell gwiriañ a kasjoc'h. Mar plij. Gortozit 10 munutenn a-raok resev ar postel." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Degemer mat war" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Donemat !" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Klikañ a c'hallit war an arlun an implijer war laez a-gleiz gant ar c'hlik dehou, pe gant ar c'hlik kleiz ma er pajenn-zegemer oc'h dija." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Diwezhatoc'h a c'hallit digeriñ ar c'hemennadoù-se en-dro, met an daou du a steuziint." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Amañ a c'hallit aroueziañ ar gudennoù ha kaozeal diwar-benn gwellaenn ganeomp." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "N'eo ket posubl dizober an obererezh-mañ." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Ne c'hallit ket kas kemennadennoù er c'hanol-mañ." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Ne c'hallit ket dont en-dro hep ur pedadenn nevez." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "ho kont en deus gwiriet !" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ca/messages.po b/packages/client/components/i18n/catalogs/ca/messages.po new file mode 100644 index 00000000..0a1abc5b --- /dev/null +++ b/packages/client/components/i18n/catalogs/ca/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ca\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 persona ha reaccionat" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Sobre" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Acceptar la sol·licitud d'amistat" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Afagur amic" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avançat" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tots els missatges" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Ya ets amic d'aquest usuari." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aparença" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assignar Rols" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "App d'Autentificació" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Insignies" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Vetar" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Banear membre" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banejar membres" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Blocs" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloquejar usuari" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloquejat" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Usuari blocat" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Seguidor d'errors" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancelar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancel·lar la sol·licitud d'amistat" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "No es pot suprimir el compte fins que els servidors no s’hagin suprimit o transferit" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Canvia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Canviar avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Canviar sobrenom" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descripció del canal" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nom del canal" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canals" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Comprova el teu correu electrònic!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Borrar 'estatus' personalitzat" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Configuració del client" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Tancar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirma" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirma l'acció" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Connectar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "El contingut incompleix una o més normes" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuar" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Converses" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copiar l'ID del canal" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copiar ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copiar enllaç" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copiar l'ID del missatge" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copiar l'ID del servidor" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copiar text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copiar l'ID d'usuari" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Crear" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Crea un grup" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Crear un nou bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Crea un nou rol" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Crear un compte" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Crear categoria" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Crear canal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Crear invitació" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Contrasenya actual" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "'Estatus' personalitzat" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalització" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Membres sords" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Predeterminat" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Eliminar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Eliminar canal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Eliminar missatge" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Suprimeix el rol" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Desactiva el compte" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "No Molestar" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Fet" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Editar identitat" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Editar missatge" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Edita la teva identitat" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Correu electrònic" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Activa l'aplicació d'autenticació" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Activa les notificacions d'escriptori" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Introdueix una contrasenya nova." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entra al canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Introduïu el codi" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Introdueix la teva contrasenya actual." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Introdueix el teu nom d'usuari preferit." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Els enllaços externs poden ser perillosos!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Error al verificar!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Commentaris" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Troba una comunitat segons les teves aficions o interessos." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Concentrat" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amics" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Genera codis de recuperació" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generant invitació…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Torna a l'inici de sessió" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Ves al servidor de proves" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nom del grup" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hola!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Inici" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Confirmo que tinc almenys 18 anys." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inactiu" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisible" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Convida tots els teus amics, alguns bots divertits i organitza una gran festa." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Codi d'invitació" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invitar altres" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Membre que l'ha convidat" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitacions" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Ves al present" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Ves al començament" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Expulsar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Expulsar membre" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Expulsar membres" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Llengua" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Més recents" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Deixar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Abandonar grup" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Abandonar servidor" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Explica’ns com podem millorar l’aplicació enviant-nos comentaris." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Tanca la sessió" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Desconnecta la resta de sessions" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Inicia sessió" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gestiona personalització" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Administrar missatges" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Administrar sobrenoms" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Administrar Permisos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Administrar rols" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Administrar servidor" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Gestionar Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marcar com llegit" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marcar com no llegit" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Mascarada" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membres" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mencionar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Només mencions" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Enviar missatge" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Missatge no carregat, fes clic per anar-hi" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Missatge rebut" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Missatge enviat" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "El missatge s’ha enviat des d’una altra plataforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Missatgeria" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Moure els membres" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silenciar Membres" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silenciat" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amics en comú" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grups en comú" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "El meu compte" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Els meus bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Contrasenya nova" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Sobrenom" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Cap" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notificacions" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Desactivat" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicació oficial" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servidor oficial" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Fora de línia" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "D'acord" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Més antics" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Activat" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Una vegada eliminat, no hi ha volta enrere." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "En línia" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Obre la configuració" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Visió general" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Contrasenya" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permisos" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Trieu un nom d'usuari amb el qual voleu que la gent us pugui trobar. Es pot canviar més endavant als paràmetres d'usuari." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Si us plau, confirmeu aquesta acció utilitzant el mètode seleccionat." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Introdueix el teu correu electrònic." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Deseu-los en un lloc segur." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Si us plau, escanegeu o utilitzeu el codi mostrat a continuació a la teva aplicació d'autenticació." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Seleccioneu un mètode per a autenticar la vostra petició." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Política de privadesa" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Perfil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Llegeix l'historial de missatges" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "raó" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Codi de recuperació" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registra't" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rebutjar la sol·licitud d'amistat" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Rellevància" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Elimina autenticador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Eliminar avatars" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Eliminar amic" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Respondre" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Responent a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Reporta" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Informeu sobre el missatge" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Informeu sobre el servidor" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "informa sobre l'usuari" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Reenviar verificació" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reinicia" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Restablir la contrasenya" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Restableix el token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nom del rol" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Rols" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Guardar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Desa a les teves notes" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notes Desades" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Seleccioneu la vostra llengua" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Enviar Incrustacions" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Enviar missatges" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Ha enviat un adjunt" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Ha enviat diversos adjunts" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descripció del servidor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nom del servidor" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessions" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Configuració" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Diverses persones estan escrivint…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sons" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Codi font" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Parlar" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Proposa una funcionalitat" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Envia comentaris" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Dona suport al projecte amb una donació – gràcies!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Condicions de servei" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de text" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Aquest és l’inici de la teva conversa." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Aquest és l’inici de les teves notes." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Aquest usuari t'ha bloquejat." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Membres de temps d'espera" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Desbloquejar usuari" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Pujar arxius" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Usuari" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Un usuari s'ha unit a la trucada" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Un usuari ha marxat de la trucada" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestió dels usuaris" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Configuració de l'usuari" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nom d'usuari" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verificant el vostre compte…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vídeo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Veure canal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Vegeu aquí els informes d'errors actius actualment." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Mostra les actualitzacions més antigues" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Mostra els codis de recuperació" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "S’estan mostrant missatges anteriors" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de veu" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "T'hem enviat un correu de verificació. Si us plau, espera fins a 10 minuts perquè arribi." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Us donem la benvinguda a" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Us donem la benvinguda!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "També pots fer clic dret a la icona d’usuari a la part superior esquerra, o clic esquerre si ja ets a l’inici." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Es pot tornar a obrir més tard, però desapareixerà per als dos usuaris." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Aquí pots denunciar problemes i discutir millores amb nosaltres directament." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Aquesta acció es irreversible." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "No tens permís per enviar missatges en aquest canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "No podràs accedir al teu compte si no contactes amb el servei de suport; tanmateix, les teves dades no se suprimiran." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "No us hi podreu tornar a unir fins que no rebeu una altra invitació." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "El compte vostre ha sigut verificat!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Els vostres codis de recuperació" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ceb/messages.po b/packages/client/components/i18n/catalogs/ceb/messages.po new file mode 100644 index 00000000..c711baff --- /dev/null +++ b/packages/client/components/i18n/catalogs/ceb/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ceb\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tanang mga Mensahe" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Panagway" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "App Panghimatuod" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "User nga Gibabagan" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Alisdan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Mga Channel" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Tan-awa ang imong mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Mga Setting sa Kliyente" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Sumpaysumpaya" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Mga Panag-istoryahanay" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Paghimo og grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Paghimo og account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Password Karon" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "I-disable ang Account" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ayaw Disturboha" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Pagbutang og bag-ong password." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Sudlan Ning Channel" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Ibutang ang password nimo karon." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Ibutang ang imong gusto na username." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Napakyas sa pagberipika!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Pagpangita og komunidad sa imong kalingawan o interes." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Naka-focus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Mga Higala" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Paghimo og Recovery Code" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Pagbalik sa login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Pangadto sa server sa mga mosulay" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Pangalan sa Grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Kumusta!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Pagsugod" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Gipamatud-an nako'g 18+ na ako." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Nagpahulay" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Dili Makit-an" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Pag-imbitar og mga higala ug mga bot, ug paghimo og nindot nga party." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Pangadto sa karon" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Pangadto sa pagsugod" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Pinakabag-o" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Ipahibalo sa amo kung unsaon namo aron mapanindot ning app pinaagi sa paghatag sa amo og feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Pag-log out sa tanang uban pang sesyon" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Log in" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Pagtakuban" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Mga Mention Lang" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Wala na-load ang mensahe, pinduta aron muambak padulong didto" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Gipadala ning mensahe sa lain nga platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Gi-mute" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Akong Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Bag-ong Password" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Wala" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Sirado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Opisyal nga Komunikasyon" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Pinakaluma" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Abri" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Abriha ang mga setting" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Password" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Ibutang ang imong email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Palisiya sa Pagkapribado" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Code Pang-recover" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Pagparehistro" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Kalabutan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Tangtanga ang Awtentikator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Mitubag kang" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Ipadala pag-usab ang pamatuod" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "I-reset ang password" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "I-save sa imong mga note" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Mga Na-save nga Note" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Ipadala ang mga Embed" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Pagpadala og kasuod" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Pagpadala og daghang kasuod" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Deskripsyon sa Server" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Mga Sesyon" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Mga Setting" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Daghang mga nag-type…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Suportaha ning proyekto paagi sa pag-donate - daghang salamat!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Mga Termino sa Serbisyo" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Channel sa Teksto" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Diri nagsugod ang inyohang pag-istoryahanay." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Diri nagsugod ang imong mga note." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Pag-upload sa mga File." + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Mga Setting sa User" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Username" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Ginaberipika ang imong account…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Tan-awa ang Mga Code sa Recovery" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Nagtan-aw og daan nga mga mensahe" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Channel sa Boses" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Nag-send mi nimo og verification email. Paghulat og hangtud 10 minuto bag-o to moabot." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Kumusta!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Pwede pud nimo i-right-click ang icon sa user sa ibabaw sa tuo, o i-left click kung naa na ka sa panid sa pagsugod." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Diri ka direktang maka-report og mga isyu ug makahisgot bahin sa mga kalamboan kauban namo." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Dili ka gitugotan nga magpadala og mga mensahe diriang channel." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Naberipika ang imong account!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ckb/messages.po b/packages/client/components/i18n/catalogs/ckb/messages.po new file mode 100644 index 00000000..913d66cf --- /dev/null +++ b/packages/client/components/i18n/catalogs/ckb/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ckb\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 کەس کاردانەوەی هەبوو" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "دەربارە" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "زیادکردنی هاوڕێ" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "پێشکەوتوو" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "هەموو نامەکان" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "پێشتر هاوڕێ بووە لەگەڵ ئەم بەکارهێنەرە." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "دەرکەوتن" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "ڕۆڵەکان دیاری بکە" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "ئەپی ڕەسەنایەتی" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "ئاڤاتار" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "باجەکان" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "بان" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "باندکردنی ئەندام" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "ئەندام باندکردن" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "بانەکان" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "بلۆککردنی بەکارهێنەر" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "بلۆککراو" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "بەکارهێنەری بلۆککراو" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "بۆت" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "شوێنکەری هەڵە" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "هەڵوەشاندنەوە" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "هەڵوەشاندنەوەی داواکاریەکە" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "ناتوانرێت هەژمار بسڕدرێتەوە تاوەکو سێرڤەرەکان دەسڕدرێنەوە یان دەگوازرێنەوە" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "گۆڕین" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "گۆڕینی ئاڤاتار" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "گۆڕینی نازناو" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "وەسفی کەناڵ" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "ناوی کەناڵ" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "کەناڵەکان" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "ئیمەیڵەکەت بپشکنە!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "سڕینەوەی دۆخ" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "ڕێکخستنەکانی بەرنامە" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "داخستن" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "دووپاتکردنەوە" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "کردارەکە دووپات بکەرەوە" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "بەستن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "ناوەڕۆک یاسایەک یان چەند یاسایەک دەشکێنێت" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "بەردەوامبوون" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "گفتوگۆکان" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "کۆپیکردنی ئایدی کەناڵ" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "کۆپیکردنی ئایدی" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "کۆپیکردنی بەستەر" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "کۆپیکردنی ئایدی نامە" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "کۆپیکردنی ئایدی سێرڤەر" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "کۆپیکردنی تێکست" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "کۆپیکردنی ئایدی بەکارهێنەر" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "دروستکردن" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "گروپێک دروست بکە" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "بۆتێکی نوێ دروست بکە" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "ڕۆڵێکی نوێ دروست بکە" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "هەژمارێک دروست بکە" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "دروستکردنی هاوپۆل" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "دروستکردنی کەناڵ" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "دروستکردنی بانگهێشت" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "وشەی نهێنی ئێستا" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "دۆخی تایبەتمەند" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "خۆکارکردن" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "ئەندام دێفنکردن" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "بنەڕەت" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "سڕینەوە" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "سڕینەوەی کەناڵ" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "سڕینەوەی نامە" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "سڕینەوەی ڕۆڵ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "ناچالاک کردنی هەمژار" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "بێزارم مەکە" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "تەواو" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "دەستکاریکردنی ناسنامە" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "دەستکاریکردنی نامە" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ئیمێڵ" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "ئیمۆجیەکان" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "ئەپی ڕەسەنایەتی چالاک بکە" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "چالاککردنی ئاگەداریەکانی دێسکتۆپ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "وشەى نهێنيێكى نوێ دابنێ." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "چوونە نێو کەناڵ" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "كۆد داخڵ بكە" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "وشەی نهێنی ئێستات بنووسە." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "ناوی بەکارهێنەری دڵخوازی خۆت بنووسە." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "بەستەرە دەرەکیەکان دەتوانن مەترسیدار بن!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "شکست هێنرا لە پشتڕاستکردنەوە!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "فیدباک" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "کۆمەڵگایەک بدۆزەرەوە لەسەر بنەمای خولیاکانت یان بەرژەوەندیەکانت." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "جەخت" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "هاوڕێکان" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "دروستکردنی کۆدی گەڕانەوە" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "دروستکردنی بانگهێشت…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "بگەڕێوە بۆ چوونەژوورەوە" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "بڕۆ بۆ سێرڤەری تێستەرەکان" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "ناوی گروپ" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "سڵاو!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "ماڵەوە" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "من دووپاتی دەکەمەوە کە من بەلایەنی کەمەوە ۱۸ ساڵم." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "ئیدڵ" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "نەبینراو" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "هەموو هاوڕێکانت بانگهێشت بکە، هەندێک بۆتی ناوازە، وە ئاهەنگێکی گەورە دروست بکە." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "کۆدی بانگهێشتکردن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "بانگێشتکردنی ئەوانی تر" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "بانگهێشتکەر" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "بانگهێشتەکان" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "بازدان بۆ پێشکەشکردن" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "بازدان بۆ سەرەتا" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "دەرکردن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "دەرکردنی ئەندام" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "ئەندام دەرکردن" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "زمان" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "تازەترین" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "ڕۆیشتن" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "بەجێهێشتنی گروپ" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "بەجێهێشتنی سێرڤەر" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "با بزانین چۆن دەتوانین بەرنامەی خۆمان باشتر بکەین بە پێدانی فیدباک." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "چوونەدەرەوە" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "چوونەدەرەوە لە هەموو دانیشتنەکانی تر" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "چوونەژوورەوە" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "بەڕێوەبردنی تایبەتمەندی" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "بەڕێوەبردنی نامەکان" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "بەڕێوەبردنی نازناوەکان" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "بەڕێوەبردنی مۆڵەتەکان" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "بەڕێوەبردنی ڕۆڵەکان" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "بەڕێوەبردنی سێرڤەر" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "بەڕێوەبردنی وێبهووک" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "نیشانەکردن وەک خوێندراو" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "نیشانەکردن وەک نەخوێندراو" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "ماسکوڕاید" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "ئەندامەکان" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "ئاماژەپێکردن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "تەنها بە ئاماژە" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "نامە" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "نامە بارنەکراوە، کلیک بکە بۆ بازدان" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "نامەکە گەیشت" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "نامەکە نێردرا" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "پەیام لەسەر پلاتفۆرمێکی تر نێردرا" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "نامەناردن" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "ئەندام موڤکردن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "ئەندام میوتکردن" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "میوتکراو" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "هاوڕێ هاوبەشەکان" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "گروپە هاوبەشەکان" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "هەژماری من" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "بۆتەکانم" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "تێپەڕەوشەی نوێ" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "نازناو" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "هیچ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "ئاگەداریەکان" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "کوژاندنەوە" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "پەیوەندی فەرمی" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "سێرڤەری فەرمی" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "ئۆفڵاین" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "باشە" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "کۆنترین" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "هەڵکردن" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "کاتێک کە سڕایەوە، هیچ گەڕانەوەیەک نابێت." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "ئۆنڵاین" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "کردنەوەی ڕێکخستنەکان" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "پوختە" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "وشەی نهێنی" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "مۆڵەتەکان" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "ناوی بەکارهێنەرێک هەڵبژێرە کە دەتەوێت خەڵک بتوانن بەهۆیەوە تۆ بدۆزنەوە. ئەمە دەتوانرێت دواتر لە ڕێکخستنەکانی بەکارهێنەرەکەتدا بگۆڕدرێت." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "تکایە بە بەکارهێنانی شێوازی هەڵبژێردراو ئەم کردارە پشتڕاست بکەرەوە." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "تکایە ئیمێڵەکەت بنووسە." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "تکایە ئەمانە لە شوێنێکی سەلامەتدا هەڵبگرە." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "تکایە لە ئەپی ڕەسەنایەتیتدا سکان بکە یان ئەو تۆکنەی خوارەوە بەکاری بهێنە." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "تکایە ڕێگەیەک هەڵبژێرە بۆ ڕەسەنایەتی داواکارییەکەت." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "سیاسەتی تایبەتێتی" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "پرۆفایل" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "مێژووی نامەکان بخوێنێتەوە" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "هۆکار" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "کۆدی گەڕانەوە" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "تۆمارکردن" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "پەیوەندی" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "لابردنی ڕەسەنایەتی" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "لابردنی ئاڤاتارەکان" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "لابردنی هاوڕێ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "وەڵامدانەوە" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "وەڵامدانەوەی" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "ڕاپۆرت" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "پەیامی ڕاپۆرت" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "سێرڤەر ڕاپۆرت بکە" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "بەکارهێنەر ڕاپۆرت بکە" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "ناردنەوەی دووپاتکردنەوە" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "ڕێست کردنەوە" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "دووبارە ڕێکخستنەوەی وشەی نهێنی" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "ناوی ڕۆڵ" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "ڕۆڵەکان" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "هەڵگرتن" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "هەڵیبگرە بۆ تێبینیەکانت" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "تێبینیە هەڵگیراوەکان" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "زمانەکەت دیاری بکە" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "ناردنی ئێمبد" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "ناردنی نامە" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "لکێندراوێکی نارد" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "چەند لکێندراوێکی نارد" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "وەسفی سێرڤەر" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "ناوی سێرڤەر" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "دانیشتنەکان" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "ڕێکخستنەکان" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "چەند کەسێک خەریکی نووسینن…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "دەنگەکان" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "سەرچاوەی کۆد" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "قسەکردن" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "پێشنیاری تایبەتمەندی پێشکەش بکە" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "فیدباک پێشکەش بکە" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "پشتگیری برۆژەکە بکە بە دۆنەیتکردن - سوپاس!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "مەرجەکانی خزمەتگوزاری" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "کەناڵی تێکست" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "ڕووکار" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "ئەمە سەرەتای گفتوگۆکانی تۆیە." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "ئەمە سەرەتای تێبینیەکانتە." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "ئەم بەکارهێنەرە تۆی بلۆک کردووە." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "تایمئاوتکردنی ئەندامەکان" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "لابردنی بلۆکی بەکارهێنەر" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "بارکردنی فایل" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "بەکارهێنەر" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "بەکارهێنەر جۆینی پەیوەندیەکەی کرد" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "بەکارهێنەر پەیوەندیەکەی بەجێهێشت" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "بەڕێوەبردنی بەکارهێنەر" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "ڕێکخستنەکانی بەکارهێنەر" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "ناوی بەکارهێنەر" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "پشتڕاستکردنەوەی هەژمارەکەت…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "ڤیدیۆ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "بینینی کەناڵ" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "لێرەدا ڕاپۆرتی هەڵە چالاکەکان ببینە." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "بینینی نوێکارییە کۆنەکان" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "بینینی کۆدەکانی گەڕانەوە" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "بینینی نامە کۆنەکان" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "کەناڵی دەنگ" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "ئێمە ئیمێڵێکی پشتڕاستکردنەوەمان بۆ ناردووی. تکایە ڕێگە بدە تا ۱٠ خولەک بۆ گەیشتنی." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "وێبهووکەکان" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "بەخێربێیت بۆ" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "بەخێربێیت!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "هەروەها دەتوانیت کلیکی ڕاست بکەیت لەسەر ئایکۆنی بەکارهێنەر لە سەرەوەی چەپ، یان کلیکی چەپی لەسەر بکە ئەگەر تۆ پێشتر لە ماڵەوەیت." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "دەتوانی دواتر جارێکی تر بیکەیتەوە، بەڵام لە هەردوو لاوە ون دەبێت." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "دەتوانیت ڕاپۆرت لەسەر کێشەکان بدەیت و راستەوخۆ گفتوگۆ بکەیت لەگەڵ ئێمە لێرەدا." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "ناتوانیت ئەم کردارە پاشەکشە بکەیت." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "تۆ مۆڵەتت نیە بۆ ناردنی نامەکان لەم کەناڵەدا." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "تۆ ناتوانیت بچیتە ناو ئەکاونتەکەتەوە مەگەر پەیوەندی بە پشتگیرییەوە نەکەیت - بەڵام، داتاکانت ناسڕدرێنەوە." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "تۆ ناتوانیت دووبارە بەشداری بکەیتەوە مەگەر دووبارە بانگهێشت بکرێیتەوە." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "هەژمارەکەت پشتڕاست کراوەتەوە!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "کۆدەکانی گەڕانەوەت" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/cs/messages.po b/packages/client/components/i18n/catalogs/cs/messages.po new file mode 100644 index 00000000..3906087e --- /dev/null +++ b/packages/client/components/i18n/catalogs/cs/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: cs\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 osoba zareagovala" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "O nás" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Přijmout žádost o přátelství" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Přidat přítele" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Pokročilé" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Všechny zprávy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "S tímto uživatelem již jste přátelé." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Vzhled" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Přidělit role" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Ověřovací aplikace" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Odznaky" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Zabanovat člena" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banovat členy" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bany" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Zablokovat uživatele" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Zablokovaní" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokovaný uživatel" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Sledování chyb" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Zrušit" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Zrušit žádost o přátelství" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Účet nemůžete smazat, dokud neodstraníte nebo nepřevedete servery" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Změnit" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Změnit avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Změnit přezdívku" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Popis kanálu" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Název kanálu" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanály" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Zkontrolujte svůj e-mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Vymazat status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Nastavení klienta" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Zavřít" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Potvrdit" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Potvrdit akci" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Připojit se" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Obsah porušuje jeden nebo více zákonů" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Pokračovat" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Konverzace" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopírovat ID kanálu" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopírovat ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopírovat odkaz" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopírovat ID zprávy" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopírovat ID serveru" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopírovat text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopírovat ID uživatele" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Vytvořit" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Vytvořit skupinu" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Vytvořit nového bota" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Vytvořit novou roli" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Vytvořit účet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Vytvořit kategorii" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Vytvořit kanál" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Vytvořit pozvánku" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Současné heslo" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Vlastní status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Přizpůsobení" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Vypnout členům zvuk" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Výchozí" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Odstranit" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Odstranit kanál" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Odstranit zprávu" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Odstranit roli" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Deaktivovat účet" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Nerušit" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Hotovo" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Upravit identitu" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Upravit zprávu" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Upravit vlastní identitu" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Smajlíci" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Povolit ověřovací aplikaci" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Povolit oznámení na ploše" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Zadejte nové heslo." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Vstoupit do kanálu" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Zadejte kód" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Zadejte své současné heslo." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Zadejte své upřednostňované uživatelské jméno." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Externí odkazy mohou být nebezpečné!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Nepodařilo se ověřit!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Zpětná vazba" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Najděte komunitu podle svých koníčků a zájmů." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Soustředěný" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Přátelé" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Vygenerovat obnovovací kódy" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generování pozvánky…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Zpět na přihlášení" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Přejít na server pro testery" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Název skupiny" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Dobrý den!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Domů" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Potvrzuji, že je mi nejméně 18 let." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Nečinný" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Neviditelný" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Pozvěte všechny své přátele, pár cool botů a uspořádejte velkou párty." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kód pozvánky" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Pozvat další" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Tvůrce pozvánky" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Pozvánky" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Přejít do současnosti" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Přejít na začátek" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Vyhodit" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Vyhodit člena" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Vyhazovat členy" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Jazyk" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Nové" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Opustit" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Opustit skupinu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Opustit server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Dejte nám vědět, jak můžeme naši aplikaci vylepšit." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Odhlásit se" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Odhlásit se ze všech ostatních relací" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Přihlásit se" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Spravovat přizpůsobení" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Spravovat zprávy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Spravovat přezdívky" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Spravovat oprávnění" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Spravovat role" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Správa serveru" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Spravovat webhooky" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Označit jako přečtené" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Označit jako nepřečtené" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskování" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Členové" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Zmínka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Pouze zmínky" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Zpráva" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Zpráva nenačtena, klikněte pro přechod na ni" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Zpráva přijata" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Zpráva odeslána" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Zpráva byla odeslána z jiné platformy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Zprávy" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Přesunout členy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Vypnout členům mikrofon" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Ztlumeno" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Společní přátelé" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Společné skupiny" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Můj účet" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Moji boti" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nové heslo" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Přezdívka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nic" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Oznámení" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Vyp" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Oficiální komunikace" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Oficiální server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Staré" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Zap" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Jakmile bude smazaný, už není cesty zpět." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Otevřít nastavení" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Přehled" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Heslo" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Oprávnění" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Vyberte si uživatelské jméno, podle kterého vás ostatní uživatelé najdou. Můžete jej kdykoli změnit v nastavení." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Potvrďte tuto akci pomocí vybrané metody." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Zadejte svůj e-mail." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Uložte je na bezpečné místo." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Naskenujte nebo použijte token níže ve vaší ověřovací aplikaci." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Vyberte metodu pro ověření vašeho požadavku." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Zásady ochrany osobních údajů" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Číst historii zpráv" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Důvod" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Obnovovací kód" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Zaregistrovat se" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Odmítnout žádost o přátelství" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevance" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Odebrat ověřovací aplikaci" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Odebrat avatar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Odebrat přítele" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Odpovědět" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Odpovídá na" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Nahlásit" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Nahlásit zprávu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Nahlásit server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Nahlásit uživatele" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Znovu poslat ověření" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Obnovit" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Obnovit heslo" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Obnovit Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Název role" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Role" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Uložit" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Uložit do poznámek" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Poznámky" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Vybrat jazyk" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Odesílat vložení" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Odesílat zprávy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Odeslána příloha" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Odesláno několik příloh" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Popis serveru" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Název serveru" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Relace" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Nastavení" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Několik lidí píše…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Zvuky" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Zdrojový kód" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Mluvit" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Poslat návrh na funkci" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Poslat zpětnou vazbu" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Podpořte projekt finančním darem - děkujeme!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Smluvní podmínky" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Textový kanál" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Motiv" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Toto je začátek vaší konverzace." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Toto je začátek vašich poznámek." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Tento uživatel si vás zablokoval." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Pozastavit členy" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Odblokovat uživatele" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Nahrát soubory" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Uživatel" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Uživatel se připojil k hovoru" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Uživatel se odpojil z hovoru" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Správa uživatelů" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Uživatelská nastavení" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Uživatelské jméno" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Ověřování vašeho účtu…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Zobrazit kanál" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Zde si můžete prohlédnout aktuální hlášení chyb." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Zobrazit starší aktualizace" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Zobrazit obnovovací kódy" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Prohlížíte si starší zprávy" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Hlasový kanál" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Poslali jsme vám ověřovací e-mail. Jeho doručení může trvat až 10 minut." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooky" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Vítejte v" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Vítejte!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Také můžete kliknout pravým na ikonu uživatele vlevo nahoře, nebo na ni kliknout levým, pokud jste již doma." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Můžete ji později znovu otevřít, zmizí ale na obou stranách." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Zde můžete nahlásit problémy a diskutovat o vylepšeních přímo s námi." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Tato akce je nevratná." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Nemáte oprávnění k odesílání zpráv do tohoto kanálu." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Ke svému účtu nebudete mít přístup, pokud nekontaktujete podporu – vaše data nicméně nebudou smazána." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nebudete se moci znovu připojit, pokud znovu nedostanete pozvánku." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Váš účet byl ověřen!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Vaše obnovovací kódy" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/da/messages.po b/packages/client/components/i18n/catalogs/da/messages.po new file mode 100644 index 00000000..98f29602 --- /dev/null +++ b/packages/client/components/i18n/catalogs/da/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: da\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 person reagerede" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Om" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Acceptér venneanmodning" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Tilføj ven" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avanceret" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Alle beskeder" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Allerede venner med denne bruger." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Udseende" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Tildel roller" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Godkendelsesapp" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Badges" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Udeluk" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Udeluk medlem" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Udeluk medlemmer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Udelukkelser" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloker bruger" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blokeret" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokeret bruger" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Fejlsporing" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Annuller" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Annuller venneanmodning" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Kan ikke slette konto, før servere er slettet eller overført" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Ændr" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Skift avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Ændr kaldenavn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanalbeskrivelse" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanalnavn" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanaler" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Tjek din mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Ryd status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Klientindstillinger" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Luk" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Bekræft" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Bekræft handling" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Forbind" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Indholdet bryder en eller flere love" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Fortsæt" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Samtaler" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopiér kanal-ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopiér ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopiér link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopiér besked-ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopiér server-ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopiér tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopiér bruger-ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Opret" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Opret en gruppe" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Opret en ny bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Opret en ny rolle" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Opret en konto" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Opret kategori" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Opret kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Opret invitation" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Nuværende adgangskode" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Brugerdefineret status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Tilpasning" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Gøre medlemmer døve" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Standard" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Slet" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Slet kanal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Slet besked" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Slet rolle" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Deaktiver konto" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Forstyr ikke" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Færdig" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Rediger identitet" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Rediger besked" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Rediger din identitet" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Aktiver godkendelsesapp" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Aktiver skrivebordsnotifikationer" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Indtast en ny adgangskode." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Gå ind i kanal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Indtast kode" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Indtast din nuværende adgangskode." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Indtast dit foretrukne brugernavn." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Eksterne links kan være farlige!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Bekræftelse mislykkedes!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Find et fællesskab baseret på dine hobbyer eller interesser." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Venner" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generér gendannelseskoder" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Genererer invitation…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Gå tilbage til login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Gå til testernes server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Gruppenavn" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hej!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Hjem" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Jeg bekræfter, at jeg er mindst 18 år gammel." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inaktiv" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Usynlig" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Inviter alle dine venner og nogle seje bots, og hold en stor fest." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Invitationskode" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Inviter andre" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitere" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitationer" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Hop til nutiden" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Hop til begyndelsen" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Smid ud" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Smid medlem ud" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Smid medlemmer ud" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Sprog" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Seneste" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Forlad" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Forlad gruppe" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Forlad server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Fortæl os hvordan vi kan forbedre appen ved at give os feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Log ud" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Log ud af alle andre sessioner" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Log ind" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Administrer tilpasning" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Administrer beskeder" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Administrer kaldenavne" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Administrer rettigheder" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Administrer roller" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Administrer server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Administrer webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Markér som læst" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Markér som ulæst" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskerade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Medlemmer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Nævn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Kun omtaler" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Besked" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Beskeden er ikke indlæst; klik for at hoppe" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Besked modtaget" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Besked sendt" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Beskeden blev sendt på en anden platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Beskeder" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Flyt medlemmer" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Mute medlemmer" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Muted" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Fælles venner" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Fælles grupper" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Min konto" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mine bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Ny adgangskode" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Kaldenavn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ingen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifikationer" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Fra" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Officiel kommunikation" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Officiel server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Ældste" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Til" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Når først den er slettet, er der ingen vej tilbage." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Åbn indstillinger" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Oversigt" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Adgangskode" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Rettigheder" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Vælg et brugernavn, som folk kan finde dig på. Dette kan ændres senere i dine brugerindstillinger." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Bekræft venligst denne handling med den valgte metode." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Indtast din e-mail." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Gem dem et sikkert sted." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Scan eller brug venligst nedenstående token i din godkendelsesapp." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Vælg venligst en metode til at godkende din anmodning." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privatlivspolitik" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Læs beskedhistorik" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Årsag" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Gendannelseskode" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Tilmeld" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Afvis venneanmodning" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevans" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Fjern autentifikator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Fjern avatarer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Fjern ven" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Svar" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Svarer på" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Rapportér" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Rapportér besked" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Rapportér server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Rapportér bruger" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Send bekræftelse igen" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Nulstil" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Nulstil adgangskode" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Nulstil token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rollenavn" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roller" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Gem" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Gem i dine noter" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Gemte noter" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Vælg dit sprog" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Send indlejringer" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Send beskeder" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sendte en vedhæftelse" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sendte flere vedhæftelser" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Serverbeskrivelse" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servernavn" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessioner" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Indstillinger" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Adskillige personer skriver…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Lyde" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kildekode" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Tale" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Indsend forslag til funktioner" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Indsend feedback" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Støt projektet med en donation – tak!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Servicevilkår" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Tekstkanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Dette er starten på jeres samtale." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Dette er starten på dine noter." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Denne bruger har blokeret dig." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout medlemmer" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Fjern blokering af bruger" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Upload filer" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Bruger" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Bruger tilsluttede sig opkald" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Bruger forlod opkald" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Brugeradministration" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Brugerindstillinger" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Brugernavn" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Bekræfter din konto…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Se kanal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Se aktuelt aktive fejlrapporter her." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Se ældre opdateringer" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Se gendannelseskoder" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Ser ældre beskeder" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Stemmekanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Vi har sendt dig en bekræftelses-e-mail. Der kan gå op til 10 minutter, før den ankommer." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Velkommen til" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Velkommen!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Du kan også højreklikke på brugerikonet øverst til venstre eller venstreklikke, hvis du allerede er på startsiden." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Du kan åbne den igen senere, men den forsvinder på begge sider." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Du kan rapportere problemer og diskutere forbedringer med os direkte her." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Du kan ikke fortryde denne handling." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Du har ikke tilladelse til at sende beskeder i denne kanal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Du vil ikke kunne få adgang til din konto, medmindre du kontakter support – dine data slettes dog ikke." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Du vil ikke kunne deltage igen, medmindre du inviteres igen." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Din konto er blevet bekræftet!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Dine gendannelseskoder" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/de/messages.po b/packages/client/components/i18n/catalogs/de/messages.po new file mode 100644 index 00000000..b780c772 --- /dev/null +++ b/packages/client/components/i18n/catalogs/de/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: de\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "Eine Person hat reagiert" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Über" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Freundschaftsanfrage akzeptieren" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Freund hinzufügen" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Fortgeschritten" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Alle Nachrichten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Du bist bereits mit dieser:diesem Nutzer:in befreundet." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aussehen" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Rollen zuweisen" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authentifizierungs-App" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Profilbild" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Abzeichen" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Nutzer bannen" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Nutzer bannen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Banliste" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Nutzer blockieren" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blockiert" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blockierter Nutzer" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug-Tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Abbrechen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Freundschaftsanfrage abbrechen" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Das Konto kann erst gelöscht werden, wenn die Server gelöscht oder übertragen wurden" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Ändern" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Avatar ändern" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Nickname ändern" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanalbeschreibung" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanalname" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanäle" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Überprüfe dein E-Mail-Postfach!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Status entfernen" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Clienteinstellungen" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Schließen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Bestätigen" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Aktion bestätigen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Verbinden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Inhalt verletzt einen oder mehrere Gesetze" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Weiter" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Unterhaltungen" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kanal-ID kopieren" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "ID kopieren" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Link kopieren" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Nachrichten-ID kopieren" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Server-ID kopieren" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Text kopieren" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Nutzer-ID kopieren" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Erstellen" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Gruppe erstellen" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Einen neuen Bot erstellen" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Neue Rolle erstellen" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Einen Account erstellen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Kategorie erstellen" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Kanal erstellen" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Einladung erstellen" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Aktuelles Passwort" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Benutzerdefinierter Status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalisierung" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Taubgeschaltete Mitglieder" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Jeder" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Löschen" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Kanal löschen" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Nachricht löschen" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Rolle löschen" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Account deaktivieren" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Bitte nicht Stören" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Erledigt" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Identität bearbeiten" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Nachricht bearbeiten" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Bearbeite deine Identität" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-Mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Authentifizierungs-App aktivieren" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Desktopbenachrichtigungen aktivieren" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Neues Passwort eingeben." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Kanal betreten" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Code eingeben" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Gib dein aktuelles Passwort ein." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Gib deinen gewünschten Benutzernamen ein." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Externe Links können gefährlich sein!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Überprüfung fehlgeschlagen!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Finde eine Community basierend auf deinen Hobbys und Interessen." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Konzentriert" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Freundesliste" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Wiederherstellungscodes generieren" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Einladung wird generiert…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Zurück zum Login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Gehe zum Test-Server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Gruppenname" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hallo!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Startseite" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Ich bestätige, dass ich mindestens 18 Jahre alt bin." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Abwesend" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Unsichtbar" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Lade all deine Freunde und ein paar Bots ein und schmeiße eine große Party." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Einladungscode" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Andere einladen" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Einladender" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Einladungen" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Zu den neuen Nachrichten springen" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Springe zum Anfang" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kicken" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Nutzer kicken" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Nutzer Kicken" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Sprache" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Neueste" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Verlassen" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Gruppe verlassen" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Server verlassen" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Teile uns mit, wie wir unsere App verbessern können, indem du uns ein Feedback gibst." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Abmelden" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Aus allen anderen Sitzungen abmelden" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Login" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Personalisierung verwalten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Nachrichten verwalten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Nicknames verwalten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Berechtigungen verwalten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Rollen verwalten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Server verwalten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Webhooks verwalten" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Als gelesen markieren" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Als ungelesen markieren" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskerade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Mitglieder" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Erwähnen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Nur Erwähnungen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Nachricht" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Nachricht nicht geladen. Klicke zump Springen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Nachricht empfangen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Nachricht gesendet" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Nachricht wurde auf einer anderen Platform gesendet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Nachrichten" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mitglieder verschieben" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Mitglieder stummschalten" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Stumm" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Gemeinsame Freunde" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Gemeinsame Gruppen" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mein Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Meine Bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Neues Passwort" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Spitzname" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Keine" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Benachrichtigungen" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Aus" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Offizielle Kommunikation" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Offizieller Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Älteste" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "An" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Wenn es gelöscht wird, kann der Löschprozess nicht rückgängig gemacht werden." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Einstellungen öffnen" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Übersicht" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Passwort" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Berechtigungen" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Wähle einen Benutzernamen, unter dem du gefunden werden möchtest. Dieser kann später in deinen Benutzereinstellungen geändert werden." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Bitte bestätige diese Aktion mit der gewählten Methode." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Bitte gib deine E-Mail ein." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Bitte speichere diese an einem sicheren Ort." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Bitte scanne oder verwende den Token unten in deiner Authenticator-App." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Bitte wähle eine Methode zur Authentifizierung deiner Anfrage." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Datenschutzerklärung" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Nachrichtenverlauf lesen" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Grund" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Wiederherstellungscode" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrieren" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Freundschaftsanfrage ablehnen" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevanz" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Authenticator entfernen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Avatar entfernen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Freund entfernen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Antworten" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Antworte" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Melden" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Nachricht melden" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Server melden" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Benutzer melden" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Bestätigung erneut senden" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Zurücksetzen" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Passwort zurücksetzen" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Token zurücksetzten" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rollenname" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Rollen" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Speichern" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "In Notizen speichern" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notizen" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Sprache auswählen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Einbettungen senden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Nachrichten senden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Anhang" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Anhänge" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Serverbeschreibung" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servername" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sitzungen" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Einstellungen" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Mehrere Personen schreiben…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Töne" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Quellcode" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Sprechen" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Funktionsvorschlag einreichen" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Feedback einreichen" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Unterstütze das Projekt durch Spenden - Vielen Dank!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Nutzungsbedingungen" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Textkanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Thema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Das ist der Anfang deiner Konversation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Dies ist der Anfang deiner Notizen." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Der:die Nutzer:in hat dich blockiert." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout-Mitglieder" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Blockierung aufheben" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Dateien hochladen" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Benutzer" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Nutzer ist dem Sprachkanal beigetreten" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Nutzer hat den Sprachkanal verlassen" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Benutzerverwaltung" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Nutzereinstellungen" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nutzername" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Überprüfung deines Kontos…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Kanal ansehen" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Zeige aktuell aktive Bugmeldungen hier an." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Ältere Aktualisierungen anzeigen" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Wiederherstellungscodes anzeigen" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Du schaust dir ältere Nachrichten an" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Sprachkanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Wir haben dir eine Bestätigungs-E-Mail geschickt. Bitte warte bis zu 10 Minuten, bis sie ankommt." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Willkommen bei" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Willkommen!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Du kannst auch mit der rechten Maustaste auf das Benutzersymbol oben links klicken oder mit der linken Maustaste darauf klicken, wenn du bereits auf der Hauptseite bist." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Du kannst es später wieder öffnen, aber es wird auf beiden Seiten verschwinden." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Hier kannst du Probleme melden und Vorschläge einbringen." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Sie können diese Aktion nicht rückgängig machen." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Du hast nicht die nötige Berechtigung dazu, Nachrichten in diesem Kanal zu senden." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Du kannst nicht mehr auf dein Konto zugreifen, wenn du dich nicht an den Support wendest - deine Daten werden jedoch nicht gelöscht." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Du wirst nicht erneut beitreten können, außer du wirst wieder eingeladen." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Dein Konto wurde bestätigt!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Deine Wiederherstellungscodes" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/dev/messages.po b/packages/client/components/i18n/catalogs/dev/messages.po new file mode 100644 index 00000000..0c999127 --- /dev/null +++ b/packages/client/components/i18n/catalogs/dev/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 16:36-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: dev\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "🤓🤓🤓:" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/el/messages.po b/packages/client/components/i18n/catalogs/el/messages.po new file mode 100644 index 00000000..ce613e56 --- /dev/null +++ b/packages/client/components/i18n/catalogs/el/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: el\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 άτομο αντέδρασε" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Σχετικά" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Αποδοχή αιτήματος φιλίας" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Προσθήκη φίλου" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Όλα τα Μηνύματα" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Είστε ήδη φίλοι με αυτόν τον χρήστη." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Εμφάνιση" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Ανάθεση Ρόλων" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Εφαρμογή Επαληθευτή" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Εμβλήματα" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Αποκλεισμός" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Αποκλεισμός μέλους" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Αποκλεισμός Μελών" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Αποκλεισμοί" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Αποκλεισμός χρήστη" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Αποκλεισμένα" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Αποκλεισμένος Χρήστης" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug Tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Ακύρωση" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Ακύρωση αιτήματος φιλίας" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Αδύνατη η διαγραφή του λογαριασμού μέχρι όλοι οι σερβερς να διαγραφούν ή μεταφερθούν" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Αλλαγή" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Αλλαγή Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Αλλαγή Ψευδώνυμου" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Περιγραφή Καναλιού" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Όνομα Καναλιού" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Κανάλια" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Έλεγξε το mail σου!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Καθαρισμός κατάστασης" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Ρυθμίσεις Εφαρμογής" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Κλείσιμο" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Επιβεβαίωση" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Επιβεβαίωση Ενέργειας" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Σύνδεση" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Το περιεχόμενο παραβιάζει έναν ή περισσότερους νόμους" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Συνέχεια" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Συνομιλίες" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Αντιγραφή ID καναλιού" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Αντιγραφή ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Αντιγραφή συνδέσμου" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Αντιγραφή ID μηνύματος" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Αντιγραφή ID server" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Αντιγραφή κειμένου" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Αντιγραφή ID χρήστη" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Δημιουργία" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Δημιούργησε μια ομάδα" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Δημιούργησε ένα νέο bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Δημιούργησε ένα νέο ρόλο" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Δημιούργησε έναν λογαριασμό" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Δημιουργία κατηγορίας" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Δημιουργία καναλιού" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Δημιουργία πρόσκλησης" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Τρέχων Κωδικός πρόσβασης" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Προσαρμοσμένη κατάσταση" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Εξατομίκευση" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Κώφωση Μελών" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Προεπιλεγμένος" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Διαγραφή" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Διαγραφή καναλιού" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Διαγραφή μηνύματος" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Διαγραφή Ρόλου" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Απενεργοποίηση Λογαριασμού" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Μην Ενοχλείτε" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Έγινε" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Επεξεργασία ταυτότητας" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Επεξεργασία μηνύματος" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Ενεργοποίηση εφαρμογής επαληθευτή" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Ενεργοποίηση Ειδοποιήσεων Επιφάνειας εργασίας" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Εισήγαγε έναν νέο κωδικό πρόσβασης." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Είσοδος στο Κανάλι" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Εισήγαγε Κωδικό" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Εισήγαγε τον τρέχοντα κωδικό πρόσβασής σου." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Εισήγαγε το όνομα χρήστη σου." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Οι εξωτερικοί σύνδεσμοι μπορεί να είναι επικίνδυνοι!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Αποτυχία επαλήθευσης!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Σχόλια" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Βρες μια κοινότητα με βάση τα χόμπι ή τα ενδιαφέροντά σου." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Αφοσιωμένος" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Φίλοι" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Δημιούργησε Κωδικούς Ανάκτησης" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Δημιουργία πρόσκλησης…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Επιστροφή στην σύνδεση" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Πήγαινε στον server των δοκιμαστών" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Όνομα Ομάδας" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Γεια σου!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Αρχική" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Επιβεβαιώνω ότι είμαι τουλάχιστον 18 ετών." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Αδρανής" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Αόρατος" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Προσκάλεσε όλους σου τους φίλους, μερικά cool bots και κάνε ένα μεγάλο πάρτι." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Κωδικός Πρόσκλησης" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Πρόσκληση Άλλων" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Προσκλητής" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Προσκλήσεις" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Μετάβαση στο παρόν" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Μετάβαση στην αρχή" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Διωγμός" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Διωγμός μέλους" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Διωγμός Μελών" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Γλώσσα" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Πιο πρόσφατο" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Αποχώρηση" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Αποχώρηση από την ομάδα" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Αποχώρηση από τον server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Ενημέρωσέ μας πώς μπορούμε να βελτιώσουμε την εφαρμογή μας αφήνοντας σχόλια." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Αποσύνδεση" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Αποσύνδεση από όλες τις άλλες συνεδρίες" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Σύνδεση" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Διαχείριση Εξατομίκευσης" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Διαχείριση Μηνυμάτων" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Διαχείριση Ψευδώνυμων" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Διαχείριση Αδειών" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Διαχείριση Ρόλων" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Διαχείριση Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Διαχείριση Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Επισήμανση ως αναγνωσμένο" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Επισήμανση ως μη αναγνωσμένο" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Μεταμφίεση" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Μέλη" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Επισήμανση" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Μόνο Επισημάνσεις" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Μήνυμα" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Το μήνυμα δεν έχει φορτωθεί, κάνε κλικ για μετάβαση" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Εισερχόμενο Μήνυμα" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Εξερχόμενο Μήνυμα" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Το μήνυμα εστάλη από άλλη πλατφόρμα" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Μυνήματα" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Μετακίνηση Μελών" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Σίγαση Μελών" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Σε σίγαση" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Κοινοί Φίλοι" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Κοινές Ομάδες" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Ο Λογαριασμός μου" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Τα Bot μου" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Νέος Κωδικός πρόσβασης" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Ψευδώνυμο" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Τίποτα" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Ειδοποιήσεις" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Ανενεργό" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Επίσημη Επικοινωνία" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Επίσημος Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Αποσυνδεδεμένος" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OΚ" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Πιο παλιό" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ενεργό" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Μόλις διαγραφεί, δεν υπάρχει επιστροφή." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Συνδεδεμένος" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Άνοιγμα ρυθμίσεων" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Επισκόπηση" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Κωδικός πρόσβασης" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Άδειες" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Διάλεξε ένα όνομα χρήστη με το οποίο θέλεις οι άλλοι να μπορούν να σε βρίσκουν. Αυτό μπορεί να αλλάξει αργότερα στις ρυθμίσεις χρήστη σου." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Παρακαλώ επιβεβαίωσε αυτή την ενέργεια χρησιμοποιώντας την επιλεγμένη μέθοδο." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Παρακαλώ εισήγαγε το email σου." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Παρακαλώ να τα αποθηκεύσεις σε ασφαλές μέρος." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Παρακαλώ σάρωσε ή χρησιμοποιήστε το παρακάτω token στην εφαρμογή επαληθευτή σου." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Παρακαλώ διάλεξε μία μέθοδο για έλεγχο ταυτότητας του αιτήματος." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Πολιτική Απορρήτου" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Προφίλ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Ανάγνωση Ιστορικού Μηνυμάτων" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Αιτία" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Κωδικός Ανάκτησης" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Εγγραφή" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Απόρριψη αιτήματος φιλίας" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Σχετικότητα" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Αφαίρεση Επαληθευτή" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Αφαίρεση Avatar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Αφαίρεση φίλου" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Απάντηση" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Απαντάς σε" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Αναφορά" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Αναφορά μηνύματος" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Αναφορά server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Αναφορά χρήστη" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Επαναποστολή επαλήθευσης" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Επαναφορά" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Επαναφορά κωδικού πρόσβασης" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Όνομα Ρόλου" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Ρόλοι" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Αποθήκευση" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Αποθηκεύτηκε στις σημειώσεις σου" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Αποθηκευμένες Σημειώσεις" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Διάλεξε τη γλώσσα σου" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Αποστολή Ενσωματώσεων" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Αποστολή Μηνυμάτων" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Στάλθηκε ένα συνημμένο" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Στάλθηκαν πολλαπλά συνημμένα" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Περιγραφή Server" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Όνομα Server" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Συνεδρίες" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Ρυθμίσεις" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Αρκετά άτομα πληκτρολογούν…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Ήχοι" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Πηγαίος Κώδικας" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Ομιλία" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Υποβολή πρότασης χαρακτηριστικού" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Υποβολή σχολίων" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Υποστήριξε το εγχείρημα κάνοντας μια δωρεά - σε ευχαριστούμε!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Όροι Χρήσης" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Κανάλι Κειμένου" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Θέμα" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Αυτή είναι η αρχή της συζήτησής σου." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Αυτή είναι η αρχή των σημειώσεών σου." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Αυτός ο χρήστης σε έχει αποκλείσει." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout Μελών" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Κατάργηση αποκλεισμού χρήστη" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Μεταφόρτωση Αρχείων" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Χρήστης" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Χρήστης Συμμετάσχει στην Κλήση" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Χρήστης Έφυγε από την Κλήση" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Διαχείριση Χρηστών" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Ρυθμίσεις Χρήστη" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Όνομα χρήστη" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Επαληθεύουμε το λογαριασμό σου…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Βίντεο" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Προβολή Καναλιού" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Δες τις τρέχουσες αναφορές σφαλμάτων εδώ." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Προβολή παλαιότερων ενημερώσεων" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Προβολή Κωδικών Ανάκτησης" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Βλέπεις παλαιότερα μηνύματα" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Κανάλι Φωνής" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Σου έχουμε στείλει ένα email επαλήθευσης. Παρακαλώ περίμενε ως και 10 λεπτά για την παραλαβή." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Καλωσόρισες στο" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Καλωσόρισες!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Μπορείς επίσης να κάνεις δεξί κλικ στην εικόνα χρήστη που βρίσκεται επάνω αριστερά, ή αριστερό κλικ εάν είσαι ήδη στην αρχική." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Μπορείς να το ανοίξεις ξανά αργότερα, αλλά θα εξαφανιστεί και για τις δύο πλευρές." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Μπορείς να αναφέρεις προβλήματα και να συζητήσεις βελτιώσεις μαζί μας απευθείας εδώ." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Δεν μπορείς να αναιρέσεις αυτή την ενέργεια." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Δεν έχεις άδεια αποστολής μηνυμάτων σε αυτό το κανάλι." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Δε θα μπορείς να αποκτήσεις πρόσβαση στον λογαριασμό σου εκτός και αν επικοινωνήσεις με την υποστήριξη - ωστόσο, τα δεδομένα σου δεν θα διαγραφούν." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Δεν θα μπορείς να συμμετάσχεις ξανά αν δεν σε προσκαλέσουν ξανά." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ο λογαριασμός σου επαληθεύτηκε!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Οι κωδικοί ανάκτησής σου" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/en/messages.po b/packages/client/components/i18n/catalogs/en/messages.po new file mode 100644 index 00000000..94f845d3 --- /dev/null +++ b/packages/client/components/i18n/catalogs/en/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 16:36-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "[Yesterday at] LT" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "[Today at] LT" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "[Tomorrow at] LT" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "[Last] dddd [at] LT" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "dddd [at] LT" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "(changes are being saved…)" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "{0, plural, one {# blocked message} other {# blocked messages}}" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "{0, plural, one {# Member} other {# Members}}" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "{0, plural, one {Drop a file} other {Drop # files}}" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "{0} and {1} are typing…" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "{0} changed the channel description" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "{0} changed the channel icon" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "{0} emoji slots remaining" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "{0} is typing…" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "{0} joined" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "{0} left" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "{0} made {1} the new group owner" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "{0} pinned a message" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "{0} renamed the channel" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "{0} unpinned a message" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "{0} was added by {1}" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "{0} was banned" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "{0} was kicked" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "{0} was removed by {1}" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "{0}-{1} of {2}" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "{0}'s roles" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "{unknown} reacted" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "{usernames} and {unknown} others reacted" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "{usernames} reacted" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "<0/> has been added by <1/>" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "<0/> has been banned from the server" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "<0/> has been kicked from the server" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "<0/> has been removed by <1/>" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "<0/> joined the server" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "<0/> left the group" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "<0/> left the server" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "<0/> pinned <1/>" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "<0/> started a call" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "<0/> started a call that lasted " + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "<0/> transferred group ownership to <1/>" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "<0/> unpinned <1/>" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "<0/> updated the group description" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "<0/> updated the group icon " + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "<0/> updated the group name to <1>{0}" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "<0>Be careful!<1/>This is not the same as the link that was displayed:" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 person reacted" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "12 hours" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "24 hours" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "Able to access channels on this server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "Able to access this channel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "Able to speak in voice call" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "About" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "Accept" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Accept friend request" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "Acknowledge" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "Add" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "Add a new friend" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Add friend" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "Add friends to group" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "Add new members to the group" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "Add status text" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "Admin" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "Admin Panel" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Advanced" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "Affects all roles and users" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "All" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "All Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "Allow members to change name and avatar per-message" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "Allow others to add your bot to their servers from Discover" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Already friends with this user." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "American (MM/DD/YYYY)" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "An error occurred." + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "An internal error occurred. ({0})" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Appearance" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "Are you sure you want to clear your sessions?" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "Are you sure you want to delete this?" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "Are you sure you want to go to " + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "Are you sure you want to go to <0>{0}?" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "Assign lower-ranked roles to lower-ranking members" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assign Roles" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticator App" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "Back" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Badges" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "Ban evasion" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "Ban lower-ranking members from the server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban member" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "Ban Member" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ban Members" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "Ban user" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "Ban User" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "Banner" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bans" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Block user" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blocked" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blocked User" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "Browser Echo Cancellation" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "Browser Noise Supression" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug Tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "Busy" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "By creating this bot, you agree to the <0>Acceptable Use Policy." + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "By creating this server, you agree to the <0>Acceptable Use Policy." + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancel" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancel friend request" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "Cancel message" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Cannot delete account until servers are deleted or transferred" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "Cannot edit this message." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Change" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Change Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "Change identity on {0}" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "Change login email" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "Change login password" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Change Nickname" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "Change other members' nicknames" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "Change own avatar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "Change own nickname" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "Change username" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "Change your profile per-server" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "Changelog" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Channel Description" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "Channel Info" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Channel Name" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "Channel Settings" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Channels" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "Chat Input" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Check your mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "Choose username" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Clear status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "Click on the items below to learn more about different changes!" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "Click to show full description" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "Click to show spoiler" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Client Settings" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Close" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "Close chat" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "Close conversation with {0}?" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "Code" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "Configure a way to get back into your account in case your 2FA is lost" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "Configure one-time password authentication" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirm" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirm action" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Connect" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "Connect to voice channel" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "Connected" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "Connecting" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Content breaks one or more laws" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continue" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "Continue to app" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "Contribute a language" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversations" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "Copy category ID" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copy channel ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copy ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "Copy Invite URL" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copy link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "Copy Link" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copy message ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "Copy role ID" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copy server ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copy text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "Copy Token" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copy user ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "Copy webhook URL" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "Could not find what you requested." + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Create" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "Create a channel before inviting others!" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Create a group" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "Create a group or server" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Create a new bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "Create a new category" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "Create a new group" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Create a new role" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "Create a webhook" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Create an account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "Create and edit server roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "Create and edit webhooks" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "Create Bot" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Create category" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Create channel" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Create invite" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "Create Invite" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "Create invites for others to use" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "Create Role" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "Create server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "Create server emoji" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "Create Webhook" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "Created <0/>" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Current Password" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "Current Session" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Custom status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "Custom window frame" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Customisation" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "Dark" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "Database error, please contact support. ({0})" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "Deafen lower-ranking members in voice call" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Deafen Members" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Default" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "Default Permissions" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Delete" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "Delete {0}?" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "Delete Account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "Delete and pin messages sent by other members" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "Delete category" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Delete channel" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "Delete Channel" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "Delete Invite" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Delete message" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Delete Role" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "Delete Server" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "Description provided by {0}" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "Desktop" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "Developer Documentation" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Disable Account" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "Disable one-time password authenticator" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "Disabled" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "Disconnected" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "Discord RPC" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "Discover Upryzing" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "Display & Text" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "Display Name" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Do Not Disturb" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "Don't ask me again for " + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "Don't ask me again for <0>{0}" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "Don't notify others that you've left" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "Donate" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "Donate to Upryzing" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "Donated to Upryzing" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Done" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "Drugs or illegal goods" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "Edit {0}'s roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "Edit and delete channel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "Edit any permissions on the server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "Edit channel-specific role and default permissions" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "Edit Global Profile" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "Edit group name and description" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Edit identity" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "Edit Identity" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Edit message" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "Edit roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "Edit the server's information and settings" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Edit your identity" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "Edited" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "Effective <0/> (<1/>)" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "Emoji Name" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "Emoji Pack (affects your messages only)" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "Enable Authenticator" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Enable authenticator app" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Enable Desktop Notifications" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "Enable transparency glass/blur effects (slow on older machines)" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "Enter a new name for this session" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Enter a new password." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Enter Channel" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Enter Code" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Enter your current password." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "Enter your current password..." + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Enter your preferred username." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "External links can be dangerous!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "Extortion or blackmail" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "Extreme violence, gore or animal cruelty" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "Failed to process the image you provided." + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "Failed to send" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Failed to verify!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Find a community based on your hobbies or interests." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "Find your com<0/>munity,<1/>connect with the world." + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Focus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "For 1 hour" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "For 15 minutes" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "For 24 hours" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "For 3 hours" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "For 8 hours" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Friends" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "Fruit Salad" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "Generate a new token if it gets lost or compromised" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generate Recovery Codes" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generating invite…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "Get a new set of recovery codes" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "Get active recovery codes" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "Give feedback on Upryzing" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "Give us some detail" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Go back to login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "Go to account settings to edit your username" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "Go to the Upryzing Garden" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Go to the testers server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "Good" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "Grants {0} permissions and denies {1} permissions" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Group Name" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "Harassment or cyberbullying" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "Hardware Acceleration" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "Hear other people and see their video" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hello!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "Help contribute to an existing or new language" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "Helped translate Upryzing" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "Here is your new invite code: <0>{0}" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "High Contrast" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Home" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "I confirm that I am at least 18 years old." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "I understand the consequences" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Idle" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "Illegal hacking or cracking" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "Image by @fakurian" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "Impersonation" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "Instead of closing, Upryzing will hide in your tray." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "Interface Font" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisible" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invite all of your friends, some cool bots, and throw a big party." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "Invite Bot" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Invite Code" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invite Others" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Inviter" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invites" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "irrelevant joke badge 1" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "irrelevant joke badge 2" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "ISO Standard (YYYY-MM-DD)" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "Join" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "Join a server" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "Join call" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "Join the Upryzing Garden" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "Join the voice channel" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "Joined" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Jump to present" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Jump to the beginning" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "Keep as is" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kick" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "Kick lower-ranking members from the server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kick member" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "Kick Member" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kick Members" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Language" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "Last sync <0/>" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Latest" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "Launch Upryzing when you log into your computer." + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "Learn more about how to create bots on Upryzing." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Leave" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "Leave {0}?" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Leave group" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Leave server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "Let Lavender Desktop use its own custom titlebar." + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Let us know how we can improve our app by giving us feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "Light" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "Listen" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "Load file ({0})" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "Log In" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Log Out" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Log out of all other sessions" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "Log Out Other Sessions" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Login" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "Logs you out of all sessions except this device." + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "Malware or phishing" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "Manage Channel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Manage Customisation" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Manage Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Manage Nicknames" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Manage Permissions" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Manage Roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Manage Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Manage Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "Mark as mature" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "Mark as Mature" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Mark as read" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Mark as unread" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "Mark this channel as mature?" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Masquerade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Members" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mention" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "Mention Everyone" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "Mention everyone and online members inside the server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "Mention Roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "Mention specific roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "Mentions" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Mentions Only" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Message" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "Message {0}" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "Message Group Spacing" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Message not loaded, click to jump" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Message Received" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Message Sent" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "Message Size" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Message was sent on another platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Messaging" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "Minimise to Tray" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "Missing permission" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "Monochrome" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "Monospace Font" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "More Contrast" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Move Members" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "Move members between voice channels" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "Mute" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "Mute Channel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "Mute lower-ranking members in voice call" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Mute Members" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "Mute Server" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Muted" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "Muted until <0/>" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Mutual Friends" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Mutual Groups" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "My Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "My Bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "Name" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "Neutral" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "NEW" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "New messages since {0}" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "New Password" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "New to Upryzing" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "New to the server" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Nickname" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "No permissions set yet" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "Nobody here right now!" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "None" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "Normal" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "Not of minimum age to use the platform" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifications" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Off" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Official Communication" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Official Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Oldest" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "On" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Once it's deleted, there's no going back." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "One of the first 1000 users!" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "Only mentions will notify you" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "Open" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "Open {0}" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "Open channel settings" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "Open file" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "Open server settings" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Open settings" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "Other" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "Output Volume" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Overview" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "Pardon User" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Password" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "Pending" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissions" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "Pin message" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "Platform Moderator" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Please confirm this action using the selected method." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Please enter your email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "Please log in again." + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Please save these to a safe location." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Please scan or use the token below in your authenticator app." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Please select a method to authenticate your request." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "Please select a reason" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privacy Policy" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "Private Channel" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profile" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "Profile Bio" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "Promotes harm" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "Provided email or password is wrong." + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "Raid or spam attack" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "React" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "React to messages with emoji" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Read Message History" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "Read More" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "Read past messages sent in channel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "Read past messages sent in channels" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Reason" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "Receive notifications while the app is open and in the background." + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "Reconnecting" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Recovery Code" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "Recovery Codes" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "Reduced" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Register" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "Registered since <0/>" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Reject friend request" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevance" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "Remove all reactions" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Remove Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Remove Avatars" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Remove friend" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "Remove other members' avatars" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "Remove reaction" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "Rename" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "Rename Session" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "Rep Upryzing using Discord rich presence." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Reply" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Replying to" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Report" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Report message" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Report server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Report user" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "Resend" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Resend verification" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reset" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "Reset {0}'s token?" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Reset password" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "Reset Recovery Codes" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Reset Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "Responsibly disclosed security issues" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "Retry sending" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "Revenge or underage pornography" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "Review policy changes" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "Roadmap" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Role Name" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Save" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "Save file" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Save to your notes" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Saved Notes" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "Scams or fraud" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "Search for groups..." + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "Search for users..." + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "See what we're currently working on." + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "Select audio input" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "Select audio output" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "Select members to add" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Select your language" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "Send attachments to chat" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "Send email" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "Send embedded content such as link embeds or custom embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Send Embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Send Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "Send messages in channel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "Send messages in channels" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "Send Request" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "Sending..." + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "Sent" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "Sent {0} attachments" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sent an attachment" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sent multiple attachments" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "Server Avatar" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "Server Banner" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "Server Default" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Server Description" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "Server Icon" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "Server Identities" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Server Name" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "Server Roles" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessions" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "Set your status" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Settings" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "Setup one-time password authenticator" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "Setup recovery codes" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Several people are typing…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "Share camera or screen in voice call" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "Show corrections and suggestions as you type." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "Show send message button" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "Sign into Upryzing" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "Sign Up" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "Silent" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "someone@example.com" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "Something cool about me..." + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "Something is wrong with your request, {0}." + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "Something went wrong! Try again later." + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sounds" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Source Code" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "Spam or similar platform abuse" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Speak" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "Spellchecker" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "Start the call" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "Start with Computer" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "Status" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "Upryzing Desktop" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "Upryzing Developer" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "Lavender Desktop" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "Upryzing Founder" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Submit feature suggestion" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Submit feedback" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "Submit to Discover" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "Subscriptions" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "Suggest new Upryzing features on GitHub discussions." + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Support the project by donating - thank you!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "Switch to this voice channel" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "Sync appearance options, such as chosen emoji pack and message density." + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "Sync your chosen theme, colours, and any custom CSS." + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "Sync your currently chosen language." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "System" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "System message channels" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "Tell us what's wrong with this message" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "Tell us what's wrong with this server" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "Tell us what's wrong with this user" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "Temporarily prevent lower-ranking members from interacting" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Terms of Service" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Text Channel" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "That action had no effect." + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Theme" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "This bot is private and can only be added by the creator." + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "This channel is about..." + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "This channel is marked as mature." + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "This channel is not available in your region while we review options on legal compliance." + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "This content is not available in your region." + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "This feature is currently disabled." + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "This file type is not allowed." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "This group is too large, you can have up to {0} users." + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "This has already been sent." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "This is the start of your conversation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "This is the start of your notes." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "This message is already pinned." + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "This message is empty and has not been sent." + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "This server is about..." + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "This user has blocked you." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "This user is not part of the server and may already be banned" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "This username is already taken." + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "This username is not allowed." + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "This will invalidate the current token and stop any existing instances of the bot from running." + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout Members" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "Toggle main sidebar" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "Tonal Spot" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "Traditional (DD/MM/YYYY)" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "Trending GIFs" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Unblock user" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "Unknown Server" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "Unmark as mature" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "Unmark as Mature" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "Unmark this channel as mature?" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "Unmute Channel" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "Unmute Server" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "Unpin message" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "Unsent message" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "Unsolicited advertising or spam" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "Until I turn it back on" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Upload Files" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "Use a code or invite link" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "Use the graphics card to improve performance." + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "User" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "User Banned" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "User broke a certain rule…" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "User Joined" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "User Joined Call" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "User Kicked" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "User Left" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "User Left Call" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "User Management" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "User Settings" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "User's profile has inappropriate content" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Username" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "username#1234" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "Users will be asked to confirm their age before joining this channel." + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "Users will be asked to confirm their age before opening this channel." + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "Using default microphone" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "Using default speaker" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "Verified" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verifying your account…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "Version:" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "View Channel" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "View currently active bug reports here." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "View members" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "View older updates" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "View pinned messages" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "View Recovery Codes" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Viewing older messages" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "Voice" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Voice Channel" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "Voice Processing" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "Volume" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "Want to change username?" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "Webhook" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "Webhook Icon" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "Webhook Name" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Welcome to" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Welcome!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "Whether other users can edit these settings" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "With {0}" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "Would you like to create a new group or server?" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "Would you like to create a new server or join an existing one?" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "You agree that your bot is subject to the Acceptable Usage Policy." + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "You are about to ban {0}" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "You are about to kick {0}" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "You are banned from this server." + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "You can also click the gear icon in the bottom left." + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "You can also right-click the user icon in the top left, or left click it if you're already home." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "You can re-open it later, but it will disappear on both sides." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "You can report issues and discuss improvements with us directly here." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "You can't be in more than {0} servers, please leave one and try again." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "You can't have more than {0} channels on this server." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "You can't have more than {0} emojis on this server." + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "You cannot give yourself missing permissions." + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "You cannot join this call." + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "You cannot remove yourself." + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "You cannot report yourself." + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "You cannot timeout yourself." + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "You cannot undo this action." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "You clicked on \"{0}\"" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "You do not have permission to do this." + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "You don't have permission to send messages in this channel." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "You have this user blocked." + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "You muted this user." + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "You were logged out!" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "You will not receive any notifications" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "You won't be able to access your account unless you contact support - however, your data will not be deleted." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "You won't be able to rejoin unless you are re-invited." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "You're already part of this group." + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "You're already part of this server." + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "You've already sent a request to this user." + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "You've been invited to join this server.<0/>Would you like to join?" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "You've been signed out of Upryzing!" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "You've reached your personal bot limit." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "You've sent too many friend requests, the maximum is {0}" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Your account has been verified!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "Your discriminator change has been ratelimited, please try again later." + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "Your message is too long, please remove some characters and try again." + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Your recovery codes" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "Your role ranking is too low to take this action." + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "Your user has already been created? Try logging in again or refreshing the app." diff --git a/packages/client/components/i18n/catalogs/en_US/messages.po b/packages/client/components/i18n/catalogs/en_US/messages.po new file mode 100644 index 00000000..6cf937f2 --- /dev/null +++ b/packages/client/components/i18n/catalogs/en_US/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en_US\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 person reacted" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "About" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Add friend" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "All Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Already friends with this user." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Appearance" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assign Roles" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticator App" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "User photo" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Badges" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban member" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ban Members" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bans" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Block user" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blocked" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blocked User" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug Tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancel" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancel request" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Cannot delete account until servers are deleted or transferred" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Change" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Change Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Change Nickname" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Channel Description" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Channel Name" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Channels" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Check your mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Clear status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Client Settings" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Close" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirm" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirm action" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Connect" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Content breaks one or more laws" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continue" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversations" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copy channel ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copy ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copy link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copy message ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copy server ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copy text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copy user ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Create" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Create a group" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Create a new bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Create a new role" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Create an account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Create category" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Create channel" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Create invite" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Current Password" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Custom status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Customization" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Deafen Members" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Default" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Delete" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Delete channel" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Delete message" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Delete Role" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Disable Account" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Do Not Disturb" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Done" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Edit identity" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Edit message" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Enable authenticator app" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Enable Desktop Notifications" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Enter a new password." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Enter Channel" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Enter Code" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Enter your current password." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Enter your preferred username." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "External links can be dangerous!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Failed to verify!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Find a community based on your hobbies or interests." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Focus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Friends" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generate Backup Codes" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generating invite…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Go back to login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Go to the testers server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Group Name" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hello!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Home" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "I confirm that I am at least 18 years old." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Idle" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisible" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invite all of your friends, some cool bots, and throw a big party." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Invite Code" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invite Others" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Inviter" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invites" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Jump to present" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Jump to the beginning" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kick" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kick member" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kick Members" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Language" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Latest" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Leave" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Leave group" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Leave server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Let us know how we can improve our app by giving us feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Log Out" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Log out of all other sessions" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Login" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Manage Customization" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Manage Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Manage Nicknames" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Manage Permissions" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Manage Roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Manage Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Manage Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Mark as read" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Mark as unread" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Masquerade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Members" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mention" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Mentions Only" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Message" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Message not loaded, click to jump" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Message Received" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Message Sent" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Message was sent on another platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Move Members" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Mute Members" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Muted" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Mutual Friends" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Mutual Groups" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "My Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "My Bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "New Password" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Nickname" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "None" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifications" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Off" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Official Communication" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Official Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Oldest" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "On" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Once it's deleted, there's no going back." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Open settings" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Overview" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Password" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissions" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pick a username that you want people to be able to find you by, this can be changed later in settings." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Please confirm using a selected method." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Please enter your email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Please save these to a safe location." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Please scan or use the token below in your authentication app." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Please select a method to authenticate your request." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privacy Policy" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profile" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Read Message History" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Reason" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Recovery Code" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Register" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevance" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Remove Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Remove Avatars" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Remove friend" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Reply" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Replying to" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Report" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Report message" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Report server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Report user" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Resend verification" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reset" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Reset password" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Role Name" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Save" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Save to your notes" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Saved Notes" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Select your language" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Send Embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Send Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sent an attachment" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sent multiple attachments" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Server Description" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Server Name" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessions" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Settings" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Several people are typing…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sounds" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Source Code" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Speak" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Submit feature suggestion" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Submit feedback" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Support the project by donating - thank you!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Terms of Service" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Text Channel" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Theme" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "This is the start of your conversation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "This is where your notes start." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "This user has blocked you." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout Members" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Unblock user" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Upload Files" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "User" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "User Joined Call" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "User Left Call" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "User Management" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "User Settings" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Username" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verifying your account…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "View Channel" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "View currently active bug reports here." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "View older updates" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "View Recovery Codes" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Viewing older messages" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Voice Channel" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Please allow up to 10 minutes for it to arrive." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Welcome to" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Welcome!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "You can also right-click the user icon in the top left, or left click it if you're already home." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "You can re-open it later but it will disappear on both sides." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "You can report issues and discuss improvements with us directly here." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "You cannot undo this action." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "You don't have permission to send messages in this channel." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "You won't be able to access your account unless you contact support - however, your data will not be deleted." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "You won't be able to rejoin unless you are re-invited." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Your account has been verified!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Your recovery codes" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/enchantment/messages.po b/packages/client/components/i18n/catalogs/enchantment/messages.po new file mode 100644 index 00000000..c38e1abd --- /dev/null +++ b/packages/client/components/i18n/catalogs/enchantment/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: enchantment\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 !¡ᒷ∷ᓭ𝙹リ ∷ᒷᔑᓵℸᒷ↸" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "ᔑʖ𝙹⚍ℸ" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "ᔑᓵᓵᒷ!¡ℸ ⎓∷╎ᒷリ↸ ∷ᒷᑑ⚍ᒷᓭℸ" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "ᔑ↸↸ ⎓∷╎ᒷリ↸" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "ᔑ↸⍊ᔑリᓵᒷ↸" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "ᔑꖎꖎ ᒲᒷᓭᓭᔑ⊣ᒷᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "ᔑꖎ∷ᒷᔑ↸|| ⎓∷╎ᒷリ↸ᓭ ∴╎ℸ⍑ ℸ⍑╎ᓭ ⚍ᓭᒷ∷." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "ᔑ!¡!¡ᒷᔑ∷ᔑリᓵᒷ" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "ᔑᓭᓭ╎⊣リ ∷𝙹ꖎᒷᓭ" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "ᔑ⚍ℸ⍑ᒷリℸ╎ᓵᔑℸ𝙹∷ ᔑ!¡!¡" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "ᔑ⍊ᔑℸᔑ∷" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "ʖᔑ↸⊣ᒷᓭ" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "ʖᔑリ" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "ʖᔑリ ᒲᒷᒲʖᒷ∷" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "ʖᔑリ ᒲᒷᒲʖᒷ∷ᓭ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "ʖᔑリᓭ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "ʖꖎ𝙹ᓵꖌ ⚍ᓭᒷ∷" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "ʖꖎ𝙹ᓵꖌᒷ↸" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "ʖꖎ𝙹ᓵꖌᒷ↸ ⚍ᓭᒷ∷" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "ʖ𝙹ℸ" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "ʖ⚍⊣ ℸ∷ᔑᓵꖌᒷ∷" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "ᓵᔑリᓵᒷꖎ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "ᓵᔑリᓵᒷꖎ ⎓∷╎ᒷリ↸ ∷ᒷᑑ⚍ᒷᓭℸ" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "ᓵᔑリリ𝙹ℸ ↸ᒷꖎᒷℸᒷ ᔑᓵᓵ𝙹⚍リℸ ⚍リℸ╎ꖎ ᓭᒷ∷⍊ᒷ∷ᓭ ᔑ∷ᒷ ↸ᒷꖎᒷℸᒷ↸ 𝙹∷ ℸ∷ᔑリᓭ⎓ᒷ∷∷ᒷ↸" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "ᓵ⍑ᔑリ⊣ᒷ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "ᓵ⍑ᔑリ⊣ᒷ ᔑ⍊ᔑℸᔑ∷" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "ᓵ⍑ᔑリ⊣ᒷ リ╎ᓵꖌリᔑᒲᒷ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "ᓵ⍑ᔑリリᒷꖎ ↸ᒷᓭᓵ∷╎!¡ℸ╎𝙹リ" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "ᓵ⍑ᔑリリᒷꖎ リᔑᒲᒷ" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "ᓵ⍑ᔑリリᒷꖎᓭ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "ᓵ⍑ᒷᓵꖌ ||𝙹⚍∷ ᒲᔑ╎ꖎ!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "ᓵꖎᒷᔑ∷ ᓭℸᔑℸ⚍ᓭ" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "ᓵꖎ╎ᒷリℸ ᓭᒷℸℸ╎リ⊣ᓭ" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "ᓵꖎ𝙹ᓭᒷ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "ᓵ𝙹リ⎓╎∷ᒲ" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "ᓵ𝙹リ⎓╎∷ᒲ ᔑᓵℸ╎𝙹リ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "ᓵ𝙹リリᒷᓵℸ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "ᓵ𝙹リℸᒷリℸ ʖ∷ᒷᔑꖌᓭ 𝙹リᒷ 𝙹∷ ᒲ𝙹∷ᒷ ꖎᔑ∴ᓭ" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "ᓵ𝙹リℸ╎リ⚍ᒷ" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "ᓵ𝙹リ⍊ᒷ∷ᓭᔑℸ╎𝙹リᓭ" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "ᓵ𝙹!¡|| ᓵ⍑ᔑリリᒷꖎ ╎↸" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "ᓵ𝙹!¡|| ╎↸" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "ᓵ𝙹!¡|| ꖎ╎リꖌ" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "ᓵ𝙹!¡|| ᒲᒷᓭᓭᔑ⊣ᒷ ╎↸" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "ᓵ𝙹!¡|| ᓭᒷ∷⍊ᒷ∷ ╎↸" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "ᓵ𝙹!¡|| ℸᒷ/ℸ" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "ᓵ𝙹!¡|| ⚍ᓭᒷ∷ ╎↸" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "ᓵ∷ᒷᔑℸᒷ" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "ᓵ∷ᒷᔑℸᒷ ᔑ ⊣∷𝙹⚍!¡" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "ᓵ∷ᒷᔑℸᒷ ᔑ リᒷ∴ ʖ𝙹ℸ" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "ᓵ∷ᒷᔑℸᒷ ᔑ リᒷ∴ ∷𝙹ꖎᒷ" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "ᓵ∷ᒷᔑℸᒷ ᔑリ ᔑᓵᓵ𝙹⚍リℸ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "ᓵ∷ᒷᔑℸᒷ ᓵᔑℸᒷ⊣𝙹∷||" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "ᓵ∷ᒷᔑℸᒷ ᓵ⍑ᔑリリᒷꖎ" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "ᓵ∷ᒷᔑℸᒷ ╎リ⍊╎ℸᒷ" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "ᓵ⚍∷∷ᒷリℸ !¡ᔑᓭᓭ∴𝙹∷↸" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "ᓵ⚍ᓭℸ𝙹ᒲ ᓭℸᔑℸ⚍ᓭ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "ᓵ⚍ᓭℸ𝙹ᒲ╎ᓭᔑℸ╎𝙹リ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "↸ᒷᔑ⎓ᒷリ ᒲᒷᒲʖᒷ∷ᓭ" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "↸ᒷ⎓ᔑ⚍ꖎℸ" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "↸ᒷꖎᒷℸᒷ" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "↸ᒷꖎᒷℸᒷ ᓵ⍑ᔑリリᒷꖎ" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "↸ᒷꖎᒷℸᒷ ᒲᒷᓭᓭᔑ⊣ᒷ" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "↸ᒷꖎᒷℸᒷ ∷𝙹ꖎᒷ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "↸╎ᓭᔑʖꖎᒷ ᔑᓵᓵ𝙹⚍リℸ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "↸𝙹 リ𝙹ℸ ↸╎ᓭℸ⚍∷ʖ" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "↸𝙹リᒷ" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "ᒷ↸╎ℸ ╎↸ᒷリℸ╎ℸ||" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "ᒷ↸╎ℸ ᒲᒷᓭᓭᔑ⊣ᒷ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "ᒷ↸╎ℸ ||𝙹⚍∷ ╎↸ᒷリℸ╎ℸ||" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ᒷᒲᔑ╎ꖎ" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "ᒷᒲ𝙹⋮╎ᓭ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "ᒷリᔑʖꖎᒷ ᔑ⚍ℸ⍑ᒷリℸ╎ᓵᔑℸ𝙹∷ ᔑ!¡!¡" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "ᒷリᔑʖꖎᒷ ↸ᒷᓭꖌℸ𝙹!¡ リ𝙹ℸ╎⎓╎ᓵᔑℸ╎𝙹リᓭ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "ᒷリℸᒷ∷ ᔑ リᒷ∴ !¡ᔑᓭᓭ∴𝙹∷↸." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "ᒷリℸᒷ∷ ᓵ⍑ᔑリリᒷꖎ" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "ᒷリℸᒷ∷ ᓵ𝙹↸ᒷ" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "ᒷリℸᒷ∷ ||𝙹⚍∷ ᓵ⚍∷∷ᒷリℸ !¡ᔑᓭᓭ∴𝙹∷↸." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "ᒷリℸᒷ∷ ||𝙹⚍∷ !¡∷ᒷ⎓ᒷ∷∷ᒷ↸ ⚍ᓭᒷ∷リᔑᒲᒷ." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "ᒷ/ℸᒷ∷リᔑꖎ ꖎ╎リꖌᓭ ᓵᔑリ ʖᒷ ↸ᔑリ⊣ᒷ∷𝙹⚍ᓭ!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "⎓ᔑ╎ꖎᒷ↸ ℸ𝙹 ⍊ᒷ∷╎⎓||!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "⎓ᒷᒷ↸ʖᔑᓵꖌ" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "⎓╎リ↸ ᔑ ᓵ𝙹ᒲᒲ⚍リ╎ℸ|| ʖᔑᓭᒷ↸ 𝙹リ ||𝙹⚍∷ ⍑𝙹ʖʖ╎ᒷᓭ 𝙹∷ ╎リℸᒷ∷ᒷᓭℸᓭ." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "⎓𝙹ᓵ⚍ᓭ" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "⎓∷╎ᒷリ↸ᓭ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "⊣ᒷリᒷ∷ᔑℸᒷ ∷ᒷᓵ𝙹⍊ᒷ∷|| ᓵ𝙹↸ᒷᓭ" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "⊣ᒷリᒷ∷ᔑℸ╎リ⊣ ╎リ⍊╎ℸᒷ…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "⊣𝙹 ʖᔑᓵꖌ ℸ𝙹 ꖎ𝙹⊣╎リ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "⊣𝙹 ℸ𝙹 ℸ⍑ᒷ ℸᒷᓭℸᒷ∷ᓭ ᓭᒷ∷⍊ᒷ∷" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "⊣∷𝙹⚍!¡ リᔑᒲᒷ" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "⍑ᒷꖎꖎ𝙹!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "⍑𝙹ᒲᒷ" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "╎ ᓵ𝙹リ⎓╎∷ᒲ ℸ⍑ᔑℸ ╎ ᔑᒲ ᔑℸ ꖎᒷᔑᓭℸ 18 ||ᒷᔑ∷ᓭ 𝙹ꖎ↸." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "╎↸ꖎᒷ" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "╎リ⍊╎ᓭ╎ʖꖎᒷ" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "╎リ⍊╎ℸᒷ ᔑꖎꖎ 𝙹⎓ ||𝙹⚍∷ ⎓∷╎ᒷリ↸ᓭ, ᓭ𝙹ᒲᒷ ᓵ𝙹𝙹ꖎ ʖ𝙹ℸᓭ, ᔑリ↸ ℸ⍑∷𝙹∴ ᔑ ʖ╎⊣ !¡ᔑ∷ℸ||." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "╎リ⍊╎ℸᒷ ᓵ𝙹↸ᒷ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "╎リ⍊╎ℸᒷ 𝙹ℸ⍑ᒷ∷ᓭ" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "╎リ⍊╎ℸᒷ∷" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "╎リ⍊╎ℸᒷᓭ" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "⋮⚍ᒲ!¡ ℸ𝙹 !¡∷ᒷᓭᒷリℸ" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "⋮⚍ᒲ!¡ ℸ𝙹 ℸ⍑ᒷ ʖᒷ⊣╎リリ╎リ⊣" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "ꖌ╎ᓵꖌ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "ꖌ╎ᓵꖌ ᒲᒷᒲʖᒷ∷" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "ꖌ╎ᓵꖌ ᒲᒷᒲʖᒷ∷ᓭ" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "ꖎᔑリ⊣⚍ᔑ⊣ᒷ" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "ꖎᔑℸᒷᓭℸ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "ꖎᒷᔑ⍊ᒷ" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "ꖎᒷᔑ⍊ᒷ ⊣∷𝙹⚍!¡" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "ꖎᒷᔑ⍊ᒷ ᓭᒷ∷⍊ᒷ∷" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "ꖎᒷℸ ⚍ᓭ ꖌリ𝙹∴ ⍑𝙹∴ ∴ᒷ ᓵᔑリ ╎ᒲ!¡∷𝙹⍊ᒷ 𝙹⚍∷ ᔑ!¡!¡ ʖ|| ⊣╎⍊╎リ⊣ ⚍ᓭ ⎓ᒷᒷ↸ʖᔑᓵꖌ." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "ꖎ𝙹⊣ 𝙹⚍ℸ" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "ꖎ𝙹⊣ 𝙹⚍ℸ 𝙹⎓ ᔑꖎꖎ 𝙹ℸ⍑ᒷ∷ ᓭᒷᓭᓭ╎𝙹リᓭ" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "ꖎ𝙹⊣╎リ" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "ᒲᔑリᔑ⊣ᒷ ᓵ⚍ᓭℸ𝙹ᒲ╎ᓭᔑℸ╎𝙹リ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "ᒲᔑリᔑ⊣ᒷ ᒲᒷᓭᓭᔑ⊣ᒷᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "ᒲᔑリᔑ⊣ᒷ リ╎ᓵꖌリᔑᒲᒷᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "ᒲᔑリᔑ⊣ᒷ !¡ᒷ∷ᒲ╎ᓭᓭ╎𝙹リᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "ᒲᔑリᔑ⊣ᒷ ∷𝙹ꖎᒷᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "ᒲᔑリᔑ⊣ᒷ ᓭᒷ∷⍊ᒷ∷" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "ᒲᔑリᔑ⊣ᒷ ∴ᒷʖ⍑𝙹𝙹ꖌᓭ" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "ᒲᔑ∷ꖌ ᔑᓭ ∷ᒷᔑ↸" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "ᒲᔑ∷ꖌ ᔑᓭ ⚍リ∷ᒷᔑ↸" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "ᒲᔑᓭᑑ⚍ᒷ∷ᔑ↸ᒷ" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "ᒲᒷᒲʖᒷ∷ᓭ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "ᒲᒷリℸ╎𝙹リ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "ᒲᒷリℸ╎𝙹リᓭ 𝙹リꖎ||" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "ᒲᒷᓭᓭᔑ⊣ᒷ" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "ᒲᒷᓭᓭᔑ⊣ᒷ リ𝙹ℸ ꖎ𝙹ᔑ↸ᒷ↸, ᓵꖎ╎ᓵꖌ ℸ𝙹 ⋮⚍ᒲ!¡" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "ᒲᒷᓭᓭᔑ⊣ᒷ ∷ᒷᓵᒷ╎⍊ᒷ↸" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "ᒲᒷᓭᓭᔑ⊣ᒷ ᓭᒷリℸ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "ᒲᒷᓭᓭᔑ⊣ᒷ ∴ᔑᓭ ᓭᒷリℸ 𝙹リ ᔑリ𝙹ℸ⍑ᒷ∷ !¡ꖎᔑℸ⎓𝙹∷ᒲ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "ᒲᒷᓭᓭᔑ⊣╎リ⊣" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "ᒲ𝙹⍊ᒷ ᒲᒷᒲʖᒷ∷ᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "ᒲ⚍ℸᒷ ᒲᒷᒲʖᒷ∷ᓭ" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "ᒲ⚍ℸᒷ↸" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "ᒲ⚍ℸ⚍ᔑꖎ ⎓∷╎ᒷリ↸ᓭ" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "ᒲ⚍ℸ⚍ᔑꖎ ⊣∷𝙹⚍!¡ᓭ" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "ᒲ|| ᔑᓵᓵ𝙹⚍リℸ" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "ᒲ|| ʖ𝙹ℸᓭ" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "リᒷ∴ !¡ᔑᓭᓭ∴𝙹∷↸" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "リ╎ᓵꖌリᔑᒲᒷ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "リ𝙹リᒷ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "リ𝙹ℸ╎⎓╎ᓵᔑℸ╎𝙹リᓭ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "𝙹⎓⎓" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "𝙹⎓⎓╎ᓵ╎ᔑꖎ ᓵ𝙹ᒲᒲ⚍リ╎ᓵᔑℸ╎𝙹リ" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "𝙹⎓⎓╎ᓵ╎ᔑꖎ ᓭᒷ∷⍊ᒷ∷" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "𝙹⎓⎓ꖎ╎リᒷ" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "𝙹ꖌ" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "𝙹ꖎ↸ᒷᓭℸ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "𝙹リ" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "𝙹リᓵᒷ ╎ℸ'ᓭ ↸ᒷꖎᒷℸᒷ↸, ℸ⍑ᒷ∷ᒷ'ᓭ リ𝙹 ⊣𝙹╎リ⊣ ʖᔑᓵꖌ." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "𝙹リꖎ╎リᒷ" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "𝙹!¡ᒷリ ᓭᒷℸℸ╎リ⊣ᓭ" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "𝙹⍊ᒷ∷⍊╎ᒷ∴" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "!¡ᔑᓭᓭ∴𝙹∷↸" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "!¡ᒷ∷ᒲ╎ᓭᓭ╎𝙹リᓭ" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "!¡╎ᓵꖌ ᔑ ⚍ᓭᒷ∷リᔑᒲᒷ ℸ⍑ᔑℸ ||𝙹⚍ ∴ᔑリℸ !¡ᒷ𝙹!¡ꖎᒷ ℸ𝙹 ʖᒷ ᔑʖꖎᒷ ℸ𝙹 ⎓╎リ↸ ||𝙹⚍ ʖ||. ℸ⍑╎ᓭ ᓵᔑリ ʖᒷ ᓵ⍑ᔑリ⊣ᒷ↸ ꖎᔑℸᒷ∷ ╎リ ||𝙹⚍∷ ⚍ᓭᒷ∷ ᓭᒷℸℸ╎リ⊣ᓭ." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "!¡ꖎᒷᔑᓭᒷ ᓵ𝙹リ⎓╎∷ᒲ ℸ⍑╎ᓭ ᔑᓵℸ╎𝙹リ ⚍ᓭ╎リ⊣ ℸ⍑ᒷ ᓭᒷꖎᒷᓵℸᒷ↸ ᒲᒷℸ⍑𝙹↸." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "!¡ꖎᒷᔑᓭᒷ ᒷリℸᒷ∷ ||𝙹⚍∷ ᒷᒲᔑ╎ꖎ." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "!¡ꖎᒷᔑᓭᒷ ᓭᔑ⍊ᒷ ℸ⍑ᒷᓭᒷ ℸ𝙹 ᔑ ᓭᔑ⎓ᒷ ꖎ𝙹ᓵᔑℸ╎𝙹リ." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "!¡ꖎᒷᔑᓭᒷ ᓭᓵᔑリ 𝙹∷ ⚍ᓭᒷ ℸ⍑ᒷ ℸ𝙹ꖌᒷリ ʖᒷꖎ𝙹∴ ╎リ ||𝙹⚍∷ ᔑ⚍ℸ⍑ᒷリℸ╎ᓵᔑℸ𝙹∷ ᔑ!¡!¡." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "!¡ꖎᒷᔑᓭᒷ ᓭᒷꖎᒷᓵℸ ᔑ ᒲᒷℸ⍑𝙹↸ ℸ𝙹 ᔑ⚍ℸ⍑ᒷリℸ╎ᓵᔑℸᒷ ||𝙹⚍∷ ∷ᒷᑑ⚍ᒷᓭℸ." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "!¡∷╎⍊ᔑᓵ|| !¡𝙹ꖎ╎ᓵ||" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "!¡∷𝙹⎓╎ꖎᒷ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "∷ᒷᔑ↸ ᒲᒷᓭᓭᔑ⊣ᒷ ⍑╎ᓭℸ𝙹∷||" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "∷ᒷᔑᓭ𝙹リ" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "∷ᒷᓵ𝙹⍊ᒷ∷|| ᓵ𝙹↸ᒷ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "∷ᒷ⊣╎ᓭℸᒷ∷" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "∷ᒷ⋮ᒷᓵℸ ⎓∷╎ᒷリ↸ ∷ᒷᑑ⚍ᒷᓭℸ" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "∷ᒷꖎᒷ⍊ᔑリᓵᒷ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "∷ᒷᒲ𝙹⍊ᒷ ᔑ⚍ℸ⍑ᒷリℸ╎ᓵᔑℸ𝙹∷" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "∷ᒷᒲ𝙹⍊ᒷ ᔑ⍊ᔑℸᔑ∷ᓭ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "∷ᒷᒲ𝙹⍊ᒷ ⎓∷╎ᒷリ↸" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "∷ᒷ!¡ꖎ||" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "∷ᒷ!¡ꖎ||╎リ⊣ ℸ𝙹" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "∷ᒷ!¡𝙹∷ℸ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "∷ᒷ!¡𝙹∷ℸ ᒲᒷᓭᓭᔑ⊣ᒷ" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "∷ᒷ!¡𝙹∷ℸ ᓭᒷ∷⍊ᒷ∷" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "∷ᒷ!¡𝙹∷ℸ ⚍ᓭᒷ∷" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "∷ᒷᓭᒷリ↸ ⍊ᒷ∷╎⎓╎ᓵᔑℸ╎𝙹リ" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "∷ᒷᓭᒷℸ" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "∷ᒷᓭᒷℸ !¡ᔑᓭᓭ∴𝙹∷↸" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "∷ᒷᓭᒷℸ ℸ𝙹ꖌᒷリ" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "∷𝙹ꖎᒷ リᔑᒲᒷ" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "∷𝙹ꖎᒷᓭ" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "ᓭᔑ⍊ᒷ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "ᓭᔑ⍊ᒷ ℸ𝙹 ||𝙹⚍∷ リ𝙹ℸᒷᓭ" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "ᓭᔑ⍊ᒷ↸ リ𝙹ℸᒷᓭ" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "ᓭᒷꖎᒷᓵℸ ||𝙹⚍∷ ꖎᔑリ⊣⚍ᔑ⊣ᒷ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "ᓭᒷリ↸ ᒷᒲʖᒷ↸ᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "ᓭᒷリ↸ ᒲᒷᓭᓭᔑ⊣ᒷᓭ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "ᓭᒷリℸ ᔑリ ᔑℸℸᔑᓵ⍑ᒲᒷリℸ" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "ᓭᒷリℸ ᒲ⚍ꖎℸ╎!¡ꖎᒷ ᔑℸℸᔑᓵ⍑ᒲᒷリℸᓭ" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "ᓭᒷ∷⍊ᒷ∷ ↸ᒷᓭᓵ∷╎!¡ℸ╎𝙹リ" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "ᓭᒷ∷⍊ᒷ∷ リᔑᒲᒷ" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "ᓭᒷᓭᓭ╎𝙹リᓭ" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "ᓭᒷℸℸ╎リ⊣ᓭ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "ᓭᒷ⍊ᒷ∷ᔑꖎ !¡ᒷ𝙹!¡ꖎᒷ ᔑ∷ᒷ ℸ||!¡╎リ⊣…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "ᓭ𝙹⚍リ↸ᓭ" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "ᓭ𝙹⚍∷ᓵᒷ ᓵ𝙹↸ᒷ" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "ᓭ!¡ᒷᔑꖌ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "ᓭ⚍ʖᒲ╎ℸ ⎓ᒷᔑℸ⚍∷ᒷ ᓭ⚍⊣⊣ᒷᓭℸ╎𝙹リ" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "ᓭ⚍ʖᒲ╎ℸ ⎓ᒷᒷ↸ʖᔑᓵꖌ" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "ᓭ⚍!¡!¡𝙹∷ℸ ℸ⍑ᒷ !¡∷𝙹⋮ᒷᓵℸ ʖ|| ↸𝙹リᔑℸ╎リ⊣ - ℸ⍑ᔑリꖌ ||𝙹⚍!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "ℸᒷ∷ᒲᓭ 𝙹⎓ ᓭᒷ∷⍊╎ᓵᒷ" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "ℸᒷ/ℸ ᓵ⍑ᔑリリᒷꖎ" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "ℸ⍑ᒷᒲᒷ" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "ℸ⍑╎ᓭ ╎ᓭ ℸ⍑ᒷ ᓭℸᔑ∷ℸ 𝙹⎓ ||𝙹⚍∷ ᓵ𝙹リ⍊ᒷ∷ᓭᔑℸ╎𝙹リ." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "ℸ⍑╎ᓭ ╎ᓭ ℸ⍑ᒷ ᓭℸᔑ∷ℸ 𝙹⎓ ||𝙹⚍∷ リ𝙹ℸᒷᓭ." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "ℸ⍑╎ᓭ ⚍ᓭᒷ∷ ⍑ᔑᓭ ʖꖎ𝙹ᓵꖌᒷ↸ ||𝙹⚍." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "ℸ╎ᒲᒷ𝙹⚍ℸ ᒲᒷᒲʖᒷ∷ᓭ" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "⚍リʖꖎ𝙹ᓵꖌ ⚍ᓭᒷ∷" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "⚍!¡ꖎ𝙹ᔑ↸ ⎓╎ꖎᒷᓭ" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "⚍ᓭᒷ∷" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "⚍ᓭᒷ∷ ⋮𝙹╎リᒷ↸ ᓵᔑꖎꖎ" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "⚍ᓭᒷ∷ ꖎᒷ⎓ℸ ᓵᔑꖎꖎ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "⚍ᓭᒷ∷ ᒲᔑリᔑ⊣ᒷᒲᒷリℸ" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "⚍ᓭᒷ∷ ᓭᒷℸℸ╎リ⊣ᓭ" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "⚍ᓭᒷ∷リᔑᒲᒷ" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "⍊ᒷ∷╎⎓||╎リ⊣ ||𝙹⚍∷ ᔑᓵᓵ𝙹⚍リℸ…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "⍊╎↸ᒷ𝙹" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "⍊╎ᒷ∴ ᓵ⍑ᔑリリᒷꖎ" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "⍊╎ᒷ∴ ᓵ⚍∷∷ᒷリℸꖎ|| ᔑᓵℸ╎⍊ᒷ ʖ⚍⊣ ∷ᒷ!¡𝙹∷ℸᓭ ⍑ᒷ∷ᒷ." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "⍊╎ᒷ∴ 𝙹ꖎ↸ᒷ∷ ⚍!¡↸ᔑℸᒷᓭ" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "⍊╎ᒷ∴ ∷ᒷᓵ𝙹⍊ᒷ∷|| ᓵ𝙹↸ᒷᓭ" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "⍊╎ᒷ∴╎リ⊣ 𝙹ꖎ↸ᒷ∷ ᒲᒷᓭᓭᔑ⊣ᒷᓭ" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "⍊𝙹╎ᓵᒷ ᓵ⍑ᔑリリᒷꖎ" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "∴ᒷ'⍊ᒷ ᓭᒷリℸ ||𝙹⚍ ᔑ ⍊ᒷ∷╎⎓╎ᓵᔑℸ╎𝙹リ ᒷᒲᔑ╎ꖎ. !¡ꖎᒷᔑᓭᒷ ᔑꖎꖎ𝙹∴ ⚍!¡ ℸ𝙹 10 ᒲ╎リ⚍ℸᒷᓭ ⎓𝙹∷ ╎ℸ ℸ𝙹 ᔑ∷∷╎⍊ᒷ." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "∴ᒷʖ⍑𝙹𝙹ꖌᓭ" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "∴ᒷꖎᓵ𝙹ᒲᒷ ℸ𝙹" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "∴ᒷꖎᓵ𝙹ᒲᒷ!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "||𝙹⚍ ᓵᔑリ ᔑꖎᓭ𝙹 ∷╎⊣⍑ℸ-ᓵꖎ╎ᓵꖌ ℸ⍑ᒷ ⚍ᓭᒷ∷ ╎ᓵ𝙹リ ╎リ ℸ⍑ᒷ ℸ𝙹!¡ ꖎᒷ⎓ℸ, 𝙹∷ ꖎᒷ⎓ℸ ᓵꖎ╎ᓵꖌ ╎ℸ ╎⎓ ||𝙹⚍'∷ᒷ ᔑꖎ∷ᒷᔑ↸|| ⍑𝙹ᒲᒷ." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "||𝙹⚍ ᓵᔑリ ∷ᒷ-𝙹!¡ᒷリ ╎ℸ ꖎᔑℸᒷ∷, ʖ⚍ℸ ╎ℸ ∴╎ꖎꖎ ↸╎ᓭᔑ!¡!¡ᒷᔑ∷ 𝙹リ ʖ𝙹ℸ⍑ ᓭ╎↸ᒷᓭ." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "||𝙹⚍ ᓵᔑリ ∷ᒷ!¡𝙹∷ℸ ╎ᓭᓭ⚍ᒷᓭ ᔑリ↸ ↸╎ᓭᓵ⚍ᓭᓭ ╎ᒲ!¡∷𝙹⍊ᒷᒲᒷリℸᓭ ∴╎ℸ⍑ ⚍ᓭ ↸╎∷ᒷᓵℸꖎ|| ⍑ᒷ∷ᒷ." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "||𝙹⚍ ᓵᔑリリ𝙹ℸ ⚍リ↸𝙹 ℸ⍑╎ᓭ ᔑᓵℸ╎𝙹リ." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "||𝙹⚍ ↸𝙹リ'ℸ ⍑ᔑ⍊ᒷ !¡ᒷ∷ᒲ╎ᓭᓭ╎𝙹リ ℸ𝙹 ᓭᒷリ↸ ᒲᒷᓭᓭᔑ⊣ᒷᓭ ╎リ ℸ⍑╎ᓭ ᓵ⍑ᔑリリᒷꖎ." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "||𝙹⚍ ∴𝙹リ'ℸ ʖᒷ ᔑʖꖎᒷ ℸ𝙹 ᔑᓵᓵᒷᓭᓭ ||𝙹⚍∷ ᔑᓵᓵ𝙹⚍リℸ ⚍リꖎᒷᓭᓭ ||𝙹⚍ ᓵ𝙹リℸᔑᓵℸ ᓭ⚍!¡!¡𝙹∷ℸ - ⍑𝙹∴ᒷ⍊ᒷ∷, ||𝙹⚍∷ ↸ᔑℸᔑ ∴╎ꖎꖎ リ𝙹ℸ ʖᒷ ↸ᒷꖎᒷℸᒷ↸." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "||𝙹⚍ ∴𝙹リ'ℸ ʖᒷ ᔑʖꖎᒷ ℸ𝙹 ∷ᒷ⋮𝙹╎リ ⚍リꖎᒷᓭᓭ ||𝙹⚍ ᔑ∷ᒷ ∷ᒷ-╎リ⍊╎ℸᒷ↸." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "||𝙹⚍∷ ᔑᓵᓵ𝙹⚍リℸ ⍑ᔑᓭ ʖᒷᒷリ ⍊ᒷ∷╎⎓╎ᒷ↸!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "||𝙹⚍∷ ∷ᒷᓵ𝙹⍊ᒷ∷|| ᓵ𝙹↸ᒷᓭ" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/eo/messages.po b/packages/client/components/i18n/catalogs/eo/messages.po new file mode 100644 index 00000000..905495ee --- /dev/null +++ b/packages/client/components/i18n/catalogs/eo/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: eo\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 homo reagis" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Pri" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Amikigi" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Altnivela" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Ĉiuj mesaĝoj" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Tiu uzanto jam estas amiko." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aspekto" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Atribui rolojn" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aŭtentiga apo" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Uzantobildo" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Ŝildoj" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Forbari" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Forbari membron" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Forbari membrojn" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Forbaroj" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloki uzanton" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blokita" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokita uzanto" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Roboto" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Cimspurilo" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Nuligi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Nuligi amikiĝpeton" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Ŝanĝi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Ŝanĝi uzantobildon" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Ŝanĝi kromnomon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanala priskribo" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanala nomo" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanaloj" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Kontrolu vian retpoŝton!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Forigi statotekston" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Klientaj agordoj" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Fermi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Konfirmi" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Konfirmi agon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Konekti" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Enhavo rompas unu leĝon aŭ pliajn" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Daŭrigi" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Konversacioj" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopii identigilon de kanalo" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopii identigilon" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopii ligilon" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopii identigilon de mesaĝo" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopii identigilon de servilo" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopii tekston" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopii identigilon de uzanto" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Krei" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Krei grupon" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Krei novan roboton" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Krei novan rolon" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Krei konton" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Krei kategorion" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Krei kanalon" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Krei invitilon" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Aktuala pasvorto" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Propra statoteksto" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Proprigo" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Surdigi membrojn" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Defaŭlto" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Forigi" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Forigi kanalon" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Forigi mesaĝon" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Forigi rolon" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Malvalidigi konton" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Neĝenenda" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Farite" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Redakti identecon" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Redakti mesaĝon" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Retpoŝto" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoĝioj" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Ebligi aŭtentigan apon" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Ebligi labortablajn sciigojn" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Enigu novan pasvorton." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Eniri kanalon" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Enigi kodon" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Entajpu vian aktualan pasvorton." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Enigu vian uzantnomon." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Eksteraj ligiloj povas esti danĝeraj!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Konfirmado malsukcesis!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Prikomentoj" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Trovu komunumon baze sur viaj ŝatokupoj aŭ interesoj." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Koncentriĝanta" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amikoj" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Krei restarigajn kodojn" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generado de invitilo…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Reiri al ensalutado" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Iri al la servilo de testantoj" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nomo de la grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Saluton!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Ĉefpaĝo" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Mi konfirmas, ke mi aĝas almenaŭ 18 jarojn." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Senokupa" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Nevidebla" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invitu viajn amikojn, kelkajn mojosajn robotojn, kaj faru grandan feston." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Invitkodo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Inviti aliulojn" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitanto" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitoj" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Salti aktualen" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Salti al komenco" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Forpeli" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Forpeli membron" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Forpeli membrojn" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Lingvo" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Plej laste" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Foriri" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Forlasi grupon" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Forlasi servilon" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Sciigu nin kiel ni povas plibonigi nian apon, prikomentante al ni." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Elsaluti" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Elsalutigi ĉiujn aliajn seancojn" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Ensaluti" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Mastrumi proprigon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Mastrumi mesaĝojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Mastrumi kromnomojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Mastrumi permesojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Mastrumi rolojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Mastrumi servilon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Mastrumi rethokojn" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marki legita" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marki nelegita" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskado" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membroj" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mencii" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Nur mencioj" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Mesaĝi" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mesaĝo ne ŝargiĝis, alklaku por salti" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Riceviĝo de mesaĝo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Sendado de mesaĝo" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mesaĝo sendiĝis ĉe alia platformo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mesaĝado" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Movi membrojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silentigi membrojn" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silentigita" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Reciprokaj amikoj" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Reciprokaj grupoj" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mia konto" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Miaj robotoj" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nova pasvorto" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Kromnomo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Neniuj" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Sciigoj" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Malŝaltita" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Oficiala komunikaĵo" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Oficiala servilo" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Elreta" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Okej" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Plej malnove" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ŝaltita" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Vi ne povos malfari la forigon." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Enreta" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Malfermi agordojn" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Superrigardo" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Pasvorto" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permesoj" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Elektu uzantonomon, per kiu oni povos trovi vin. Ĉi tio povas esti ŝanĝita poste en viaj uzantaj agordoj." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Bonvolu konfirmi ĉi tiun agon per la elektita metodo." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Bonvolu enigi vian retpoŝtadreson." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Bonvolu konservi ĉi tiujn en sekura loko." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Bonvolu skani aŭ uzi la ĵetonon ĉi-sube en via aŭtentiga aplikaĵo." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Bonvolu elekti metodon por aŭtentigi vian peton." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privateca politiko" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profilo" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Legi mesaĝan historion" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Kialo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Restariga kodo" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registriĝi" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Laŭ rilateco" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Forigi aŭtentigilon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Forigi uzantobildojn" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Malamikigi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Respondi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Respondante al" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Raporti" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Raporti mesaĝon" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Raporti servilon" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Raporti uzanton" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Resendi kontroladon" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Restarigi" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Restarigi pasvorton" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rola nomo" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roloj" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Konservi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Konservi en viajn notojn" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Konservitaj notoj" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Elektu vian lingvon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Sendi enkorpigaĵojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Sendi mesaĝojn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sendiĝis alkroĉaĵo" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sendiĝis pluraj alkroĉaĵoj" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Priskribo de la servilo" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servila nomo" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Seancoj" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Agordoj" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Pluraj homoj skribas…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sonoj" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Fontkodo" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Paroli" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Sendi sugeston por funkcio" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Alsendi prikomentojn" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Subtenu la projekton per donaco - dankon!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Servokondiĉoj" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Teksta kanalo" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Etoso" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Jen la komenco de via konversacio." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Jen la komenco de viaj notoj." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Tiu uzanto blokis vin." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Tempolimigi membrojn" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Malbloki uzanton" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Alŝuti dosierojn" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Uzanto" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Aliĝo de uzanto en voĉbabilejon" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Forlaso de uzanto el voĉbabilejo" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Uzanta administrado" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Uzantaj agordoj" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Uzantnomo" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Konfirmado de via konto…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Vidi kanalon" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Rigardu nune aktivajn cimraportojn ĉi tie." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Vidi malnovajn ĝisdatigojn" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Vidi restarigajn kodojn" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Vi rigardas mesaĝojn pli malnovajn" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Voĉa kanalo" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Ni sendis al vi konfirman retpoŝton. Bonvolu atendi ĝis 10 minutoj por ĝia alveno." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Rethokoj" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Bonvenon al" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Bonvenon!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "La agordoj estas alireblaj per dekstra (aŭ maldekstra en la ĉefpaĝo) alklako je via profilbildo supra-maldekstre." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Vi povas remalfermi ĝin poste, sed ĝi malaperos ĉe ambaŭ uzantoj." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Vi povas raporti problemojn kaj rekte priparoli plibonigojn kun ni ĉi tie." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Vi ne povas malfari tion." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Vi ne havas permeson sendi mesaĝojn en ĉi tiu kanalo." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Vi ne povos aliri vian konton krom se vi kontaktos subtenon - tamen viaj datumoj ne estos forigitaj." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Vi ne povos re-aliĝi, krom se vi reinvitiĝas." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Via konto estas konfirmita!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Viaj restarigaj kodoj" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/es/messages.po b/packages/client/components/i18n/catalogs/es/messages.po new file mode 100644 index 00000000..34f7e032 --- /dev/null +++ b/packages/client/components/i18n/catalogs/es/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: es\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 persona ha reaccionado" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Acerca de" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Aceptar solicitud" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Añadir amigo" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avanzado" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Todos los mensajes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Ya eres amigo de este usuario." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Apariencia" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Asignar roles" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplicación de autenticación" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Insignias" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Expulsar" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Expulsar miembro" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Expulsar miembros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Expulsiones" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloquear usuario" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloqueado" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Usuario Bloqueado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Rastreador de errores" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancelar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancelar solicitud de amistad" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "No se puede eliminar la cuenta hasta que tus servidores sean eliminados o transferidos a otra propiedad" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Cambiar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Cambiar avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Cambiar apodo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descripción del canal" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nombre del canal" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canales" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "¡Revisa tu correo electrónico!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Borrar estado personalizado" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Ajustes del cliente" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Cerrar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirmar" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirmar acción" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Conectar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "El contenido inflinge una o varias leyes" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuar" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversaciones" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copiar ID del canal" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copiar ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copiar enlace" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copiar ID del mensaje" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copiar ID del servidor" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copiar texto" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copiar ID de usuario" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Crear" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Crear un grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Crear un nuevo bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Crear un nuevo rol" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Crear una cuenta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Crear categoría" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Crear canal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Crear invitación" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Contraseña actual" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Establecer estado personalizado" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalización" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Ensordecer miembros" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Por defecto" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Eliminar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Eliminar canal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Eliminar mensaje" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Eliminar Rol" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Deshabilitar cuenta" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "No molestar" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Hecho" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Editar perfil del servidor" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Editar mensaje" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Edita tu identidad" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Correo electrónico" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Habilitar aplicación de autenticación" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Habilitar notificaciones de escritorio" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Inteoduce una nueva contraseña." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entrar al canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Introducir el código" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Introduce tu contraseña actual." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Introduce tu nombre de usuario preferido." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "¡Los enlaces externos pueden ser peligrosos!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "¡Error al verificar!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Comentarios" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Encuentra una comunidad basada en tus hobbies o intereses." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Concentrado" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amigos" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generar códigos de recuperación" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generando invitación…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Volver al inicio de sesión" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Servidor de pruebas" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nombre del grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "¡Hola!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Inicio" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Confirmo que tengo al menos 18 años." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Ausente" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisible" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invita a todos tus amigos, algunos bots geniales y organiza una gran fiesta." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Código de invitación" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invitar a otros" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitador" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitaciones" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Ir al actual" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Ir al principio" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Expulsar temporalmente" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Expulsar miembro temporalmente" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Expulsar miembros temporalmente" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Idioma" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Último" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Salir" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Abandonar grupo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Abandonar servidor" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Haznos saber cómo podemos mejorar nuestra aplicación dándonos tu opinión." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Cerrar sesión" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Cerrar sesión en todas las otras sesiones" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Iniciar sesión" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Administrar personalización" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Administrar mensajes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Administrar apodos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gestionar permisos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Administrar roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Administrar servidor" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Administrar Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marcar como leído" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marcar como no leído" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Camuflarse" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Miembros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mencionar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Solo menciones" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Enviar mensaje" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mensaje no cargado, click para verlo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mensaje recibido" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mensaje enviado" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "El mensaje ha sido enviado en otra plataforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mensajería" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mover Miembros" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silenciar Miembros" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silenciado" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amigos en común" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grupos en común" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mi cuenta" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mis bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nueva contraseña" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Apodo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ninguno" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notificaciones" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Desactivado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicado oficial" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servidor oficial" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Desconectado" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Aceptar" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Más antiguo" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Activado" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Una vez borrado, no hay vuelta atrás." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Conectado" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Abrir ajustes" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "General" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Contraseña" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permisos" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Elige un nombre de usuario por el cual quieres que la gente pueda encontrarte. Puedes cambiarlo más tarde desde la configuración." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Por favor, confirma esta acción utilizando el método seleccionado." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Introduce tu correo electrónico." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Guárdalos en un lugar seguro." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Escanea o usa el código en tu aplicación de autenticación." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Por favor, seleccione un método para autenticar su solicitud." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Política de privacidad" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Perfil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Leer historial de mensajes" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Motivo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Código de recuperación" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrarse" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rechazar solicitud" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevancia" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Eliminar autenticador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Eliminar avatares" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Eliminar amigo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Responder" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Respondiendo a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Reportar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Reportar mensaje" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Reportar servidor" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Reportar usuario" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Reenviar verificación" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reiniciar" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Restablecer contraseña" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Restablecer Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nombre de rol" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Guardar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Guardar en tus notas" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notas guardadas" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Seleccionar idioma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Enviar embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Enviar mensajes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Envió un archivo" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Envió múltiples archivos" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descripción del servidor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nombre del servidor" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesiones" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Ajustes" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Varias personas están escribiendo…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sonidos" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Código fuente" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Hablar" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Sugerir nuevas características" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Enviar comentarios" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Apoya el proyecto donando - ¡gracias!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Términos de servicio" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de texto" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Este es el comienzo de la conversación." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Este es el comienzo de tus notas." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Este usuario te ha bloqueado." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Aislar temporalmente a miembros" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Desbloquear usuario" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Subir archivos" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Usuario" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Un usuario se ha unido a la llamada" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Un usuario ha abandonado la llamada" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestión de usuarios" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Ajustes de usuario" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nombre de usuario" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verificando tu cuenta…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vídeo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Ver canal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Ver informes de errores activos actualmente." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Ver actualizaciones anteriores" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Ver códigos de recuperación" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Estás viendo mensajes antiguos" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de voz" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Te hemos enviado un correo de verificación. Por favor, espera hasta 10 minutos para que llegue." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Bienvenido a" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "¡Bienvenido!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "También puedes hacer clic derecho en el icono de usuario en la parte superior izquierda, o hacer clic izquierdo si ya estás en la página de inicio." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Puedes volver a abrirla más tarde, pero los mensajes enviados anteriormente se perderán para ambos." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Puedes informar de problemas y comentarnos tus sugerencias aquí." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "No puedes deshacer esta acción." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "No tienes permiso para enviar mensajes en este canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "No podrás acceder a tu cuenta a menos que te pongas en contacto con el soporte - sin embargo, tus datos no serán eliminados." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "No podrás volver a entrar a menos que te inviten de nuevo." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "¡Tu cuenta ha sido verificada!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Tus códigos de recuperación" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/es_419/messages.po b/packages/client/components/i18n/catalogs/es_419/messages.po new file mode 100644 index 00000000..fd278f09 --- /dev/null +++ b/packages/client/components/i18n/catalogs/es_419/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: es_419\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "Una persona ha reaccionado" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Acerca de" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Aceptar petición de amistad" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Añadir amigo" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avanzado" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Todos los mensajes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Ya eres amigo/a de este/a usuario/a." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Apariencia" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Asignar roles" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplicación de autenticación" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Insignias" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Banear" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Banear miembro" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banear miembros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Baneos" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloquear" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloqueado" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Usuario bloqueado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Rastreador de errores" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancelar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancelar solicitud" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "No se puede eliminar la cuenta hasta que los servidores sean eliminados o transferidos" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Cambiar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Cambiar avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Cambiar apodo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descripción del canal" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nombre del canal" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canales" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "¡Revisa tu correo electrónico!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Eliminar tu estado" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Ajustes del cliente" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Cerrar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirmar" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirmar acción" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Conectar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "El contenido viola una o más leyes" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuar" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversaciones" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copiar ID del canal" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copiar ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copiar enlace" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copiar ID del mensaje" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copiar ID del servidor" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copiar texto" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copiar ID de usuario" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Crear" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Crear un grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Crear un nuevo bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Crear un nuevo rol" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Crear una cuenta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Crear categoría" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Crear canal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Crear invitación" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Contraseña actual" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Estado personalizado" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalización" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Ensordecer miembros" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Por defecto" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Eliminar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Eliminar canal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Eliminar mensaje" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Eliminar rol" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Deshabilitar cuenta" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "No molestar" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Hecho" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Editar identidad" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Editar mensaje" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Editar tu identidad" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Correo electrónico" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Habilitar aplicación de autenticación" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Habilitar notificaciones de escritorio" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Ingresa una nueva contraseña." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entrar al canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Ingresa el código" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Ingresa tu contraseña actual." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Ingresa tu nombre de usuario." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "¡Los enlaces externos pueden ser peligrosos!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "¡Error al verificar!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Comentarios" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Descubre una comunidad que comparta tus aficiones o gustos." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Enfoque" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amigos" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generar códigos de recuperación" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generando invitación…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Regresar al inicio de sesión" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Servidor de pruebas" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nombre del grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "¡Hola!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Inicio" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Confirmo que tengo al menos 18 años." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Ausente" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisible" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invita a todos tus amigos, algunos bots divertidos, y organiza una fiesta inolvidable." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Código de invitación" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invitar a otros" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitador" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitaciones" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Ver lo más reciente" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Ver el principio" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Expulsar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Expulsar miembro" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Expulsar miembros" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Idioma" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Último" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Salir" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Salir del grupo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Salir del servidor" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Tu opinión es importante para nosotros. Ayúdanos a mejorar nuestra aplicación compartiendo tus sugerencias y comentarios." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Cerrar sesión" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Cerrar sesión en las demás sesiones" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Iniciar sesión" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gestionar personalización" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Gestionar mensajes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Gestionar apodos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gestionar permisos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Gestionar roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Gestionar servidor" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Gestionar webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marcar como leído" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marcar como no leído" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Camuflarse" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Miembros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mencionar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Solo menciones" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Enviar mensaje" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "El mensaje no ha cargado, haz clic para saltar" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mensaje recibido" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mensaje enviado" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "El mensaje ha sido enviado en otra plataforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mensajes" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mover miembros" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silenciar miembros" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silenciado" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amigos en común" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grupos en común" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mi cuenta" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mis bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nueva contraseña" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Apodo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ninguno" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notificaciones" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Desactivado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicado oficial" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servidor oficial" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Desconectado" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Aceptar" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Más antiguo" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Activado" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Una vez eliminado, no hay vuelta atrás." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "En línea" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Abrir ajustes" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "General" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Contraseña" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permisos" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Elige un nombre de usuario con el que quieras que te encuentren. Esto se puede cambiar más adelante en los ajustes." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Por favor, confirma esta acción utilizando el método seleccionado." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Ingresa tu correo electrónico." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Por favor, guardarlos en un lugar seguro." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Por favor, escanea o utiliza el código a continuación en tu aplicación de autenticación." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Por favor, selecciona un método para autenticar tu solicitud." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Política de privacidad" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Perfil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Leer historial de mensajes" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Razón" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Código de recuperación" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrarse" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rechazar petición de amistad" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevancia" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Eliminar autenticador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Eliminar avatares" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Eliminar amigo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Responder" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Respondiendo a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Denunciar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Reportar mensaje" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Reportar servidor" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Reportar usuario" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Reenviar verificación" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reiniciar" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Restablecer contraseña" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Restablecer Clave de acceso" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nombre del rol" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Guardar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Guardar en tus notas" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notas guardadas" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Escoge un idioma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Enviar embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Enviar mensajes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Envió un archivo adjunto" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Envió múltiples archivos adjuntos" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descripción del servidor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nombre del servidor" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesiones" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Ajustes" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Varias personas están escribiendo…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sonidos" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Código fuente" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Hablar" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Sugerir nuevas características" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Enviar comentarios" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Apoya el proyecto con tu donación. ¡Gracias!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Términos de servicio" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de texto" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Aquí empieza el canal." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Este es el comienzo de tus notas." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Este usuario te bloqueó." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Suspender miembros" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Desbloquear" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Subir archivos" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Usuario" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Un usuario se ha unido a la llamada" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Un usuario se ha ido de la llamada" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestión de usuarios" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Ajustes del usuario" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nombre de usuario" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verificando tu cuenta…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Ver canal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Mira reportes de errores activos aquí." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Ver actualizaciones anteriores" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Ver códigos de recuperación" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Estás viendo mensajes antiguos" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de voz" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Te hemos enviado un correo de verificación. Sé paciente, podría demorar hasta 10 minutos en llegar a tu bandeja de entrada." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Te damos la bienvenida a" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "¡Te damos la bienvenida!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "También puedes hacer clic derecho en el icono de usuario que está en la esquina superior izquierda, o hacer clic izquierdo si ya estás en el inicio." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Puedes volver a abrirlo más tarde, pero desaparecerá en ambos lados." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Puedes reportar problemas y comentarnos tus sugerencias directamente aquí." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "No puedes deshacer esta acción." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "No tienes permiso para enviar mensajes en este canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "No podrás acceder a tu cuenta a menos que te pongas en contacto con el soporte; sin embargo, tus datos no serán eliminados." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "No podrás reingresar a menos que recibas una invitación nueva." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "¡Tu cuenta ha sido verificada!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Tus códigos de recuperación" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/et/messages.po b/packages/client/components/i18n/catalogs/et/messages.po new file mode 100644 index 00000000..bdb7b62a --- /dev/null +++ b/packages/client/components/i18n/catalogs/et/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: et\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 inimene reageeris" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Umbes" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Aktsepteeri sõbrakutse" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Lisa sõber" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Edasijõudnud" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Kõik sõnumid" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Kasutaja on teie sõbralistis." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Välimus" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Rollide määramine" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Autentimise rakendus" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Tunnustused" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Keela" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Keela liige" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Keela liikmeid" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Keelud" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokeeri kasutaja" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blokeeritud" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokeeritud kasutaja" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Vigade jälgija" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Tühista" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Tühista sõbrakutse" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Kontot ei saa kustutada enne, kui serverid on kustutatud või üle antud" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Muuda" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Muuda avatari/kehastust" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Muuda hüüdnime" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanali kirjeldus" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanali nimi" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanalid" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Kontrolli oma postkasti!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Eemalda staatus" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Kliendisätted" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Sulge" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Kinnita" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Kinnita tegevus" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Ühendage" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Sisu rikub ühte või mitut seadust" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Jätka" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Vestlused" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopeeri kanali ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopeeri ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopeeri link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopeeri sõnumi ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopeeri serveri ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopeeri tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopeeri kasutaja ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Loo" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Loo grupp" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Loo uus bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Loo uus roll" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Loo kont" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Loo kategooria" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Loo kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Loo kutse" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Praegune parool" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Kohandatud staatus" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Kohandamine" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Summuta liikmeid" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Vaikimisi" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Kustuta" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Kustuta kanal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Kustuta sõnum" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Kustuta roll" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Keela konto" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Mitte segada" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Valmis" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Muuda identiteeti" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Muuda sõnumit" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Muuda oma identiteeti" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-post" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emodžid" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Luba autentimisrakendus" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Luba töölaua teavitused" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Sisestage uus parool." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Sisene kanalisse" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Sisestage kood" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Sisesta oma praegune parool." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Sisestage oma eelistatud kasutajanimi." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Välised lingid võivad olla pahatahtlikud!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Kinnitamine nurjus!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Tagasiside" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Leia kogukond, mis põhineb teie hobidel või huvidel." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fookus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Sõbrad" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Loo taastekoodid" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Loon kutset…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Mine tagasi sisse logima" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Mine testijate serverisse" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Grupi nimi" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Tere!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Kodu" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Ma kinnitan, et olen vähemalt 18 aastane." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Eemal" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Nähtamatu" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Kutsu kõik oma sõbrad, mõned lahedad robotid, ja viska suur pidu." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kutsekood" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Kutsu teisi" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Kutsuja" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Kutsed" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Liigu praeguste juurde" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Hüppa tagasi algusesse" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Viska välja" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Eemalda liige" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Eemalda liikmeid" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Keel" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Viimane" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Lahku" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Lahku grupist" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Lahku serverist" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Anna meile teada, kuidas me saame oma rakendust parandada, andes meile tagasisidet." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Logi välja" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Logi välja kõikidest teistest sessioonidest" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Logi sisse" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Kohanduste haldamine" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Halda sõnumeid" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Halda hüüdnimesid" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Õiguste haldamine" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Halda rolle" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Halda serverit" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Veebikonksude haldamine" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Märgi loetuks" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Märgi mitteloetuks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskeraad" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Liikmed" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mainitus" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Ainult mainitused" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Sõnum" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Sõnumit ei laaditud, klõpsa hüppamiseks" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Saabuv sõnum" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Saadetud sõnum" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Sõnum saadeti teisele platvormile" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Sõnumite saatmine" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Liiguta liikmeid" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Vaigista liikmeid" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Vaigistatud" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Ühised sõbrad" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Ühised grupid" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Minu kasutaja" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Minu botid" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Uus parool" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Hüüdnimi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Mitte ükski" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Teated" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Lülita välja" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Ametlik teatis" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Ametlik server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Võrgust väljas" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Vanim" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Lülita sisse" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Peale kustutamist tagasiteed kahjuks pole." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Kättesaadav" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Ava sätted" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Ülevaade" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Parool" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Õigused" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Vali kasutajanimi, millega inimesed saavad sind leida. Seda saab hiljem muuta sinu kasutaja seadetest." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Palun kinnita see toiming valitud meetodi abil." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Palun sisestage oma e-post." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Palun salvestage need turvalisse asukohta." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Palun skaneeri allolev kood või sisesta see autentimisrakendusse." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Valige oma taotluse autentimise meetod." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privaatsuspoliitika" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profiil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Loe sõnumi ajalugu" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Põhjus" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Taastamiskood" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registreeru" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Lükka sõbrakutse tagasi" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Asjakohasus" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Eemalda autentikaator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Eemalda avatare/kehastusi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Eemalda sõber" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Vasta" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Vastamine" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Aruanne" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Teata sõnumist" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Aruandeserver" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Aruande user" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Saada kinnituskood uuesti" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Lähtesta" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Muuda parool" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rolli nimi" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Rollid" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Salvesta" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Salvesta oma märkmete hulka" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Salvestatud märkmed" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Valige oma keel" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Saada manused" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Saada sõnumeid" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Saatis manuse" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Saatis mitu manust" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Serveri kirjeldus" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Serveri nimi" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessioonid" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Sätted" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Mitu inimest trükivad…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Helid" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Lähtekood (source)" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Räägi" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Saada soovitus" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Tagasiside edastamine" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Toetage projekti annetusega - aitäh!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Teenuse tingimused" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Tekstikanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Teema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Siit algab teie vestlus." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Siin on teie märkmete alguspunkt." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "See kasutaja on teid blokeerinud." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout liikmed" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Deblokeeri kasutaja" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Lae faile" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Kasutaja" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Kasutaja ühines helikõnega" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Kasutaja lahkus helikõnest" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Kasutajahaldus" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Kasutajasätted" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Kasutajanimi" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Teie konto kontrollimine…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Vaata kanaleid" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Vaata hetkel aktiivsete vigade listi siit." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Vaadake vanemaid värskendusi" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Taastekoodide Kuvamine" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Vaata vanemaid sõnumeid" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Helikanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Oleme sulle saatnud kinnituskirja e-posti teel. Palun oota kuni 10 minutit, et see kohale jõuaks." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Veebihookid" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Tere tulemast" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Tere tulemast!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Samuti on võimalik ekraani üleval vasakus nurgas vajutada paremat hiireklahvi kasutaja ikoonil või vasakut hiireklahvi kui koduvaade on ees." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Sa saad selle hiljem uuesti avada, kuid see kaob mõlemalt poolt." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Te võite teatada probleemidest ja arutada parandusi meiega otse siin." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Seda toimingut ei saa tagasi võtta." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Teil puudub õigus saata sõnumeid selles kanalis." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Sa ei saa oma kontole juurde pääseda, kui sa ei kontakteeru toeosakonnaga - siiski, sinu andmed ei kustutata." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Te ei saa uuesti ühineda kui teid pole uuesti kutsutud." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Teie konto on kinnitatud!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Teie taastekoodid" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/fa/messages.po b/packages/client/components/i18n/catalogs/fa/messages.po new file mode 100644 index 00000000..0d1e107e --- /dev/null +++ b/packages/client/components/i18n/catalogs/fa/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fa\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "۱ نفر واکنش نشان داد" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "درباره" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "درخواست دوستی را قبول کنید" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "دوست اضافه کن" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "پیشرفته" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "تمامی پیام ها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "شما در حال حاضر با این فرد دوست هستید." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "ظاهر" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "نقش ها را اختصاص دهید" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "برنامه احراز هویت" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "آواتار" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "مدالها" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "ممنوع کردن" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "ممنوع کردن عضو" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "ممنوع کردن اعضا" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "اخراج شده ها" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "مسدود کردن کاربر" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "مسدود شده ها" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "کاربرمسدود شده" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "ربات" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "ردیاب باگ" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "لغو" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "لغو درخواست دوستی" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "تا زمانی که سرورها حذف یا منتقل نشده باشند، نمی توان حساب را حذف کرد" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "تغییر دادن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "تغییر آواتار" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "تغییر لقب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "توضیحات کانال" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "نام کانال" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "کانال ها" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "ایمیل خود را چک کنید!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "حذف وضعیت" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "تنظیمات کلاینت" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "بستن" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "تایید" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "اقدام را تایید کنید" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "اتصال" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "محتوا یک یا چند قانون را نقض میکند" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "ادامه" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "مکالمه ها" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "کپی شناسه کانال" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "کپی شناسه" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "کپی لینک" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "کپی شناسه پیام" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "کپی شناسه سرور" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "کپی متن" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "کپی شناسه کاربر" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "ایجاد" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "ایجاد یک گروه" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "ایجاد یک ربات جدید" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "ایجاد یک نقش جدید" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "یک حساب کاربری ایجاد کنید" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "ایجاد دسته" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "ایجاد کانال" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "ایجاد دعوت" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "کلمه عبور فعلی" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "وضعیت سفارشی" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "سفارشی سازی" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "ناشنوا کردن اعضا" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "پیشفرض" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "حذف" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "حذف کانال" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "حذف پیام" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "حذف نقش" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "غیر فعال کردن حساب کاربری" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "مزاحم نشوید" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "انجام شده" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "ویرایش هویت" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "ویرایش پیام" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "هویت خود را ویرایش کنید" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ایمیل" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "ایموجی ها" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "فعال کردن برنامه احراز هویت" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "فعال کردن اعلانات دسکتاپ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "رمز عبور جدیدی وارد کنید." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "ورود به کانال" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "کد را وارد کنید" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "کلمه عبور فعلی خود را وارد کنید." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "نام کاربری دلخواه خود را وارد کنید." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "لینک های خارجی میتوانند خطرناک باشند!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "تأیید نشد!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "بازخورد" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "یک گروه را برحسب علایق خود بیابید." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "تمرکز" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "دوستان" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "ایجاد کدهای بازیابی" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "در حال ایجاد دعوت…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "به صفحه ورود برگردید" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "به گروه امتحان کننده ها بروید" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "نام گروه" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "سلام!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "خانه" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "من تایید می کنم که حداقل 18 سال دارم." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "بیکار" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "مخفی" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "همه دوستان خود و بات های باحال را دعوت کنید و جشن تشکیل دهید." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "کد دعوت" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "دعوت کردن دیگران" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "دعوت کننده" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "دعوت ها" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "مشاهده پیام های حال" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "برگشت به آغاز" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "بیرون کردن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "بیرون کردن عضو" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "اخراج کردن اعضا" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "زبان" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "جدید ترین ها" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "خروج" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "خروج از گروه" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "خروج از سرور" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "با ارسال بازخورد به ما اطلاع دهید چگونه می توانیم اپلیکیشن خود را ارتقا دهیم." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "خروج" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "خروج از تمامی نشست های دیگر" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "ورود" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "مدیریت سفارشی سازی" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "مدیریت پیام ها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "مدیریت لقب ها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "مدیریت مجوزها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "مدیریت نقش ها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "مدیریت سرور" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "مدیریت وب هوک ها" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "به عنوان خوانده شده علامت بزن" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "به عنوان خوانده نشده علامت گذاری کنید" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "تغییر هویت" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "اعضا" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "اشاره کردن" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "فقط ذکر شده ها" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "پیام" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "پیام بارگیری نشد، برای پرش کلیک کنید" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "پیام دریافت شد" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "پیام ارسال شد" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "پیام در پلتفرم دیگری ارسال شد" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "پیام رسانی" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "جابجایی اعضا" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "بی صدا کردن اعضا" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "بی صدا شده" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "دوستان مشترک" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "گروه های مشترک" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "حساب کاربری من" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "ربات های من" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "رمز عبور جدید" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "لقب" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "هیچ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "اعلانات" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "خاموش" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "ارتباط رسمی" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "سرور رسمی" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "آفلاین" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "باشه" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "قدیمی ترین ها" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "روشن" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "زمانی که حذف شود، دیگر هیچ بازگشتی نیست." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "آنلاین" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "تنظیمات را باز کنید" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "مرور" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "کلمه عبور" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "دسترسی ها" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "نام کاربری را انتخاب کنید که می‌خواهید افراد بتوانند شما را با آن پیدا کنند. این می تواند بعداً در تنظیمات کاربر شما تغییر کند." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "لطفاً این عمل را با استفاده از روش انتخاب شده تأیید کنید." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "لطفا ایمیل خود را وارد کنید." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "لطفاً اینها را در مکانی امن ذخیره کنید." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "لطفاً رمز زیر را در برنامه احراز هویت خود اسکن یا استفاده کنید." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "لطفاً روشی را برای تأیید اعتبار درخواست خود انتخاب کنید." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "سیاست حفظ حریم خصوصی" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "پروفایل" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "خواندن تاریخچه پیام" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "دلیل" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "کد بازیابی" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "ثبت نام" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "رد درخواست دوستی" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "ارتباط" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "حذف روش احراز هویت" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "حذف آواتار ها" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "حذف دوست" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "پاسخ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "در حال پاسخ دادن به" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "گزارش دادن" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "گزارش پیام" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "گزارش سرور" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "گزارش کاربر" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "ارسال مجدد لینک تایید" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "بازنشانی کنید" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "بازنشانی رمز عبور" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "بازنشانی توکن" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "نام نقش" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "نقش ها" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "ذخیره" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "ذخیره در یادداشت ها" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "یادداشت های ذخیره شده" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "زبان خود را انتخاب کنید" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "ارسال جاسازی ها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "ارسال پیام ها" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "ارسال یک ضمیمه" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "ارسال چند ضمیمه" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "توضیحات سرور" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "نام سرور" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "نشست ها" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "تنظیمات" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "چند نفر درحال نوشتن هستند.…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "صداها" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "کد منبع" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "صحبت" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "ارائه پیشنهاد ویژگی" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "بازخورد ارائه دهید" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "با اهدای پول از ما حمایت کنید - با تشکر!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "شرایط خدمات" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "کانال متنی" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "تم" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "این آغاز مکالمه شماست." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "این شروع یادداشت شماست." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "این کاربر شما را مسدود کرده است." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "گرفتن دسترسی اعضا" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "رفع انسداد کاربر" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "بارگذاری فایل ها" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "کاربر" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "کاربر به تماس پیوست" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "کاربر از تماس خارج شد" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "مدیریت کاربر" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "تنظیمات کاربری" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "نام کاربری" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "در حال تأیید حساب شما…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "ویدیو" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "مشاهده کانال" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "گزارش‌های اشکال فعال فعلی را اینجا مشاهده کنید." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "مشاهده به روز رسانی های قدیمی تر" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "مشاهده کدهای بازیابی" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "مشاهده پیام های قدیمی تر" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "کانال صوتی" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "ما یک ایمیل تأیید برای شما ارسال کرده ایم. لطفا حداکثر 10 دقیقه فرصت دهید تا برسد." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "وب هوک ها" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "خوش آمدید به" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "خوش آمدید!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "شما همچنین میتوانید روی تصویر بالا سمت چپ کلیک راست کنید یا اگر در حال حاضر در قسمت خانه هستید، کلیک چپ کنید." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "می توانید بعداً دوباره آن را باز کنید اما از برای هر دو طرف ناپدید می شود." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "شما در اینجا می توانید مشکلات را گزارش دهید و با ما برای بهبود عملکرد به طور مستقیم ارتباط کنید." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "شما نمی توانید این عمل را واگرد کنید." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "شما مجوز ارسال پیام در این کانال را ندارید." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "شما نمی توانید به حساب خود دسترسی پیدا کنید مگر اینکه با پشتیبانی تماس بگیرید - با این حال، داده های شما حذف نمی شوند." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "شما قادر به عضویت مجدد نیستید مگر اینکه مجدداً دعوت شوید." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "حساب شما تایید شد!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "کدهای بازیابی شما" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/fi/messages.po b/packages/client/components/i18n/catalogs/fi/messages.po new file mode 100644 index 00000000..76fc4bf3 --- /dev/null +++ b/packages/client/components/i18n/catalogs/fi/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fi\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 käyttäjä reagoi" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Tietoa" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Hyväksy kaverippyyntö" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Lisää kaveri" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Edistynyt" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Kaikki viestit" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Olet jo ystäviä tämän käyttäjän kanssa." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Ulkoasu" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Aseta rooleja" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Valtuutussovellus" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Kuva" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Merkit" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Anna porttikielto" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Anna porttikielto käyttäjälle" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Anna porttikieltoja jäsenille" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Porttikiellot" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Estä käyttäjä" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Estetty" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Estetty käyttäjä" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Botti" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bugiseuranta" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Peruuta" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Peru ystäväpyyntö" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Ei voi poistaa tiliä ellei palvelimia poisteta tai siirretä" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Muuta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Vaihda Profiilikuva" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Vaihda nimimerkkiä" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanavan kuvaus" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanavan nimi" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanavat" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Tarkista sähköpostisi!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Tyhjennä tila" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Asiakasohjelman asetukset" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Sulje" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Vahvista" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Vahvista toimenpide" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Yhdistä" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Sisältö rikkoo yhtä tai useampaa lakia" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Jatka" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Keskustelut" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopioi kanavan tunniste" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopioi tunniste" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopioi linkki" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopioi viestin tunniste" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopioi palvelimen tunniste" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopioi teksti" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopioi käyttäjän tunniste" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Luo" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Luo ryhmä" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Luo uusi botti" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Luo uusi rooli" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Luo tili" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Luo luokka" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Luo kanava" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Luo kutsu" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Nykyinen salasana" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Mukautettu tila" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Kustomointi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Kuurouta jäseniä" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Oletus" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Poista" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Poista kanava" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Poista viesti" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Poista rooli" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Poista tili käytöstä" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Älä häiritse" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Valmis" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Muokkaa identiteettiä" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Muokkaa viestiä" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Muokkaa tunnistettasi" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Sähköpostiosoite" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojit" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Ota valtuutussovellus käyttöön" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Ota työpöytäilmoitukset käyttöön" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Anna uusi salasana." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Liity kanavalle" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Syötä koodi" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Anna nykyinen salasanasi." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Anna haluamasi käyttäjätunnuksesi." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Ulkoiset linkit voivat olla vaarallisia!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Vahistus epäonnistui!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Palaute" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Löydä harrastuksiisi tai kiinnostuksen kohteisiisi pohjautuva yhteisö." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Keskity" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Kaverit" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Luo palautuskoodit" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Luodaan kutsua…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Palaa kirjautumiseen" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Mene testaajien palvelimeen" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Ryhmän nimi" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hei!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Koti" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Vahvistan olevani vähintään 18 vuotta vanha." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Toimeton" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Näkymätön" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Kutsu kaikki ystäväsi, muutama botti, ja aloita juhlat." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kutsukoodi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Kutsu muita" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Kutsuja" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Kutsut" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Siirry nykyisiin" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Hyppää alkuun" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Erota" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Erota jäsen" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Erota jäseniä" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Kieli" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Viimeisin" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Poistu" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Poistu ryhmästä" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Poistu palvelimelta" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Kerro meille, miten voimme parantaa sovellustamme antamalla palautetta." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Kirjaudu ulos" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Kirjaudu ulos kaikista muista istunnoista" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Kirjaudu sisään" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Hallinnoi mukautusta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Hallitse viestejä" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Hallinnoi käyttäjänimiä" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Hallinnoi oikeuksia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Hallitse rooleja" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Hallitse Palvelinta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Hallinnoi webhookeja" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Merkitse luetuksi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Merkkaa lukemattomaksi" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Naamio" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Jäsenet" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mainitse" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Vain maininnat" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Viesti" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Viestiä ei ole ladattu, klikkaa hypätäksesi" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Viesti vastaanotettu" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Viesti lähetetty" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Viesti on lähetetty toisella alustalla" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Viestintä" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Siirrä jäseniä" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Hiljennä jäseniä" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Mykistetty" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Yhteiset kaverit" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Yhteiset ryhmät" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Minun tilini" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Omat bottini" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Uusi salasana" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Nimimerkki" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ei mitään" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Ilmoitukset" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Pois päällä" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Virallinen viestintä" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Virallinen Palvelin" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Ei paikalla" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Vanhin" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Päällä" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Kun se on poistettu, ei ole paluuta." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Paikalla" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Avaa asetukset" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Yleiskatsaus" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Salasana" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Oikeudet" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Valitse käyttäjätunnus, jolla haluat ihmisten löytävän sinut. Tätä voi muuttaa myöhemmin asetuksissa." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Vahvista tämä toimenpide valitulla menetelmällä." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Anna sähköpostiosoitteesi." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Talleta nämä turvalliseen paikkaan." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Skannaa tai käytä alla olevaa tokenia todennussovelluksessasi." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Valitse menetelmä pyyntösi valtuuttamiseksi." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Tietosuojakäytäntö" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profiili" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Lue viestihistoriaa" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Syy" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Palautuskoodi" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Rekisteröidy" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Hylkää kaveripyyntö" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevanssi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Poista Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Poista Profiilikuva" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Poista kaveri" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Vastaa" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Vastataan käyttäjälle" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Ilmoita" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Ilmoita viesti" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Ilmoita palvelin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Ilmoita käyttäjä" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Lähetä vahvistus uudelleen" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Nollaa" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Nollaa salasana" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Nollaa todennustunnus" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Roolin nimi" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roolit" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Tallenna" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Tallenna muistiinpanoihisi" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Tallennetut muistiinpanot" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Valitse kieli" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Lähetä upotteita" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Lähetä viestejä" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Liitä tiedosto" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Liitä monta tiedostoa" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Palvelimen kuvaus" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Palvelimen nimi" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Istunnot" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Asetukset" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Useat ihmiset kirjoittavat…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Äänet" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Lähdekoodi" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Puhu" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Lähetä ominaisuusehdotus" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Lähetä palautetta" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Tue projektia lahjoittamalla - kiitos!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Käyttöehdot" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Tekstikanava" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Teema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Tämä on keskustelusi alku." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Tämä on muistiinpanojesi alku." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Tämä käyttäjä on estänyt sinut." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Mykistä jäseniä" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Poista käyttäjän esto" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Lähetä tiedostoja" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Käyttäjä" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Käyttäjä liittyi puheluun" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Käyttäjä poistui puhelusta" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Käyttäjien hallinta" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Käyttäjäasetukset" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Käyttäjätunnus" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Vahvistetaan tiliäsi…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Näytä kanavat" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Katso tällä hetkellä aktiivisia bugireportteja täällä." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Näytä vanhemmat päivitykset" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Näytä palautuskoodit" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Katselet vanhempia viestejä" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Puhekanava" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Lähetimme vahvistussähköpostin. Joudut odottamaan jopa 10 minuuttia sen saapumista." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhookit" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Tervetuloa" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Tervetuloa!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Voit myös napsauttaa oikealla klikkauksella vasemmassa yläkulmassa olevaa käyttäjäkuvaketta, tai napsauttaa sitä vasemmalla klikkauksella, jos olet jo kotona." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Voit avata sen myöhemmin uudelleen, mutta se katoaa molemmin puolin." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Voit ilmoittaa ongelmia ja keskustella kanssamme parannuksista täällä." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Et voi peruuttaa tätä toimenpidettä." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Sinulla ei ole oikeuksia lähettää viestejä tähän kanavaan." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Et voi käyttää tiliäsi ellet ota yhteyttä tukeen - mutta tietojasi ei poisteta." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Et voi liittyä uudelleen, ellet ole kutsuttu uudelleen." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Tilisi on vahvistettu!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Palautuskoodisi" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/fil/messages.po b/packages/client/components/i18n/catalogs/fil/messages.po new file mode 100644 index 00000000..07f64c27 --- /dev/null +++ b/packages/client/components/i18n/catalogs/fil/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fil\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "Isang tao ang may reaksiyon dito" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Tungkol" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Tanggapin ang friend request" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Kaibiganin" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Advanced" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Lahat ng mga mensahe" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Magkaibigan na kayo ng user na ito." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Hitsura" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Magtalaga ng mga Role" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Taga-authenticate na app" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Mga Sagisag" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "I-ban ang miyembro" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Makapag-ban ng mga miyembro" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Mga Banned na User" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Barahin ang user na ito" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Mga Binara" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Binarang User" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Tagasubaybay ng mga Peste" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Kanselahin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Kanselahin ang friend request" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Hindi maaaring burahin ang account hanggang hindi na-delete o na-transfer ang mga server" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Baguhin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Palitan ang avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Palitan ang palayaw" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Deskripsyon ng Channel" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Pangalan ng Channel" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Mga channel" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Tignan ang iyong mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Tanggalin ang estado" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Settings sa Kliyente" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Isara" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Ikumpirma" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Kumpirmahin ang aksyon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Kumonekta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Ang content ay lumalabag sa isa o higit pang mga batas" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Ipagpatuloy" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Mga usapan" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopyahin itong channel ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopyahin ang ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopyahin ang link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopyahin itong message ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopyahin ang server ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopyahin itong text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopyahin itong user ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Gumawa" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Gumawa ng grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Gumawa ng bagong bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Gumawa ng bagong role" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Gumawa ng account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Gumawa ng kategoriya" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Gumawa ng channel" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Gumawa ng imbitasyon" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Kasalukuyang Password" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Estado mo" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalisasyon" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "I-deafen ang Miyembro" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Default" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Burahin" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Alisin ang channel" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Alisin ang mensahe" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Tanggalin ang Role" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "I-disable ang Account" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Huwag abalahin" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Tapos na" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "I-edit ang identidad" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "I-edit ang mensahe" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Baguhin ang iyong pagkakakilanlan" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Mga Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "I-konekta ang autentikador" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Paganahin ang mga Abisong Pang-desktop" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Maglagay ng bagong password." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Pumasok sa Channel" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Ilagay Ang Kodigo" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Ilagay ang iyong kasalukuyang password." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Ilagay ang gusto mong pangalan." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Maaaring peligroso ang mga panlabas na link!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Nabigong i-verify!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Magpuna" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Humanap ng mga komunidad base sa iyong mga libangan o kagustuhan." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Nakatutok" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Kaibigan" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Magsagawa ng Mga Kodigo ng Pagbawi" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Gumagawa ng pang-imbita…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Bumalik sa pag-login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Pumunta sa testers server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Pangalan ng Grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Kumusta!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Panimula" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Kinukumpirma ko na ako ay hindi bababa sa 18 na taong gulang." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Bakante" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Huwag ipakita" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Magsagawa ng engrandeng party kasama ang iyong mga kaibigan, at mga mahuhusay na bots." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kodigo ng Imbitasyon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Imbitahin ang mga iba" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Ang nag-imbita" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Mga Imbitasyon" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Bumalik sa kasalukuyan" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Bumalik sa simula" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Alisin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Paalisin ang miyembro" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Paalisin ang mga miyembro" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Wika" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Pinakabago" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Umalis" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Umalis sa grupo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Umalis sa server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Pakisabi kung paano namin mapagaganda ang aming app." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Mag-log out" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "I-logout ang lahat ng iyong ibang sesyon" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Mag-login" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Pamahalaan ang Customization" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Makapagmanage ng messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Mabago ang mga palayaw" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Pamahalaan ang Mga Pahintulot" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "I-manage ang mga roles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Makapagmanage sa server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Pamahalaan ang mga webhook" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Markahan bilang nabasa" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Markahan bilang hindi nabasa" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Magbalatkayo" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Mga Miyembro" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mensyon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Mga pagbanggit lang" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "I-mensahe" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Hindi na-load ang mensahe, i-click para tumalon" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Natanggap ang Mensahe" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Na-ipadala na ang Mensahe" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Ipinadala ang mensahe sa ibang platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Pagmemensahe" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Ilipat ang Mga Miyembro" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "I-Mute ang mga miyembro" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Naka-silensyo" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Parehong Kaibigan" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Parehong Grupo" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Aking Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Aking mga Bot" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Bagong Password" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Palayaw" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Walang abiso" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Mga Abiso" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Nakapatay" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Opisyal na Komunikasyon" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Opisyal na Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Di-konektado" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Sige" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Pinakaluma" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Nakabukas" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Kapag ito ay natanggal na, hindi mo na pwede ito ma-balik." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Nasa linya" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Buksan ang mga opsyon" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Bista ng Server" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Password" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Mga Permiso" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pumili ng bansag kung saan madali kang makikilala ng tao. Pwede mong baguhin ito mamaya sa mga opsyon ng user." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Paki-kumpirma ang aksyon na ito gamit ang napiling paraan." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Ilagay ang iyong email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Itago ito sa isang ligtas na lokasyon." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Paki-scan o gamitin ang token sa ibaba sa iyong autenticator app." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Pumili ng paraan para i-autentika ang iyong hiling." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Patakaran sa Pagkapribado" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profile" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Basahin ang History ng Mensahe" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Dahilan" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kodigo ng Pagbawi" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Magrehistro" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Tanggihan ang friend request" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Kaugnayan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Tanggalin ang Autentikador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Tanggalin ang mga avatar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Tanggalin ang kaibigan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Tumugon" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Tumutugon kay" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "I-ulat" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Iulat ang mensahe" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Iulat ang server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "I-report ang user" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Muling ipadala ang beripikasyon" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reset" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Palitan ang password" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "I-reset ang Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Pangalan ng Papel" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Mga Role" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "I-Save" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Ilagay sa personal na talaan" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Personal na talaan" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Piliin ang iyong wika" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Magpadala ng Mga Embed" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Magsend ng messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Naipadala ang lakip" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Naipadala ang mga lakip" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Deskripsyon ng Server" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Pangalan ng Server" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Mga Sesyon" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Mga Settings" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Marami ang may gustong sabihin…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Mga tunog" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Pinagmulan ng Kodigo" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Magsalita" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Magsumite ng suhestiyon sa features" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Magsumite ng ulat o puna" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Suportahan itong proyekto sa pamamagitan ng pagbigay ng donasyon - salamat!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Mga Tuntunin ng Serbisyo" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Channel na pan-texto" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ito ang simula ng iyong usapan." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ito ang simula ng iyong mga tala." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Binlock ka ng user na ito." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "I-timeout ang Mga Miyembro" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Huwag nang barahin ang user" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Mag-upload ng mga file" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "User" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Sumali si User sa Tawag" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Umalis ang User sa Tawag" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Pamamahala sa Mga User" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Settings ng User" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Pangalan" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Vine-verify ang iyong account…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Bidyo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Tignan ang channel" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Tignan and mga aktibong ulat ng mga peste rito." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Basahin ang mga lumang updates" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Tignan Ang Mga Kodigo ng Pagbawi" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Tinitingnan ang mga lumang message" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Channel na pamboses" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Nagpadala kami ng verification email. Maari lamang maghintay ng 10 minuto upang dumating." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Mga Webhook" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Maligayang Pagdating sa" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Maligayang Pagdating!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Pwede mo ring i-right-click sa user icon sa kaliwang itaas, o i-left-click doon kung nasa pahina ng panimula ka na." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Pwede mo ulit itong buksan mamaya, pero mawawala ito sa magkabilang panig." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Maari mong i-ulat sa amin ang mga problemang nakaharap at ang iyong mga suhesiyon dito." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Hindi mo mababalikan ang itong aksyon." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Wala kang pahintulot para magpadala ng mga mensahe sa channel na ito." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Hindi mo maa-access ang iyong account maliban kung makipag-ugnayan sa support - gayumpaman, hindi mabubura ang iyong data." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Hindi ka pwedeng sumali maliban kung ika'y na-imbita ulit." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Na-verify na ang iyong account!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Iyong mga kodigo ng pagbawi" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/fr/messages.po b/packages/client/components/i18n/catalogs/fr/messages.po new file mode 100644 index 00000000..84073746 --- /dev/null +++ b/packages/client/components/i18n/catalogs/fr/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fr\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 personne a réagi" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "À propos" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Accepter demande d'ami" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Ajouter en ami" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avancé" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tous les messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Vous êtes déjà ami avec cet utilisateur." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Apparence" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assigner des rôles" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Application d'authentification" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Badges" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Bannir" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Bannir le membre" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Bannir les membres" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bannissements" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloquer l'utilisateur" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloqué" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Utilisateur bloqué" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Traqueur de bugs" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Annuler" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Annuler la demande d'ami" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Impossible de clôturer le compte si les serveurs ne sont pas fermés ou transférés" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Modifier" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Modifier l'avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Modifier le pseudonyme" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Description du salon" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nom du salon" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Salons" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Vérifiez vos e-mails !" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Supprimer le statut" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Paramètres du client" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Fermer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirmer" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirmer l'action" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Connexion" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Le contenu enfreint une ou plusieurs lois" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuer" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversations" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copier l'identifiant du salon" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copier l'identifiant" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copier le lien" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copier l'identifiant du message" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copier l'identifiant du serveur" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copier le texte" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copier l'identifiant utilisateur" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Créer" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Créer un groupe" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Créer un nouveau bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Créer un nouveau rôle" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Créer un compte" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Créer une catégorie" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Créer un salon" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Créer une invitation" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Mot de passe actuel" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Statut personnalisé" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personnalisation" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Rendre les membres sourds" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Défaut" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Supprimer" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Supprimer le salon" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Supprimer le message" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Supprimer le rôle" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Désactiver le compte" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ne pas déranger" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Terminé" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Modifier l'identité" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Modifier le message" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Modifier votre identité" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Adresse e-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Émojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Activer l'application d'authentification" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Activer les notifications de Bureau" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Entrez un nouveau mot de passe." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entrer dans le salon" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Entrez le code" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Entrez votre mot de passe actuel." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Entrez un nom d'utilisateur." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Les liens externes peuvent être dangereux !" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Échec de la vérification !" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Suggestions" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Trouvez une communauté basée sur vos passe-temps ou sur vos intérêts." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Concentré" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amis" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Générer les codes de récupération" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Génération d'une invitation en cours…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Retourner à la page de connexion" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Se rendre sur le serveur des testeurs" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nom du groupe" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Bonjour !" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Accueil" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Je confirme avoir au moins 18 ans." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inactif" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisible" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invitez tous vos amis, des bots sympa, et organisez une grande fête." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Code d'invitation" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Inviter d'autres personnes" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Membre ayant invité" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitations" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Revenir aux messages récents" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Aller au début" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Expulser" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Expulser le membre" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Expulser les membres" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Langue" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Récents" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Quitter" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Quitter le groupe" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Quitter le serveur" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Faites-nous savoir comment améliorer notre application en donnant votre avis." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Déconnexion" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Se déconnecter de toutes les autres sessions" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Connexion" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gérer les personnalisations" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Gérer les messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Gérer les pseudonymes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gérer les permissions" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Gérer les rôles" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Gérer le serveur" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Gérer les webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marquer comme lu" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marquer comme non-lu" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Identité par message" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membres" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mentionner" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Mentions uniquement" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Message" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Message non chargé, cliquez pour y accéder" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Message reçu" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Message envoyé" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Message envoyé depuis une autre plateforme" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Messagerie" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Déplacer les membres" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Rendre les membres muets" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Muet" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amis en commun" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Groupes en commun" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mon compte" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mes bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nouveau mot de passe" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Pseudonyme" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Aucun" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifications" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Désactivé" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Communiqué officiel" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Serveur Officiel" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Hors ligne" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Anciens" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Activé" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Après la suppression, vous ne pourrez plus revenir en arrière." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Connecté" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Ouvrir les paramètres" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Vue d'ensemble" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Mot de passe" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissions" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Choisissez le nom d'utilisateur par lequel vous souhaitez être trouvé. Il peut être changé plus tard dans les paramètres." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Confirmez en utilisant la méthode sélectionnée." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Entrez votre adresse e-mail." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Gardez-les dans un endroit sûr." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Veuillez scanner ou utiliser le jeton ci-dessous dans votre application d'authentification." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Sélectionnez une méthode pour vous authentifier." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Politique de confidentialité" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Lire l'historique des messages" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Raison" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Code de récupération" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "S'inscrire" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rejeter demande d'ami" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Pertinence" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Supprimer l'authentificateur" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Retirer les avatars" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Retirer l'ami" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Répondre" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Répondre à" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Signaler" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Signaler ce message" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Signaler ce serveur" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Signaler cet utilisateur" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Renvoyer la vérification" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Réinitialiser" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Réinitialiser le mot de passe" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Réinitialiser le token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nom du rôle" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Rôles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Enregistrer" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Enregistrer dans vos notes" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notes enregistrées" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Sélectionnez votre langue" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Envoyer du contenu intégré" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Envoyer des messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "A envoyé une pièce jointe" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "A envoyé plusieurs pièces jointes" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Description du serveur" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nom du serveur" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessions" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Paramètres" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Plusieurs personnes sont en train d'écrire…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sons" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Code source" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Parler" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Proposer une fonctionnalité" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Donnez votre avis" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Soutenez le projet en faisant un don, merci !" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Conditions d’utilisation" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Salon textuel" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Thème" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Voici le début de votre conversation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Voici le début de vos notes." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Cet utilisateur vous a bloqué." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Mettre des membres en temps mort" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Débloquer l'utilisateur" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Téléverser des fichiers" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Utilisateur" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Appel rejoint par un utilisateur" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Appel quitté par un utilisateur" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestion des utilisateurs" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Paramètres utilisateur" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nom d'utilisateur" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Vérification du compte…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vidéo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Voir le salon" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Visionnez les rapports de bugs actifs ici." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Voir les mises à jour précédentes" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Voir les codes de récupération" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Vous consultez d'anciens messages" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Salon vocal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Nous vous avons envoyé un e-mail de vérification. Merci d'attendre jusqu'à 10 minutes pour qu'il arrive." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Bienvenue sur" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Bienvenue !" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Vous pouvez aussi faire un clic droit sur l'icône utilisateur en haut à gauche, ou un clic gauche si vous êtes déjà sur l'accueil." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Vous pouvez la rouvrir plus tard, mais elle disparaîtra des deux côtés." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Vous pouvez signaler des problèmes et discuter des améliorations avec nous directement ici." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Vous ne pourrez pas annuler cette action." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Vous n'avez pas la permission d'envoyer des messages dans ce salon." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Vous ne pourrez plus accéder à votre compte sans contacter le support. Toutefois, vos données ne seront pas supprimées." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Vous ne pourrez pas revenir à moins d'être réinvité." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Votre compte a bien été vérifié !" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Vos codes de récupération" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ga/messages.po b/packages/client/components/i18n/catalogs/ga/messages.po new file mode 100644 index 00000000..0551410f --- /dev/null +++ b/packages/client/components/i18n/catalogs/ga/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ga\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "D'fhreagair 1 duine" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Faoi" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Suimiú chara" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Gach Teachtaireacht" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Tá tú cairde leis an úsáideoir seo cheana féin." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Cuma" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Fíordheimhnitheoir App" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Suaitheantais" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Cosc" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ball toirmeasc" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ruaig Baill" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Toirmisc" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloc úsáideor" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blocáilte" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Úsaideoir Blocáilte" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Róbat" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Rianaithe Bug" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cealaigh" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cealaigh iarratas" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Athraigh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Athraigh avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Athraigh Leasainm" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Cur síos ar an gCainéal" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Ainm Cainéal" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Cainéil" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Seiceáil do r-phost!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Scrios stádais" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Socruithe Cliant" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Dún" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Leanúint ar aghaidh" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Comhráití" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Cóipeáil ID cainéal" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Cóipeáil ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Coipéal nasc" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Cóipeáil ID teachtaireacht" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Cóipeáil ID an fhreastalaí" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Cóipeáil téacs" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Cóipeáil ID úsáideora" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Cruthaigh" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Cruthaigh grúpa" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Cruthaigh bot nua" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Cruthaigh ról nua" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Cruthaigh cuntas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Cruthaigh catagóir" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Cruthaigh chainéal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Cruthaigh chuireadh" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Pasfhocal Reatha" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Stádais custam" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Saincheapadh" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Réamhshocrú" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Scrios" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Scrios chainéal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Scrios teachtaireacht" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Scrios Ról" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Cuntas Díchumasaithe" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ná Cur As Dom" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Eagarthóireacht aitheantas" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Eagarthóireacht teachtaireacht" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Ríomhphost" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Cuir fógraí córas ar siúl" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Cuir isteach pasfhocal nua." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Téigh isteach" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Iontráil isteach do phasfhocal reatha." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Cuir isteach d'ainm úsáideora." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Is féidir le naisc sheachtracha a bheith contúirteach!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Theip ar an bhfíorú!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Aischothú" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Aimsigh pobal atá bunaithe ar do chaitheamh aimsire nó spéiseanna." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fócas" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Cairde" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Gin Cóid Aisghabhála" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Cuireadh a ghiniúint…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Téigh ar ais chuig Logáil Isteach" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Téigh chuig freastalaí an tástálaí" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Ainm an Ghrúpa" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Haigh!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Baile" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Dearbhaím go bhfuil mé ocht mbliana déag d'aois (18) ar a laghad." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Díomhaoin" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Dofheicthe" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Tabhair cuireadh do chairde go léir, roinnt róbónna fionnuar, agus caith cóisir mhór." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Cód Cuireadh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Tabhair cuireadh do dhaoine eile" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Cuireadh" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Cuireadh" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Léim go dtí an t-am i láthair" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Léim chuig an tús" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Ciceáil" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Ball ciceáil" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Ciceáil baill" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Teanga" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Is déanaí" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Fág" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Fhagant grúpa" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Fhagant friothálaí" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Cuir in iúl dúinn conas is féidir linn ár n-aip a fheabhsú trí aiseolas a thabhairt dúinn." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Logáil Amach" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Logáil amach as gach seisiún eile" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Logáil isteach" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Bainistigh Teachtaireachtaí" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Bainistigh Baill" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Bainistigh róil" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Bainistigh Freastalaí" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Máirc as léite" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Masquerade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Baill" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Luaigh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Luanna Amháin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Teachtaireacht" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Níl an teachtaireacht luchtaithe, cliceáil chun léim" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Teachtaireacht a fuarthas" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Teachtaireacht seolta" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Seoladh an teachtaireacht chuig ardán eile" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Balbhaithe" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Cairde i gCoitinne" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grúpaí Frithpháirteach" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mo Chuntas" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mo Róbataí" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Focal Faire Nua" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Leasainm" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Faic" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Fógraí" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "As faidhm" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Cumarsáid Oifigiúil" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Freastalaí Oifigiúil" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "As líne" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ceart go leor" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Is sine" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ar Siúl" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Nuair a scriostar é, níl aon dul ar ais." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Ar líne" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Oscail rogha" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Forbhreathnú" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Pasfhocal" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Ceadanna" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Roghnaigh ainm úsáideora a theastaíonn uait go mbeadh daoine in ann tú a aimsiú, is féidir é seo a athrú níos déanaí i socruithe." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Cuir isteach do ríomhphost." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Polasaí Príobháideachais" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Próifíl" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Cód Aisghabháil" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Cláraigh" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Ábharthacht" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Bain Fíordheimhnitheoir" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Bain avatars" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Bain chara" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Freagair" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Ag freagairt do" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Cuir fíorú arís" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Athshocraigh Pasfhocal" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Ainm Róil" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Róil" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Sábháil" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Sábháil go dtí do chuid nótaí" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Nótaí Sábháilte" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Roghnaigh do theanga" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Seol Teachtaireachtaí" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Ceangaltán a sheoladh" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Ceangailteáin seolta" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Cuir síos an bhFreastalaí" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Ainm an Fhreastalaí" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Seisiúin" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Socruithe" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Tá roinnt daoine ag clóscríobh…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Fuaimeanna" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Cód Bunaidh" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Tabhair moladh ceannaithe" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Cuir isteach aiseolas" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Tacaigh leis an tionscadal trí bhronnadh - go raibh maith agat!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Tearmaí Seirbhíse" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Cainéal Téacs" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Téama" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Seo tús do chomhrá." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Seo tús le do chuid nótaí." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Chuir an t-úsáideoir seo bac ort." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Ban blac de úsáideor" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Uaslódáil Comhaid" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Úsáideoir" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Chuaigh Úsáideoir isteach glao" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "D'imigh Úsáideoir glao" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Bainistaíocht Úsáideoir" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Socruithe Úsáideora" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Ainm Úsáideora" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "do chuntas á fhíorú…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Féach ar Mhuir nIocht" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Féach tuairiscí gníomhacha fabht anseo faoi láthair." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Féach Cóid Aisghabhála" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Ag féachaint ar sheanteachtaireachtaí" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Cainéal Fuaime" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Lig suas go dtí 10 nóiméad chun go dtiocfaidh sé le do thoil." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Crúcaí-gréasáin" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Fáilte go" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Fáilte romhat!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Is féidir leat cliceáil ar dheis freisin ar an deilbhín úsáideora ar thaobh na láimhe clé barr, nó cliceáil ar chlé má tá tú sa bhaile cheana féin." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Is féidir leat é a athoscailt níos déanaí ach beidh sé imithe ar an dá thaobh." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Is féidir leat saincheisteanna a thuairisciú agus feabhsuithe a phlé linn go díreach anseo." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Níl cead agat teachtaireachtaí a sheoladh sa chainéal seo." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Ní bheidh tú in ann teacht ar ais mura dtugtar cuireadh duit arís." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Tá do chuntas fíoraithe!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/hi/messages.po b/packages/client/components/i18n/catalogs/hi/messages.po new file mode 100644 index 00000000..885c8a34 --- /dev/null +++ b/packages/client/components/i18n/catalogs/hi/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: hi\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "एक यूजर ने रियेक्ट किया" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "बारे में" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "मित्र जोड़ें" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "सभी संदेश" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "पहले से ही इस उपयोगकर्ता के साथ दोस्त." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "दिखावट" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "भूमिकाएँ असाइन करें" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "ऑथेंटिकटर ऍप" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "अवतार" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "बैज" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "प्रतिबंध" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "सदस्यों को प्रतिबंधित करें" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "सदस्यों को प्रतिबंध करे" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "पर रोक लगाई" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "उपयोगकर्ता को ब्लॉक करें" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "अवरोधित" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "अवरुद्ध उपयोगकर्ता" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "बौट" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "बग ट्रैकर" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "रद्द करें" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "अनुरोध रद्द करें" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "परिवर्तन" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "अवतार बदलें" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "उपनाम बदलें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "चैनल विवरण" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "चैनल का नाम" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "चैनल" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "अपना मेल देखें!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "स्पष्ट स्थिति" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "ग्राहक सेटिंग्स" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "बंद करे" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "पुष्टि" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "कार्रवाई की पुष्टि करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "जोड़ना" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "सामग्री एक या अधिक कानूनों को तोड़ती है" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "आगे बढ़ें" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "बात चिट" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "चैनल आईडी कॉपी करें" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "आईडी कॉपी करें" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "लिंक कॉपी करे" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "संदेश आईडी कॉपी करें" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "सर्वर आईडी कॉपी करें" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "टेक्स्ट कॉपी करें" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "यूजर आईडी कॉपी करें" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "बनाये" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "एक समूह बनाएं" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "एक नया बॉट बनाएं" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "एक नई भूमिका बनाएं" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "खाता बनाएँ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "श्रेणी बनाएँ" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "चैनल बनाएँ" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "आमंत्रण बनाएँ" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "वर्तमान पासवर्ड" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "कस्टम स्थिति" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "कस्टमाइज़ेशन" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "सदस्य को बहरे करे" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "चूक जाना" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "हटाएं" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "चैनल हटाएँ" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "संदेश को हटाएं" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "भूमिका हटाएँ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "खाता अक्षम करें" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "परेशान न करें" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "समाज-सम्मत" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "पहचान संपादित करें" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "संदेश संपादित करें" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ईमेल" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "प्रमाणक अनुप्रयोग सक्षम करें" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "डेस्कटॉप सूचनाएं सक्षम करें." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "नया पासवर्ड डालें।" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "चैनल दर्ज करें" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "कोड दर्ज करें" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "अपना वर्तमान पासवर्ड डालें।" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "अपना पसंदीदा उपयोगकर्ता नाम डालें।" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "बाहरी लिंक खतरनाक हो सकते हैं!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "सत्यापित करने में विफल हुआ!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "प्रतिपुष्टि" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "अपने शौक या रुचियों के आधार पर एक समुदाय खोजें।" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "संकेन्द्रित" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "मित्र" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "पुनर्प्राप्ति कोड जनरेट करें" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "आमंत्रण जनरेट किया जा रहा है…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "अपना पासवर्ड भूल गए?" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "परीक्षक सर्वर पर जायें" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "समूह नाम" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "नमस्ते!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "घर" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "मैं पुष्टि करता/करती हूं कि मेरी आयु कम से कम 18 वर्ष है।" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "निष्क्रय" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "अदृश्य" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "अपने सभी दोस्तों, कुछ अच्छे बॉट्स को आमंत्रित करें और एक बड़ी पार्टी करें।" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "कोड आमंत्रित" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "दूसरों को आमंत्रित करें" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "निमंत्रणदाता" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "आमंत्रण" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "प्रस्तुत करने के लिए कूदें" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "शुरुआत में कूदें" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "लात" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "सदस्यों को हटा दें" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "किक सदस्य" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "भाषा" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "नवीनतम" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "छोड़ना" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "समूह छोड़ें" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "सर्वर छोड़ दें" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "प्रतिपुष्टि देकर हमें बतायें कि हम अपने ऍप को कैसे सुधार सकते हैं।" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "लॉग आउट" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "अन्य सभी सत्रों से लॉग आउट करें" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "लॉग इन करें" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "कस्टमाइज़ेशन प्रबंधित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "संदेश प्रबंधित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "उपनाम प्रबंधित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "अनुमतियाँ प्रबंधित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "भूमिकाएँ प्रबंधित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "सर्वर प्रबंधित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Webhooks प्रबंधित करें" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "पढ़े के रूप में चिह्नित करें" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "अपठित के रूप में चिह्नित करें" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "छद्मवेष-समारोह" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "सदस्यों" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "उल्लेख" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "केवल उल्लेख" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "संदेश" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "संदेश लोड नहीं हुआ, कूदने के लिए क्लिक करें|" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "संदेश मिल गया" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "मैसेज बेजा गया" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "संदेश दूसरे प्लेटफॉर्म पर भेजा गया था" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "सदस्यों को स्थानांतरित करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "मूक सदस्य" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "म्यूट किए गए" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "परस्पर मित्र" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "परस्पर समूह" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "मेरा खाता" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "मेरे बॉट्स" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "नया पासवर्ड" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "उपनाम" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "कोई नहीं" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "सूचनाएं" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "बंद" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "आधिकारिक संचार" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "आधिकारिक सर्वर" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "ऑफ़लाइन" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "ठीक" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "सबसे पुराने" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "चालू" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "एक बार इसे हटा दिए जाने के बाद, वापस नहीं जाना है।" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "ऑनलाइन" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "समायोजन" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "अवलोकन" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "पासवर्ड" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "अनुमतियां" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "एक उपयोगकर्ता नाम चुनें जिसे आप चाहते हैं कि लोग आपको ढूंढ सकें, इसे बाद में सेटिंग में बदला जा सकता है।" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "कृपया चयनित विधि का उपयोग करके पुष्टि करें." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "अपना ईमेल पता डालें।" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "कृपया इन्हें किसी सुरक्षित स्थान पर सहेजें." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "कृपया अपने प्रमाणीकरण ऐप में नीचे दिए गए टोकन को स्कैन या उपयोग करें।" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "कृपया अपने अनुरोध को प्रमाणित करने के लिए एक विधि का चयन करें." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "गोपनीयता नीति" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "प्रोफ़ाइल" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "संदेश का इतिहास पढ़ें" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "कारण" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "पुनर्प्राप्ति कोड" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "पंजीकृत करें" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "प्रासंगिकता" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "प्रमाणक निकालें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "अवतारों को हटाएं" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "मित्र को निकालें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "जवाब दे दो" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "जवाब दे रहे हैं" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "रिपोर्ट" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "मैसेज रिपोर्ट करो" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "सर्वर को रिपोर्ट करें" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "उपयोगकर्ता को रिपोर्ट करें" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "सत्यापन पुनः भेजें" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "रीसेट" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "पासवर्ड रीसेट करें" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "भूमिका का नाम" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "भूमिकाएँ" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "सहेजें" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "अपने नोट्स में सहेजें" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "सहेजे गए नोट" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "अपनी भाषा का चयन करें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "एम्बेड भेजें" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Send Messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "एक अनुलग्नक भेजा" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "कई अटैचमेंट भेजे" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "सर्वर विवरण" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "सर्वर का नाम" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "सत्र" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "समायोजन" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "कई लोग टाइप कर रहे हैं…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "ध्वनि" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "सोर्स कोड" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "बोलना" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "सुविधा सुझाव सबमिट करें" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "प्रतिपुष्टि दें" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "दान करके परियोजना को समर्थन दें - आपका धन्यवाद!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "सेवा शर्तें" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "पाठ चैनल" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "विषय" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "यह आपकी बातचीत की शुरुआत है।" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "यह आपके नोट्स की शुरुआत है।" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "इस उपयोगकर्ता ने आपको ब्लॉक कर दिया है." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "टाइमआउट सदस्य" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "उपयोगकर्ता को ब्लॉक करें" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "फ़ाइलें अपलोड करें" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "उपयोगकर्ता" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "उपयोगकर्ता कॉल में शामिल हुए" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "उपयोगकर्ता वाम कॉल" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "उपयोगकर्ता प्रबंधन" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "उपयोगकर्ता सेटिंग" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "उपयोगकर्ता नाम" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "खाते का सत्यापन जारी है…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "वीडियो" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "चैनल देखें" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "वर्तमान में सक्रिय बग रिपोर्ट यहां देखें।" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "पुराने अद्यतन देखें" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "पुनर्प्राप्ति कोड देखें" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "पुराने संदेश देखना" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "आवाज चैनल" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "हमने आपको एक सत्यापन ईमेल भेजा है । कृपया इसे आने के लिए 10 मिनट तक का समय दें।" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "में स्वागत" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "आपका स्वागत है!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "आप ऊपर बाईं ओर उपयोक्ता आइकन पर दायाँ-क्लिक भी कर सकते हैं, अथवा यदि आप पहले से ही गृह पर हैं तो उसपर बायाँ-क्लिक करें।" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "आप इसे बाद में फिर से खोल सकते हैं लेकिन यह दोनों तरफ से गायब हो जाएगा।" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "आप यहाँ सीधे हमें समस्याओं की सूचना दे सकते हैं और हमारे साथ सुधारों पर चर्चा कर सकते हैं।" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "आप इस क्रिया को पूर्ववत नहीं कर सकते." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "आपको इस चैनल में संदेश भेजने की अनुमति नहीं है।" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "जब तक आपको फिर से आमंत्रित नहीं किया जाता, आप फिर से शामिल नहीं हो पाएंगे।" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "खाता सत्यापित हुआ!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "आपके पुनर्प्राप्ति कोड" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/hr/messages.po b/packages/client/components/i18n/catalogs/hr/messages.po new file mode 100644 index 00000000..78c1145b --- /dev/null +++ b/packages/client/components/i18n/catalogs/hr/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: hr\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "Jedna osoba je reagirala" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "O" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Dodaj prijatelja" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Sve poruke" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Već ste prijatelji sa ovim korisnikom." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Izgled" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Dodijeli uloge" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplikacija za autentifikaciju" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Slika profila" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Značke" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Zabrani" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Banaj člana" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Zabrani članove" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Zabrane" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokiraj korisnika" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blokiran" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokirani korisnik" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Praćenje Grešaka" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Odustani" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Otkaži zahtjev" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Promjeni" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Promijeni avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Promijeni nadimak" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Opis kanala" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Ime kanala" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanali" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Provjerite svoj sandučić!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Ukloni status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Postavke aplikacije" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Zatvori" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Potvrdi" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Potvrdi akciju" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Spoji" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Sadržaj krši jedan ili više zakona" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Nastavi" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Razgovori" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopiraj ID kanala" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopiraj ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopiraj link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopiraj ID poruke" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopiraj ID servera" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopiraj tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopiraj korisnički ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Stvoriti" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Napravi grupu" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Napravi novog bota" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Stvorite novu ulogu" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Napravi račun" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Izradi kategoriju" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Napravi kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Napravi invite" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Trenutačna zaporka" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Prilagođeni status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Prilagodbe" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Oglušiti korisnike" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Zadano" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Izbriši" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Izbriši kanal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Obriši poruku" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Izbriši rank" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Onemogući račun" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ne uznemiravaj" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Gotovo" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Uređivanje identiteta" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Uredi poruku" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-pošta" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emotikoni" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Uključite autenifikator" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Uključi obavjesti" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Unesite novu lozinku." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Uđite u kanal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Unesite kod" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Unesite trenutačnu zaporku." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Unesite vaše korisničko ime." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Vanjske veze mogu biti opasne!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Potvrda neuspješna!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Povratne informacije" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Pronađite zajednicu koja se temelji na vašim hobijima ili interesima." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Prijatelji" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Stvori kôd za oporavak" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Pravim invitaciju…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Vrati se na prijavu" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Idite do servera za testiranje" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Ime grupe" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Bok!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Početna stranica" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Potvrđujem da imam najmanje 18 godina." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "U mirovanju" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Nevidljiv" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Pozovite sve svoje prijatelje, neke cool botove i priredite veliku zabavu." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Pozivni kod" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Pozovite druge" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Pozivatelj" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Pozivnice" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Idi na sadašnjost" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Idi na početak" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Izbaci" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Izbaci člana" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Udarite članove" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Jezik" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Najnoviji" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Napustiti" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Napusti grupu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Napusti server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Javite nam kako možemo poboljšati našu aplikaciju ostavljajući nam povratne informacije." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Odjavi se" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Odjavite se sa svih ostalih sesija" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Prijavi se" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Upravljanje prilagodbama" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Upravljanje porukama" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Upravljajte nadimcima" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Upravljaj dozvolama" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Upravljanje ulogama" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Upravljanje poslužiteljem" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Kontroliraj Webhook-ove" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Označi kao pročitano" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Označi kao nepročitano" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maškarada" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Članovi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Spomen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Samo spominjanja" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Poruka" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Poruka nije učitana, klikni za prijelaz" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Poruka primljena" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Poruka je poslana" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Poruka je poslana na drugoj platformi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Premjestiti korisnike" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Utišaj korisnike" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Prigušen" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Zajednički prijatelji" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Zajedničke grupe" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Moj račun" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Moji botovi" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nova lozinka" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Nadimak" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nijedan" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Obavjesti" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Isključeno" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Službena komunikacija" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Zvanični server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Izvan mreže" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Najstariji" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Uključeno" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Nakon što ga izbrišeš, nema povratka." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Na vezi" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Otvori podešavanja" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Pregled" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Zaporka" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Dopuštenja" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Odaberi korisničko ime sa kojim će te ostali ljudi prepoznati, ovo možete promjeniti u postavkama." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Molimo potvrdite pomoću odabrane metode." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Unesite svoju e-poštu." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Molimo spremite ih na sigurnu lokaciju." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Molimo skenirajte ili koristite token ispod u vašoj autenfikacijskoj aplikaciji." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Molimo odaberite metodu za autenifikaciju vašeg zahtjeva." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Pravila o privatnosti" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Pročitaj povijest poruka" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Razlog" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kôd za oporavak" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrirajte se" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevantnost" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Uklonite Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Uklonite avatare" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Ukloni prijatelja" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Odgovor" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Odgovaranje" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Prijavi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Prijavi poruku" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Prijavi server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Prijavi korisnika" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Ponovno pošalji verifikaciju" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Resetiraj" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Promjeni zaporku" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Naziv uloge" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Uloge" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Spremi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Spremi u bilješke" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Spremljene bilješke" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Odaberi jezik" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Slanje privitaka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Slanje poruka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Priloži datoteku" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Poslano je više privitaka" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Opis servera" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Ime servera" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesije" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Postavke" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Nekoliko ljudi tipka…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Zvukovi" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Izvorni Kod" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Pričati" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Pošaljite prijedlog značajke" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Pošalji povratne informacije" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Podržite projekt donacijom - hvala!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Uvjeti o korištenju" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Tekstualni kanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ovo je početak vašeg razgovora." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ovo je početak vaših bilješki." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Ovaj korisnik vas je blokirao (too bad lol)." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout korisnike" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Odblokiraj korisnika" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Učitaj datoteke" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Korisnik" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Korisnički pridruženi poziv" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Lijevi poziv korisnika" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Menađžment korisnika" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Korisničke postavke" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Korisničko ime" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Potvrđujemo vaš račun…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Pogledajte kanal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Ovdje pogledajte trenutno aktivna izvješća o programskim pogreškama." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Pogledaj starije promjene" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Pogledaj kôd za oporavak" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Pregledavate stare poruke" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Glasovni kanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Pričekajte do 10 minuta da se pojavi." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhookovi" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Dobrodošli u" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Dobro došli!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Također možete kliknuti desnom tipkom miša na ikonu korisnika u gornjem lijevom kutu ili je kliknuti lijevom tipkom ako ste već kod kuće." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Možeš ju ponovno otvoriti poslije ali će nestati sa obje strane." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Možete prijaviti greške i razgovarati o poboljšanjima s nama izravno ovdje." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Ne možeš poništiti ovu radnju." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Nemate dopuštenje za slanje poruka na ovom kanalu." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nećeš se moći ponovno pridružiti serveru osim ako te netko pozove." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Vaš račun je potvrđen!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Vaši kodovi za oporavak" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/hu/messages.po b/packages/client/components/i18n/catalogs/hu/messages.po new file mode 100644 index 00000000..2c67bd0c --- /dev/null +++ b/packages/client/components/i18n/catalogs/hu/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: hu\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 személy reagált" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "A Revoltról" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Barátkérelem elfogadása" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Ismerősnek jelölés" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Speciális" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Összes üzenet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Már ismerősöd ez a felhasználó." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Kinézet" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Titulusok hozzárendelése" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Hitelesítést végző app" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Profilkép" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Kitűzők" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Kitiltás" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Tag kitiltása" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Kitilthatnak tagokat" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Kitiltottak" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Felhasználó kizárása" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Kizártak" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Kizárt felhasználó" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robi 🤖" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug Tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Mégsem" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Barátkérelem visszavonása" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Nem törölhetjük ki a fiókot amíg a szerverek nincsenek kitörölve vagy átadva" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Megváltoztatás" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Profilképet válthatnak" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Becenevet válthatnak" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Csatorna leírása" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Csatorna neve" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Csatornák" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Nézd meg, hogy jött-e leveled." + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Törlés" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Kliens beállításai" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Bezárás" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Jóváhagyás" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Művelet jóváhagyása" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Hangcsatornához csatlakozhatnak" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Törvénysértő tartalom" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Folytatás" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Beszélgetések" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Csatorna ID másolása" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "ID másolása" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Link másolása" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Üzenet ID másolása" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Szerver ID másolása" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Szöveg másolása" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Felhasználói ID másolása" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Létrehozás" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Csoport létrehozása" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Új robi létrehozása" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Új titulus létrehozása" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Fiók létrehozása" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Kategória létrehozása" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Csatorna létrehozása" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Meghívó létrehozása" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Mostani jelszavad" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Mást csinálok" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Testreszabás" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Tagok süketítése" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Alapértelmezett" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Törlés" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Csatorna törlése" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Üzenet törlése" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Titulus törlése" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Fiók letiltása" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ne zavard" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Rendben van!" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Identitás szerkesztése" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Üzenet szerkesztése" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Identitásod szerkesztése" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail-cím" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emodzsik" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Hitelesítő app engedélyezése" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Asztali értesítések engedélyezése" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Add meg az új jelszavad" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Belépés a csatornába" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Add meg a kódot" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Add meg a mostani jelszót" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Add meg a kívánt felhasználónevedet." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "A kimenő linkek veszélyt rejthetnek!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Nem sikerült igazolnod a fiókodat." + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Visszajelzés" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Találj rá a hobbiddal, érdeklődéseiddel egyező közösségekre." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Koncentál" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Ismerősök" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Helyreállító kódok létrehozása" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Meghívó létrehozása…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Vissza a bejelentkezéshez" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Irány a teszterek szervere" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Csoportnév" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Szia!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Kezdőhely" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Kijelentem, hogy elmúltam 18 éves." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Nem csinál semmit" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Láthatatlan" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Hívd meg minden ismerősödet (plusz menő robikat) és kezdődhet a buli!" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Meghívó kódja" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Meghívhatnak másokat" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Meghívó" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Meghívók" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "ugrás a mostaniakhoz" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "ugrás az elejéhez" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kirúgás" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Tag kirúgása" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kirúghatnak tagokat" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Nyelv" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Újak" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Hely elhagyása" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Csoport elhagyása" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Szerver elhagyása" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Írd meg miként fejleszthetnénk tovább a Revoltot." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Kijelentkezés" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Kijelentkezés az összes többi munkamenetből" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Bejelentkezés" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Testreszabás kezelése" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Kezelhetnek üzeneteket" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Kezelhetik más becenevét" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Engedélyek kezelése" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Kezelhetnek titulusokat" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Kezelhetik a szervert" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Kezelhetnek Webhookokat" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Megjelölés olvasottként" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Megjelölés nem olvasottként" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Elmaszkírozhatják magukat" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Tagok" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Megemlítés" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Csak említések" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Üzenetírás" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Az üzenet nem lett betöltve – kattints az ugráshoz" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Üzenetek érkezésekor" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Elküldött üzenetkor" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Az üzenetet másik platformon keresztül küldték el" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Üzenetváltás" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Tagok áthelyezése" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Tagok némítása" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Némítás" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Ismerőseink" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Csoportjaink" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Fiók" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Saját robik" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Új jelszó" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Becenév" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Egyik sem" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Értesítések" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Ki" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Hivatalos kommunikáció" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Hivatalos szerver" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Régiek" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Be" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Még nem késő visszavonni a visszahozhatatlant." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Beállítások megnyitása" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Áttekintés" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Jelszó" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Engedélyek" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Olyan felhasználónevet válassz, ami alapján mások azonosítanak majd téged. Ezt a beállításokban később megváltoztathatod." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "A választott móddal hagyd jóvá a választásod." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Add meg az e-mail-címed" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Tárold biztonságos helyen ezeket a kódokat!" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Olvasd, vagy pedig írd be a lenti tokent a hitelesítő appodban." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Válaszd ki a kérés hitelesítéséhez való módot." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Adatvédelmi szabályzat" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Korábbi üzenetek olvasása" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Indoklás" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Helyreállító kód" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Regisztrálás" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Barátkérelem elutasítása" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Releváns" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Hitelesítő eltávolítása" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Profilképeket távolíthatnak el" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Ismerettség törlése" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Válaszolás" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Neki válaszolsz:" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Bejelentés" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Üzenet jelentése" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Szerver jelentése" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Felhasználó jelentése" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Visszaigazoló e-mail újraküldése" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Visszaállítás" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Jelszóváltoztatás kérése" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Titulus címe" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Titulusok" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Mentés" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Mentés a többi feljegyzéshez" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Mentett jegyzetek" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Válassz nyelvet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Beágyazott tartalmak küldése" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Küldhetnek üzenetet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "csatolmányt küldött" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "több csatolmányt küldött" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Szerver leírása" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Szervernév" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Munkamenetek" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Beállítások" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Többen is gépelnek…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Hangos értesítés" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Forráskód" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Beszéd" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Featurejavaslat írása" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Visszajelzés írása" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Adományozz a projektnek – ezzel is támogatod. Köszönjük!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Szolgáltatási feltételek" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Szövegcsatorna" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Színséma" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Innen indult a beszélgetés" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Itt jött létre az első bejegyzés" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Ez a felhasználó kizárt téged." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Tageltiltás" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Felhasználó visszaengedése" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Feltölthetnek fájlokat" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Felhasználó" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Felhasználó híváshoz csatlakozásakor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Felhasználó hívásból való távozásakor" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Felhasználók kezelése" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Felhasználói beállítások" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Felhasználónév" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "A fiókod igazolódik…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Videó" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Láthatják a csatornákat" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Az aktív hibajelentéseket itt láthatod." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "A Revolt közelmúltbeli újdonságai" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Helyreállító kódok megtekintése" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "a régen írt üzeneteket látod" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Beszédcsatorna" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Elküldtük a visszaigazoló e-mailt. A leveled 10 percen belül meg fog érkezni." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhookok" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Üdvözöl a" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Üdv!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "A bal felső sarokban kattints jobb egérgombbal a profilképedre, vagy ballal ide." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Később újra megnyithatod, de mindkettőtöknek el fog veszni a beszélgetés." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Közvetlenül itt jelezhetsz az issue-król és vitathatod meg velünk a továbbfejlesztéseket." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Ez a művelet nem vonható vissza." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "ide nincs engedélyed üzenetet írni" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Nem fogsz tudni hozzáférni a fiókodhoz, amíg segítséget nem kérsz az ügyfélszolgálattól. Az adataid nem lesznek törölve." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nem fogsz tudni visszalépni, amíg újra meg nem hívnak." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "A fiókod igazolva lett" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Helyreállító kódok" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/hy/messages.po b/packages/client/components/i18n/catalogs/hy/messages.po new file mode 100644 index 00000000..b784640d --- /dev/null +++ b/packages/client/components/i18n/catalogs/hy/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: hy\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "մասին" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Ավելացնել ընկեր" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Բոլոր հաղորդագրությունները" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Արդեն ընկերներ այս օգտատիրոջ հետ." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "տեսքը" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Դերեր նշանակել" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticator հավելված" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Անձնանշան" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Պիտակներ" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "արգելել" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Արգելել անդամ" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Արգելեք անդամներին" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Արգելքներ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Արգելափակել օգտվողին" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Արգելափակված" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Արգելափակված օգտվող" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "բոտ" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "վրիպակ հետեւել" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "չեղարկել" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Չեղարկել հարցումը" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Փոփոխություն" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Փոխել Ավատարը" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Փոխել մականունը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Ալիքի նկարագրություն" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Ալիքի անվանումը" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Ալիքներ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Ստուգեք ձեր փոստը!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Մաքրել կարգավիճակը" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Հաճախորդի կարգավորումներ" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "փակել" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "հաստատել" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Հաստատեք գործողությունը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Միացնել" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Բովանդակությունը խախտում է մեկ կամ մի քանի օրենքներ" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Շարունակել" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Զրույցներ" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Պատճենել ալիքի ID-ն" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Պատճենել ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Պատճենել հղումը" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Պատճենել հաղորդագրության ID-ն" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Պատճենել սերվերի ID-ն" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Պատճենել տեքստը" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Պատճենել օգտվողի ID-ն" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Ստեղծել" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Ստեղծել խումբ" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Ստեղծեք նոր բոտ" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Ստեղծեք նոր դեր" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Ստեղծել հաշիվ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Ստեղծել կատեգորիա" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Ստեղծել ալիք" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Ստեղծել հրավեր" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Ընթացիկ գաղտնաբառը" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Պատվերով կարգավիճակ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "հարմարեցում" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Խուլ անդամներ" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "լռելյայն" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "ջնջել" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Ջնջել ալիքը" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Ջնջել հաղորդագրությունը" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Ջնջել դերը" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Անջատել հաշիվը" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Չխանգարել" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "կատարած" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Խմբագրել ինքնությունը" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Խմբագրել հաղորդագրությունը" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Փոստ" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Էմոջիներ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Միացնել իսկորոշիչ հավելվածը" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Միացնել աշխատասեղանի ծանուցումները." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Մուտքագրեք նոր ծածկագիրը." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Մուտք գործեք ալիք" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "մուտքագրեք կոդը" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Մուտքագրեք ձեր ընթացիկ գաղտնաբառը." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Մուտքագրեք ձեր օգտվողի անունը:" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Արտաքին հղումները կարող են վտանգավոր լինել!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Չհաջողվեց հաստատել!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "հետադարձ կապ" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Գտեք համայնք՝ հիմնված ձեր հոբբիների կամ հետաքրքրությունների վրա." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Կենտրոնանալ" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Ընկերներ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Ստեղծեք վերականգնման կոդեր" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Հրավերի ստեղծում…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Վերադառնալ մուտք գործելու համար" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Գնացեք փորձարկող սերվեր" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Խմբի անվանումը" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Բարեւ Ձեզ!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "տուն" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Ես հաստատում եմ, որ ես առնվազն 18 տարեկան եմ." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Պարապ" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Անտեսանելի" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Հրավիրեք ձեր բոլոր ընկերներին, մի քանի հիանալի բոտերի և կազմակերպեք մեծ երեկույթ." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Հրավիրել կոդը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Հրավիրեք Ուրիշներին" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Հրավիրող" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Հրավիրում է" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Անցնել ներկայացնելու" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Անցնել դեպի սկիզբ" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Ոտքով հարվածել" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kick անդամ" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kick անդամներին" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Լեզու" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Վերջին" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "հեռանալ" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Դուրս գալ խմբից" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Հեռանալ սերվերից" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Տեղեկացրեք մեզ, թե ինչպես կարող ենք բարելավել մեր հավելվածը՝ մեզ հետադարձ կապ տալով." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "դուրս գալ" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Դուրս եկեք մնացած բոլոր նիստերից" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Մուտք գործել" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Կառավարեք անհատականացումը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Կառավարեք հաղորդագրությունները" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Կառավարեք մականունները" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Կառավարեք թույլտվությունները" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Կառավարեք դերերը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Կառավարեք սերվերը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Կառավարեք Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Նշել որպես կարդացված" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "չընթերցված" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Դիմակահանդես" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "անդամներ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Նշել" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Միայն հիշատակումներ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Հաղորդագրություն" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Հաղորդագրությունը բեռնված չէ, սեղմեք՝ անցնելու համար" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Հաղորդագրությունը ստացված է" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Նամակը ուղարկված է" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Հաղորդագրությունն ուղարկվել է այլ հարթակում" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Անդամների տեղափոխում" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Անդամների խլացում" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Անջատված է" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Ընդհանուր ընկերներ" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Փոխադարձ խմբեր" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Իմ հաշիվը" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Իմ բոտերը" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "նոր ծածկագիր" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Մականուն" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ոչ ոք" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Ծանուցումներ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Անջատված" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Պաշտոնական հաղորդագրություն" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Պաշտոնական սերվեր" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Անցանց" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "լավ" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "ամենահին" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Վրա" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Երբ այն ջնջվի, հետդարձ չկա." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Առցանց" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Բացեք կարգավորումները" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "ակնարկ" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Գաղտնաբառ" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Թույլտվություններ" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Ընտրեք օգտվողի անուն, որով ցանկանում եք, որ մարդիկ կարողանան գտնել ձեզ, այն կարող է փոխվել ավելի ուշ կարգավորումներում." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Խնդրում ենք հաստատել՝ օգտագործելով ընտրված մեթոդը." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Խնդրում ենք մուտքագրել ձեր էլ." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Խնդրում ենք դրանք պահել անվտանգ վայրում." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Խնդրում ենք սկանավորել կամ օգտագործել ստորև նշված նշանը ձեր իսկորոշման հավելվածում." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Խնդրում ենք ընտրել ձեր հարցումը նույնականացնելու մեթոդ." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Գաղտնիության քաղաքականություն" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Անձնագիր" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Կարդացեք հաղորդագրությունների պատմությունը" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "պատճառ" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Վերականգնման ծածկագիր" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Գրանցվել" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Համապատասխանություն" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Հեռացնել Authenticator-ը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Հեռացնել Անձնանշանները" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Հեռացրեք ընկերոջը" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Պատասխանել" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Պատասխանելով" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "հաշվետվություն" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Հաղորդել հաղորդագրության մասին" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Հաշվետվության սերվեր" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Հաղորդել օգտատիրոջ մասին" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Նորից ուղարկել հաստատումը" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "վերակայել" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Վերականգնել գաղտնաբառը" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Դերի անվանումը" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "դերեր" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Պահպանել" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Պահպանեք ձեր նշումներում" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Պահված նշումներ" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Ընտրեք ձեր լեզուն" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Ուղարկել ներկառուցումներ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Ուղարկել հաղորդագրություններ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Ուղարկեց հավելված" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Ուղարկվել է բազմաթիվ հավելվածներ" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Սերվերի նկարագրություն" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "սերվերի անունը" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Նիստեր" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Կարգավորումներ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Մի քանի հոգի գրում են…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Հնչյուններ" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Աղբյուրի կոդը" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Խոսեք" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Ներկայացրեք հնարավորությունների առաջարկ" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Հետադարձ կապ ուղարկել" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Աջակցեք նախագծին` նվիրաբերելով - շնորհակալություն!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "ծառայության պայմաններ" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Տեքստային ալիք" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "թեման" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Սա ձեր զրույցի սկիզբն է." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Սա ձեր գրառումների սկիզբն է." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Այս օգտվողն արգելափակել է ձեզ." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Ժամկետանց անդամներ" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Արգելահանել օգտատիրոջը" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Վերբեռնել Ֆայլեր" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "օգտագործողի անունը" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Օգտատերը միացել է զանգին" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Օգտագործողի ձախ զանգ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Օգտագործողի կառավարում" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Օգտագործողի կարգավորումներ" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Օգտագործողի անունը" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Ձեր հաշիվը հաստատվում է…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Տեսանյութ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Դիտել ալիքը" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Դիտեք ներկայումս ակտիվ վրիպակների հաշվետվությունները այստեղ." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Դիտեք ավելի հին թարմացումները" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Դիտեք վերականգնման կոդերը" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Ավելի հին հաղորդագրությունների դիտում" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Ձայնային ալիք" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Խնդրում ենք տրամադրել մինչև 10 րոպե, որպեսզի այն հասնի." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Բարի գալուստ" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Բարի գալուստ!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Կարող եք նաև աջ սեղմել օգտվողի պատկերակի վրա վերևի ձախ մասում կամ ձախ սեղմել այն, եթե արդեն տանը եք." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Դուք կարող եք նորից բացել այն ավելի ուշ, բայց այն կվերանա երկու կողմից." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Դուք կարող եք զեկուցել խնդիրների մասին և քննարկել բարելավումները մեզ հետ ուղղակիորեն այստեղ." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Դուք չեք կարող հետարկել այս գործողությունը." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Դուք այս ալիքով հաղորդագրություններ ուղարկելու թույլտվություն չունեք." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Դուք չեք կարողանա նորից միանալ, քանի դեռ ձեզ նորից չեն հրավիրել." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ձեր հաշիվը հաստատված է!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Ձեր վերականգնման կոդերը" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/id/messages.po b/packages/client/components/i18n/catalogs/id/messages.po new file mode 100644 index 00000000..efeac445 --- /dev/null +++ b/packages/client/components/i18n/catalogs/id/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: id\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 orang memberi reaksi" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Tentang" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Terima permintaan pertemanan" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Tambah teman" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Lanjutan" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Semua Pesan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Sudah berteman dengan pengguna ini." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Penampilan" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Berikan Peran" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplikasi Autentikasi" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Lencana" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban anggota" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Melarang Anggota" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Ban" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokir pengguna" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Diblokir" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Pengguna Diblokir" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Pelacak Bug" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Batal" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Batalkan permintaan teman" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Tidak dapat menghapus akun hingga server dihapus atau ditransfer" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Ubah" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Mengubah Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Ubah Nama Panggilan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Deskripsi Saluran" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nama Saluran" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Saluran" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Periksa email kamu!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Hapus status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Pengaturan Klien" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Tutup" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Konfirmasi" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Konfirmasi tindakan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Sambung" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Konten melanggar hukum" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Lanjut" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Percakapan" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Salin ID saluran" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Salin ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Salin tautan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Salin ID pesan" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Salin ID server" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Salin teks" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Salin ID pengguna" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Buat" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Buat sebuah grup" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Buat bot baru" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Buat peran baru" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Buat akun" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Buat kategori" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Buat saluran" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Buat undangan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Sandi Saat Ini" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Status khusus" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Kustomisasi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Tulikan Anggota" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Bawaan" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Hapus" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Hapus saluran" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Hapus pesan" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Hapus Peran" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Nonaktifkan Akun" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Jangan Ganggu" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Selesai" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Edit identitas" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Edit pesan" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Sunting identitasmu" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Aktifkan aplikasi autentikator" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Aktifkan Notifikasi Desktop" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Masukkan sandi baru." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Masuki Saluran" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Masukkan Kode" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Masukkan sandimu saat ini." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Masukkan nama pengguna yang disarankan." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Tautan eksternal bisa berbahaya!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Gagal memverifikasi!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Masukan" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Cari komunitas berdasarkan hobi atau minat kamu." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Teman" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Hasilkan Kode Pemulihan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Menghasilkan undangan…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Kembali ke halaman masuk" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Pergi ke server penguji" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nama Grup" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Halo!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Beranda" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Aku mengonfirmasi bahwa aku berusia di atas 18 tahun." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Menganggur" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Tak Terlihat" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Undang semua temanmu, beberapa bot keren, dan adakan pesta besar." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kode Undangan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Undang Orang Lain" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Pengundang" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Undangan" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Loncat ke saat ini" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Loncat ke awal" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Keluarkan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Keluarkan anggota" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Menendang Anggota" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Bahasa" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Terbaru" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Keluar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Tinggalkan grup" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Tinggalkan server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Beritahu kami bagaimana kami bisa tingkatkan aplikasi kami dengan memberi masukan." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Keluar Akun" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Keluarkan semua sesi lainnya" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Masuk" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Atur Kustomisasi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Kelola Pesan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Kelola Nama Panggilan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Atur Izin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Kelola Peran" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Kelola Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Atur Webhook" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Tandai sebagai telah dibaca" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Tandai sebagai belum dibaca" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Penyamaran" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Anggota" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Sebut" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Hanya Sebutan" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Pesan" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Pesan tak termuat, klik untuk meloncat" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Pesan Diterima" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Pesan Terkirim" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Pesan dikirim dari platform lain" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Perpesanan" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Pindahkan Anggota" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Bisukan Anggota" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Disenyapkan" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Teman Bersama" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grup Bersama" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Akunku" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Botku" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Sandi Baru" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Nama panggilan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Tidak Ada" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifikasi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Nonaktif" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Komunikasi Resmi" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Server Resmi" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Luring" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Terlama" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Aktif" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Setelah dihapus, tak ada jalan kembali." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Daring" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Buka pengaturan" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Ikhtisar" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Sandi" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Perizinan" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pilih nama pengguna yang kamu inginkan agar orang lain dapat menemukan kamu. Ini dapat diubah nanti di pengaturan penggunamu." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Harap konfirmasi tindakan ini menggunakan metode terpilih." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Silakan masukkan emailmu." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Harap simpan ini di tempat yang aman." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Silakan pindai atau gunakan token di bawah pada aplikasi autentikator kamu." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Pilih metode untuk mengautentikasi permintaanmu." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Kebijakan Privasi" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Baca Riwayat Pesan" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Alasan" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kode Pemulihan" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Daftar" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Hapus permintaan pertemanan" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevansi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Hapus Autentikator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Hapus Avatar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Hapus teman" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Balas" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Membalas" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Laporkan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Laporkan pesan" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Laporkan server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Laporkan pengguna" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Kirim ulang verifikasi" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Atur Ulang" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Atur ulang sandi" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Atur ulang Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nama Peran" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Peranan" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Simpan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Simpan ke catatan kamu" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Catatan Tersimpan" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Pilih bahasamu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Kirim Sematan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Kirim Pesan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Lampiran terkirim" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Lampiran-lampiran terkirim" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Deskripsi Server" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nama Server" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesi" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Pengaturan" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Beberapa orang sedang mengetik…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Suara" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kode Sumber" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Bicara" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Kirim saran fitur" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Kirim masukan" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Dukung proyek ini dengan berdonasi - terima kasih!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Persyaratan Layanan" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Saluran Teks" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ini adalah awal dari percakapan kamu." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ini adalah awal dari catatan kamu." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Pengguna ini telah memblokir kamu." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Anggota yang di batas-waktukan" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Buka Blokir" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Unggah Berkas" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Pengguna" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Pengguna Bergabung dalam Panggilan" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Pengguna Meninggalkan Panggilan" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Pengelolaan Pengguna" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Pengaturan Pengguna" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nama Pengguna" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Memverifikasi akunmu…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Lihat Saluran" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Lihat laporan bug yang sedang aktif di sini." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Lihat pembaruan sebelumnya" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Lihat Kode Pemulihan" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Melihat pesan lama" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Saluran Suara" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Kami telah mengirimkan email verifikasi. Harap tunggu hingga 10 menit untuk email tiba." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhook" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Selamat datang di" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Selamat datang!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Kamu juga bisa klik kanan ikon pengguna di kiri atas, atau klik kiri jika kamu sedang berada di beranda." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Kamu dapat membukanya kembali nanti, namun percakapan akan hilang di kedua sisi." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Kamu bisa melaporkan masalah dan mendiskusikan peningkatan dengan kami secara langsung di sini." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Kamu tidak bisa membatalkan tindakan ini." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Kamu tidak memiliki izin untuk mengirim pesan di saluran ini." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Kamu tidak akan bisa mengakses akunmu kecuali dengan menghubungi bantuan - namun, datamu tidak akan dihapus." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Kamu tidak akan bisa bergabung kembali kecuali kamu diundang kembali." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Akunmu telah diverifikasi!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Kode pemulihanmu" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/is/messages.po b/packages/client/components/i18n/catalogs/is/messages.po new file mode 100644 index 00000000..8980e818 --- /dev/null +++ b/packages/client/components/i18n/catalogs/is/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: is\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Um" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Auðkennisapp" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Breyta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Rásir" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Tékkaðu tölvupóstinn þinn!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Samtöl" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Nýskráning" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Núverandi Lykilorð" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ekki Trufla" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Netfang" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Sláðu inn nýtt lykilorð." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Sláðu inn núverandi lykilorðið þitt." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Veldu notandanafn." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Tókst ekki að staðfesta!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Vinir" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Aftur í innskráningu" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Fara í prufusamfélagið" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Halló!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Heim" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Bjóddu öllum vinum þínum og nokkra vélmenni og haldið risa veislu." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Skrá inn" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Minn Aðgangur" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nýtt Lykilorð" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Af" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Á" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Opna stillingar" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Lykilorð" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Sláðu inn netfangið þitt." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Persónuverndarstefna" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Endurheimtarkóði" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Nýskráning" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Senda staðfestingu aftur" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Endurnýja lykilorð" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Vista í þínum athugasemdum" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Vistaðar Athugasemdir" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Skilmálar" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Þetta er byrjunin á þínum athugasemdum." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Notandanafn" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Við erum að staðfesta aðganginn þinn…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Við sendum þér staðfestingu í tölvupósti. Það geta liðið allt að 10 mínútur þar til að hún kemur." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Velkomin/n!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Þú getur líka hægri-smellt á notandaíkonið efst til vinstri, eða vinstri-smellt ef þú ert þegar á forsíðuni." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Þú getur tilkynnt galla og rætt endurbætur með okkur hér." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Aðgangurinn þinn hefur verið staðfestur!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/it/messages.po b/packages/client/components/i18n/catalogs/it/messages.po new file mode 100644 index 00000000..9ad8c7b8 --- /dev/null +++ b/packages/client/components/i18n/catalogs/it/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: it\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 persona ha reagito" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Informazioni" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Accetta la richiesta di amicizia" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Aggiungi agli amici" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avanzate" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tutti i messaggi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Sei già amicə con questo utente." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aspetto" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assegnare ruoli" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Applicazione di autenticazione" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Distintivi" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Bandisci" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Bandisci membro" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Bannare membri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Banditi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blocca utente" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloccate" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Utente bloccato" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Tracciatore di bug" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Annulla" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Annulla la richiesta d'amicizia" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Non è possibile eliminare un account finché tutti i suoi server non vengono cancellati o trasferiti." + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Modificare" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Cambiare avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Cambiare soprannome" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descrizione del canale" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nome del Canale" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canali" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Controlla la tua mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Cancella stato" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Impostazioni del client" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Chiudi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Conferma" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Conferma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Connettersi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Il contenuto viola una o altre leggi" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continua" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversazioni" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copia ID del canale" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copia ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copia link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copia ID del messaggio" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copia ID del server" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copia testo" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copia ID dell'utente" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Crea" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Crea un gruppo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Crea un nuovo bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Crea un nuovo ruolo" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Crea un account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Crea categoria" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Crea canale" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Crea invito" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Password attuale" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Stato personalizzato" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalizzazione" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Disabilitare l'audio" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Predefinito" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Elimina" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Elimina il canale" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Elimina messaggio" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Cancella ruolo" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Disabilitare account" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Non disturbare" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Fatto" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Modifica identità" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Modifica messaggio" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Modifica la tua identità" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Abilita applicazione di autenticazione" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Abilita notifiche desktop" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Inserire una nuova password." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entra nel canale" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Inserisci Codice" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Inserisci la tua password attuale." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Inserisci il nome utente che preferisci." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "I link esterni potrebbero essere pericolosi!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Impossibile verificare!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Risposta" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Trova una community in base ai tuoi hobby o interessi." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Concentrazione" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amici" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Genera Codici di Recupero" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generazione dell'invito…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Torna al login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Vai al server dei tester" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nome del gruppo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Ciao!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Pagina iniziale" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Confermo di avere almeno 18 anni." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inattivo" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisibile" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invita tutti i tuoi amici, qualche bot interessante, e fai partire una grande festa." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Codice d'invito" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invitare altri membri" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitante" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Inviti" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Torna al presente" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Vai all'inizio" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Caccia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Espelli membro" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Espellere membri" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Lingua" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Più recenti" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Esci" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Esci dal gruppo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Esci dal server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Facci sapere come possiamo migliorare la nostra app dandoci del feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Disconnettiti" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Esci da tutte le altre sessioni" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Accedi" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gestire le personalizzazioni" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Gestire messaggi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Gestire soprannomi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gestire i permessi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Gestire ruoli" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Gestire il server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Modificare webhook" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Segna come già letto" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Segna come non letto" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Travestirsi" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Menziona" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Solo menzioni" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Messaggia" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Messaggio non caricato, fare clic per saltare" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Messaggio ricevuto" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Messaggio inviato" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Il messaggio è stato inviato su un'altra piattaforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Messaggistica" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Spostare membri" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silenziare membri" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silenziato" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amici in comune" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Gruppi in comune" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Il mio account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "I miei bot" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nuova Password" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Soprannome" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nessuna" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifiche" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Disattivato" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicazione Ufficiale" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Server ufficiale" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Più vecchi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Attivato" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Una volta cancellato, non potrai tornare più indietro." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Apri le impostazioni" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Panoramica" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Password" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permessi" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Scegli un nome utente con cui vuoi che le persone possano trovarti, questo può essere modificato in seguito nelle impostazioni." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Conferma utilizzando il metodo selezionato." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Inserisci il tuo indirizzo email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Salvali in un luogo sicuro." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Scansiona o utilizza il token in basso nella tua app di autenticazione." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Seleziona un metodo per autenticare la tua richiesta." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Informativa Privacy" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profilo" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Leggere la cronologia dei messaggi" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Motivazione" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Codice di recupero" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrati" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rifiuta la richiesta di amicizia" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Rilevanza" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Rimuovi Autenticatore" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Rimuovere avatar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Rimuovi amicizia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Rispondi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Rispondendo a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Segnala" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Segnala messaggio" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Segnala server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Segnala utente" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Rinvia la verifica" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reimposta" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Resetta la password" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Resetta Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nome del ruolo" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Ruoli" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Salva" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Salva nelle tue note" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Note salvate" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Seleziona la tua lingua" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Inviare embed" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Inviare messaggi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Ha inviato un file" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Ha inviato diversi file" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descrizione del server" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nome del server" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessioni" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Impostazioni" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Diverse persone stanno scrivendo…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Suoni" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Codice sorgente" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Parlare" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Invia suggerimento per funzionalità" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Invia feedback" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Sostieni il progetto donando - grazie!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Termini di Servizio" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canale testuale" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Questo è l'inizio della tua conversazione." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Questo l'inizio delle tue note." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Questo utente ti ha bloccatə." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Piazzare membri in timeout" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Sblocca utente" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Caricare file" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Utente" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Un utente si è unito alla chiamata" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Un utente ha lasciato la chiamata" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestione dell'utente" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Impostazioni utente" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nome utente" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verificando il tuo account…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Visualizzare canali" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Visualizza qui le segnalazioni di bug attualmente attive." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Visualizza gli aggiornamenti precedenti" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Visualizza Codici di Recupero" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Visualizzazione dei messaggi più vecchi" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canale vocale" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Ti abbiamo inviato un'email di verifica. Per favore, attendi almeno 10 minuti per l'arrivo della mail." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhook" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Benvenutə a" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Bentornatə!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Puoi anche premere sull'icona utente in alto a sinistra con un click destro, o con un click sinistro se sei già nella home." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Potrai riaprirla in seguito ma scomparirà su entrambi i lati." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Puoi segnalare problemi e discutere miglioramenti con noi direttamente da qui." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Non puoi annullare questa azione." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Non sei autorizzato ad inviare messaggi in questo canale." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Non sarai in grado di accedere al tuo account a meno che non contatti il supporto - Tuttavia, i tuoi dati non verranno cancellati." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Non potrai rientrare se non sarai invitato nuovamente." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Il tuo account è stato verificato!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "I tuoi codici di recupero" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ja/messages.po b/packages/client/components/i18n/catalogs/ja/messages.po new file mode 100644 index 00000000..86a76c59 --- /dev/null +++ b/packages/client/components/i18n/catalogs/ja/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ja\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "一人が反応しました" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "概要" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "フレンド申請を承認" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "友達に追加" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "アドバンス" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "すべてのメッセージ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "このユーザーとはすでに友達です。" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "外観" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "ロールを付与する" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "二段階認証アプリ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "アバター" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "バッジ" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "BAN" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "メンバーをBAN" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "メンバーをBAN" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "BANされたユーザー" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "ユーザーのブロック" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "ブロック" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "ブロックされたユーザー" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "ボット" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "バグトラッカー" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "キャンセル" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "友達のリクエストをキャンセル" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "サーバーが削除または譲渡されるまで、アカウントを削除することはできません" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "変更" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "アバターの変更" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "ニックネームの変更" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "チャンネルの説明" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "チャンネル名" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "チャンネル" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "メールをチェック!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "ステータスのクリア" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "クライアント設定" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "閉じる" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "確認" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "確認する" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "接続" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "コンテンツが1つまたは複数の規約に違反しています" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "続ける" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "会話" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "チャンネルIDをコピー" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "IDをコピー" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "リンクをコピー" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "メッセージIDをコピー" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "サーバーIDをコピー" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "テキストをコピー" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "ユーザーIDをコピー" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "作成" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "グループの作成" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "ボットを新規作成" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "新規ロールの作成" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "アカウントを作成" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "カテゴリーを作成" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "チャンネルを作成" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "招待を作成" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "現在のパスワード" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "カスタムステータス" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "カスタマイズ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "メンバーを聞こえなくする" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "デフォルト" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "削除" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "チャンネルを削除" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "メッセージの削除" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "ロールを削除" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "アカウントの無効化" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "取り込み中" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "完了" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "プロフィールの編集" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "メッセージの編集" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "自己情報を編集する" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "メールアドレス" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "絵文字" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "認証アプリを使えるようにする" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "デスクトップ通知を有効にする" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "新しいパスワードを入力してください。" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "チャンネルに入る" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "コード入力" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "現在のパスワードを入力してください。" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "好きなユーザー名を入力してください。" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "外部リンクは危険な場合があります!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "認証に失敗しました!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "フィードバック" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "自分の趣味や関心に基づいたコミュニティを見つける。" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "集中" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "友達" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "リカバリ コードの生成" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "招待コードを作成中…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "ログイン画面に戻る" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "テスターサーバーに移動する" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "グループ名" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "こんにちは!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "ホーム" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "私は18歳以上です。" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "離席中" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "オンライン状態を隠す" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "友達全員と素敵なボットを招待して盛大なパーティーを開きましょう。" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "招待コード" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "他のユーザーを招待する" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "招待者" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "招待" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "最新のメッセージへ" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "既読にする" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "キック" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "メンバーをキック" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "メンバーをキック" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "言語" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "最新" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "離脱する" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "グループ離脱" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "サーバーを離脱" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "私たちのアプリをどのように改善するか、フィードバックをお寄せください。" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "ログアウト" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "他のすべてのセッションからログアウトする" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "ログイン" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "カスタマイズの管理" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "メッセージの管理" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "ニックネームの管理" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "権限の管理" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "ロールの管理" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "サーバーの管理" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Webhookの管理" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "既読にする" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "未読にする" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "マスカレード" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "メンバー" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "言及" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "メンションのみ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "メッセージ" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "メッセージが読み込まれていません、クリックするとジャンプします" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "メッセージ受信" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "メッセージ送信" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "別のプラットフォームでメッセージが送信された" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "メッセージ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "メンバーの移動" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "メンバーをミュート" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "ミュート" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "共通の友人" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "共通のグループ" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "自分のアカウント" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "自分のボット" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "新しいパスワード" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "ニックネーム" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "なし" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "通知" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "オフ" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "公式コミュニティー" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "公式サーバー" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "オフライン" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "最古" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "オン" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "一度削除してしまうと、元に戻すことはできません。" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "オンライン" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "設定を開く" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "概要" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "パスワード" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "権限" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "他のユーザーから検索されるように名前を決めましょう。この名前は後でもユーザーの設定から変更できます。" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "選択された方法でこの活動を確認してください。" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "メールアドレスを入力してください。" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "安全な場所に保存しておいてください。" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "お使いの認証アプリで、下記のトークンをスキャンもしくは入力してください。" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "要求を認証する方法を選んでください。" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "プライバシーポリシー" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "プロフィール" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "メッセージ履歴を閲覧" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "理由" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "リカバリーコード" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "登録" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "フレンド申請を拒否" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "関連性" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "二要素認証を無効化" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "アバターの削除" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "友人の削除" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "返信" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "への返信:" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "報告" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "メッセージを報告" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "サーバーを報告" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "ユーザーを報告" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "認証コードを再送信する" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "元に戻す" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "パスワードをリセットする" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "トークンをリセット" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "ロール名" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "ロール" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "保存" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "ノートに保存" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "保存されたノート" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "言語の選択" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "埋め込み" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "メッセージの送信" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "添付ファイルが送信されました" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "複数の添付ファイルが送信されました" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "サーバーの説明" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "サーバー名" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "セッション" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "設定" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "複数人が入力中…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "サウンド" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "ソースコード" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "発言する" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "機能を提案する" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "フィードバックを送信する" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "寄付でプロジェクトを支援する - ありがとうございます!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "利用規約" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "テキストチャンネル" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "テーマ" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "これが会話の始まりです。" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "これがノートの始まりです。" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "このユーザーはあなたをブロックしました。" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "メンバーをタイムアウト" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "ユーザーのブロック解除" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "ファイルのアップロード" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "ユーザー" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "ユーザーが通話に参加" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "ユーザーが通話から退出" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "ユーザー管理" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "ユーザー設定" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "ユーザー名" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "アカウントを検証中…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "動画" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "チャンネルを見る" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "現在進行中のバグレポートはこちら。" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "過去のアップデートを見る" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "リカバリコードを表示" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "古いメッセージを表示しています" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "ボイスチャンネル" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "確認メールを送信しました。 到着まで最大 10 分ほどお待ちください。" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "ウェブフック" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "ようこそ" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "ようこそ!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "左上のユーザーアイコンを右クリックするか、すでにホームにいる場合は左クリックしてください。" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "また開き直すことは可能ですが、両者ともに消えてしまいます。" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "こちらで直接、問題の報告や改善点の相談ができます。" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "この操作は元に戻せません。" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "このチャンネルでメッセージを送信する権限がありません。" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "サポートに連絡しない限り、アカウントにアクセスすることはできません。ただし、データは削除されません。" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "再招待されない限り、参加することはできません。" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "あなたのアカウントが検証されました!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "あなたの回復コード" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ko/messages.po b/packages/client/components/i18n/catalogs/ko/messages.po new file mode 100644 index 00000000..bee34f67 --- /dev/null +++ b/packages/client/components/i18n/catalogs/ko/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ko\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1명이 반응했어요" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "소개" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "친구 요청 수락" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "친구 추가" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "고급 모드" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "모든 메시지" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "이미 이 사용자와 친구입니다." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "모양" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "역할 부여 하기" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "인증 앱" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "아바타" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "뱃지" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "차단" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "멤버 차단하기" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "멤버 차단" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "차단" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "사용자 차단" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "차단됨" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "차단된 사용자" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "봇" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "버그 트래커" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "취소" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "요청 취소" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "모든 서버가 삭제되거나 이전될 때까지 계정을 삭제할 수 없습니다" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "변경" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "아바타 변경" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "별명 변경하기" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "채널 설명" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "채널 이름" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "채널" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "메일함을 확인하세요!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "상태 삭제" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "클라이언트 설정" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "닫기" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "확인" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "작업 확인" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "연결" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "콘텐츠가 하나 이상의 법률을 위반함" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "계속" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "대화" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "채널 ID 복사" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "ID 복사" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "링크 복사" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "메세지 ID 복사" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "서버 ID 복사" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "텍스트 복사" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "유저 ID 복사" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "생성" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "그룹 만들기" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "새로운 봇 만들기" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "새 역할 만들기" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "계정 생성" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "카테고리 만들기" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "채널 만들기" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "초대 코드 만들기" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "현재 비밀번호" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "사용자 지정 상태" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "커스터마이징" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "사용자 음소거" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "기본 역할" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "삭제" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "채널 삭제" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "메시지 삭제하기" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "역할 삭제" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "계정 비활성화" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "다른 용무 중" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "완료" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "서버별 프로필 수정" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "메시지 수정하기" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "이메일" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "이모지" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "인증앱 활성화" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "데스크탑 알림 활성화" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "새로운 비밀번호를 입력하세요." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "채널 입장" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "코드 입력" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "현재 비밀번호를 입력하세요." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "사용자명을 입력하세요." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "외부 링크는 위험할 수 있어요!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "인증하지 못했어요!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "피드백" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "나의 취미와 흥미에 맞는 커뮤니티를 찾아보세요." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "집중 중" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "친구" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "복구 코드 생성" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "초대 코드 생성 중…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "로그인으로 돌아가기" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "테스트 서버로 이동" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "그룹 이름" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "환영해요!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "홈" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "전 18세 이상이에요!" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "자리 비움" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "오프라인으로 표시" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "내 친구들과 멋진 봇을 초대해서 큰 파티를 열어보세요." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "초대 주소" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "사용자 초대" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "초대자" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "초대" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "최근으로 이동하기" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "처음으로 돌아가기" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "추방" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "멤버 추방하기" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "멤버 추방" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "언어" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "최신순" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "떠나기" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "그룹에서 나가기" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "서버에서 나가기" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "여러분의 의견으로 앱을 개선할 수 있는 방법을 알려주세요." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "로그아웃" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "다른 모든 세션에서 로그아웃" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "로그인" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "커스터마이징 관리" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "메세지 관리" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "별명 관리하기" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "권한 관리" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "역할 관리" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "서버 관리" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "웹훅 관리" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "읽음으로 표시하기" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "읽지 않음으로 표시" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "프로필 위장" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "멤버" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "멘션" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "멘션만" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "메세지" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "메시지를 불러오지 못했어요. 최신 메시지로 이동하려면 클릭하세요" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "메시지를 받았을 때" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "메시지를 보냈을 때" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "다른 플랫폼에서 전송된 메시지" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "메시징" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "멤버 이동" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "멤버 뮤트" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "음소거됨" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "같이 아는 친구" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "같이 있는 그룹" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "내 계정" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "내 봇" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "새로운 비밀번호" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "닉네임" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "없음" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "알림" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "꺼짐" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "공식 대화" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "공식 서버" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "오프라인" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "확인" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "오래된 순" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "켜짐" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "한번 삭제되면 되돌릴 수 없어요." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "온라인" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "설정 열기" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "개요" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "비밀번호" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "권한" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "사람들이 나를 찾을 수 있는 사용자 이름을 선택하세요. 나중에 설정에서 변경할 수 있어요." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "선택한 방법으로 확인하세요." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "이메일을 입력하세요." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "안전한 위치에 저장해 주세요." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "인증 앱에서 아래 토큰을 스캔하거나 사용하세요." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "귀하의 요청을 인증할 방법을 선택하세요." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "개인정보 처리방침" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "프로필" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "메시지 기록 읽기" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "이유" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "복구 코드" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "가입" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "친구 요청 거절" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "관련성순" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "인증기 제거" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "아바타 삭제" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "친구 삭제" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "답장" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "답장:" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "신고" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "메시지 신고하기" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "서버 신고하기" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "사용자 신고하기" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "인증 메일 재전송" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "초기화" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "비밀번호 재설정" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "토큰 초기화" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "역할 이름" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "역할" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "저장" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "내 메모에 저장" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "저장된 메모" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "언어 선택" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "임베드 전송" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "메세지 보내기" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "첨부파일을 보냈어요" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "여러 개의 첨부파일을 보냈어요" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "서버 설명" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "서버 이름" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "세션" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "설정" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "여러 사람이 입력 중이에요…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "소리" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "소스 코드" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "말하기" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "기능 제안하기" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "피드백 제출" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "기부로 프로젝트를 지원해 주세요. 감사드려요!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "이용약관" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "채팅 채널" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "테마" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "내 대화의 시작이에요." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "내 노트의 시작이에요." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "이 사용자가 당신을 차단했습니다." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "타임아웃" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "사용자 차단 해제" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "파일 업로드" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "사용자" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "사용자가 음성 채널에 참가했을 때" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "사용자가 음성 채널에서 나갔을 때" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "사용자 관리" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "사용자 설정" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "사용자명" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "계정을 확인 중입니다…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "동영상" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "채널 보기" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "여기에서 현재 활성화된 버그 보고서를 봅니다." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "이전 업데이트 보기" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "복구 코드 보기" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "오래된 메시지를 보고 있어요" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "음성 채널" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "발송까지 10분 정도 소요될 수 있어요." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "웹훅" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "환영합니다" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "환영합니다!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "왼쪽 상단에 있는 사용자 아이콘을 우클릭하거나, 홈에 있는 경우 좌클릭할 수도 있어요." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "나중에 다시 열 수 있지만 서로에게서 사라집니다." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "여기서 문제점을 제보하고 개선 사항에 대해 논의할 수 있어요." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "이 행동은 되돌릴수 없습니다." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "이 채널에 메시지를 보낼 권한이 없어요." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "지원팀에 문의하지 않으면 귀하의 계정에 액세스할 수 없습니다. 그러나 귀하의 데이터는 삭제되지 않습니다." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "다시 초대되지 않는 이상 다시 들어올 수 없어요." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "계정이 확인 되었어요!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "나의 복구 코드" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/lb/messages.po b/packages/client/components/i18n/catalogs/lb/messages.po new file mode 100644 index 00000000..14f9b443 --- /dev/null +++ b/packages/client/components/i18n/catalogs/lb/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: lb\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Iwwer" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Vriend toevoegen" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "All Messagen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authentifizéierungsapp" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban lid" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bans" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Gebruiker blokkeren" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blockéiert" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blockéiert Benotzer" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug Tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Ofbriechen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Verzoek annuleren" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Änneren" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanal Beschreiwung" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanal Numm" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanalen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Kontroléier deng E-Mail-Boîte!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Cliente-Astellungen" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Zoumaachen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Weidergitt" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Gesprekken" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopieer link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Erstellt e Grupp" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Eng nei Roll erstellen" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Ee Kont uleeën" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Aktuellt Passwuert" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Läschen" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Bericht verwijderen" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Desaktivéiere Kont" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Net stéieren" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Bericht bewerken" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-Mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Aktivéiert Desktop Notifikatiounen." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Kanal matmaachen" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Gëff däin aktuellt Passwuert an." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Gëff däi gewënschten Notzernumm an." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Extern Links kënne geféierlech sinn!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Vrienden" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generéieren invitéieren…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Zeréck zum Login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Grupp Numm" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hallo!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Home" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Ech konfirméieren datt ech op d'mannst 18 Joer al sinn." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inaktiv" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Onsichtbar" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Invitéiere Code" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Inviter" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitatiounen" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kick" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kick lid" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Sprooche" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Lescht" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Loosst" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Ausloggen" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Log aus all aner Sessiounen" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Login" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Memberen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Message kritt" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Message geschéckt" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Gemuted" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Allgemeng Frënn" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Allgemeng Gruppéie" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mäi Kont" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Meng Bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Keen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifikatiounen" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Aus" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Un" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Eemol ass et geläscht, et gëtt kee Réck." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Passwuert" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissiounen" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Wielt e Benotzernumm deen Dir wëllt datt d'Leit Iech fäeg sinn ze fannen, dëst kann méi spéit am Astellunge geännert ginn." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Gëff deng E-Mailsadress un." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Dateschutzpolitik" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Wiederherstellungscode" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registréieren" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevanz" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Ewechzehuelen Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Verwijder vriend" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Bestätigung nachenkéier schecken" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Passwuert zerécksetzen" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Numm vum Roll" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Opslaan in uw notities" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Opgeslagen notities" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Wielt Är Sprooch" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Huet en Uschloss geschéckt" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Huet verschidde Uschlëss geschéckt" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Server Beschreiwung" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Server Numm" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessiounen" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Astellunge" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "E puer Leit schreiwen…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Quellecocode" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Gitt Feature Virschlag" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Notzungsbedingungen" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Text Kanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Theme" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Dëst ass de Start vun Ärem Gespréich." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Deblokkeer gebruiker" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Benotzer" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Benotzer ass bäikomm Ruff" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Benotzer lénks Ruff" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Benotzer -stellungen" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Notzernumm" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Show aktiv Bug Rapport hei." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Eeler Messagen kucken" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Stëmm Kanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Et ka bis zu 10 Minuten daueren bis d‘E-Mail ukennt." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Wëllkomm no" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Wëllkomm zeréck!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Dir kënnt se méi spéit opmaachen, awer et gëtt op béide Säiten verschwonnen." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Dir hutt keng Erlaabnis fir Messagen an dësem Kanal ze schécken." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Dir kënnt net fäeg sinn ze rejoin ausser Dir sidd nei invitéiert." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/leet/messages.po b/packages/client/components/i18n/catalogs/leet/messages.po new file mode 100644 index 00000000..c84a79d7 --- /dev/null +++ b/packages/client/components/i18n/catalogs/leet/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: leet\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 P3250N 234C73D" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "480U7" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "4CC3P7 F213ND 23QU357" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "4DD F213ND" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "4DV4NC3D" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "4LL M3554635" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "4L234DY F213ND5 W17H 7H15 U532." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "4PP3424NC3" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "45516N 20L35" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "4U7H3N71C4702 4PP" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "4V4742" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "84D635" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "84N" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "84N M3M832" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "84N M3M8325" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "84N5" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "8L0CK U532" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "8L0CK3D" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "8L0CK3D U532" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "807" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "8U6 724CK32" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "C4NC3L" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "C4NC3L F213ND 23QU357" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "C4NN07 D3L373 4CC0UN7 UN71L 532V325 423 D3L373D 02 724N5F3223D" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "CH4N63" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "CH4N63 4V4742" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "CH4N63 N1CKN4M3" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "CH4NN3L D35C21P710N" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "CH4NN3L N4M3" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "CH4NN3L5" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "CH3CK Y0U2 M41L!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "CL342 5747U5" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "CL13N7 53771N65" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "CL053" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "C0NF12M" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "C0NF12M 4C710N" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "C0NN3C7" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "C0N73N7 8234K5 0N3 02 M023 L4W5" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "C0N71NU3" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "C0NV3254710N5" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "C0PY CH4NN3L 1D" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "C0PY 1D" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "C0PY L1NK" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "C0PY M355463 1D" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "C0PY 532V32 1D" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "C0PY 73X7" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "C0PY U532 1D" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "C23473" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "C23473 4 620UP" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "C23473 4 N3W 807" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "C23473 4 N3W 20L3" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "C23473 4N 4CC0UN7" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "C23473 C473602Y" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "C23473 CH4NN3L" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "C23473 1NV173" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "CU223N7 P455W02D" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "CU570M 5747U5" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "CU570M154710N" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "D34F3N M3M8325" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "D3F4UL7" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "D3L373" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "D3L373 CH4NN3L" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "D3L373 M355463" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "D3L373 20L3" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "D1548L3 4CC0UN7" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "D0 N07 D157U28" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "D0N3" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "3D17 1D3N717Y" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "3D17 M355463" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "3D17 Y0U2 1D3N717Y" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "3M41L" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "3M0J15" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "3N48L3 4U7H3N71C4702 4PP" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "3N48L3 D35K70P N071F1C4710N5" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "3N732 4 N3W P455W02D." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "3N732 CH4NN3L" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "3N732 C0D3" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "3N732 Y0U2 CU223N7 P455W02D." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "3N732 Y0U2 P23F3223D U532N4M3." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "3X732N4L L1NK5 C4N 83 D4N6320U5!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "F41L3D 70 V321FY!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "F33D84CK" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "F1ND 4 C0MMUN17Y 8453D 0N Y0U2 H088135 02 1N7323575." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "F0CU5" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "F213ND5" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "63N32473 23C0V32Y C0D35" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "63N32471N6 1NV173…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "60 84CK 70 L061N" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "60 70 7H3 7357325 532V32" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "620UP N4M3" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "H3LL0!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "H0M3" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "1 C0NF12M 7H47 1 4M 47 L3457 18 Y3425 0LD." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "1DL3" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "1NV1518L3" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "1NV173 4LL 0F Y0U2 F213ND5, 50M3 C00L 8075, 4ND 7H20W 4 816 P427Y." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "1NV173 C0D3" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "1NV173 07H325" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "1NV1732" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "1NV1735" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "JUMP 70 P2353N7" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "JUMP 70 7H3 8361NN1N6" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "K1CK" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "K1CK M3M832" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "K1CK M3M8325" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "L4N6U463" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "L47357" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "L34V3" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "L34V3 620UP" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "L34V3 532V32" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "L37 U5 KN0W H0W W3 C4N 1MP20V3 0U2 4PP 8Y 61V1N6 U5 F33D84CK." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "L06 0U7" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "L06 0U7 0F 4LL 07H32 535510N5" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "L061N" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "M4N463 CU570M154710N" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "M4N463 M3554635" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "M4N463 N1CKN4M35" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "M4N463 P32M15510N5" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "M4N463 20L35" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "M4N463 532V32" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "M4N463 W38H00K5" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "M42K 45 234D" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "M42K 45 UN234D" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "M45QU324D3" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "M3M8325" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "M3N710N" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "M3N710N5 0NLY" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "M355463" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "M355463 N07 L04D3D, CL1CK 70 JUMP" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "M355463 23C31V3D" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "M355463 53N7" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "M355463 W45 53N7 0N 4N07H32 PL47F02M" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "M355461N6" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "M0V3 M3M8325" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "MU73 M3M8325" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "MU73D" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "MU7U4L F213ND5" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "MU7U4L 620UP5" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "MY 4CC0UN7" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "MY 8075" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "N3W P455W02D" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "N1CKN4M3" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "N0N3" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "N071F1C4710N5" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "0FF" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "0FF1C14L C0MMUN1C4710N" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "0FF1C14L 532V32" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "0FFL1N3" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "0K" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "0LD357" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "0N" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "0NC3 17'5 D3L373D, 7H323'5 N0 601N6 84CK." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "0NL1N3" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "0P3N 53771N65" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "0V32V13W" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "P455W02D" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "P32M15510N5" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "P1CK 4 U532N4M3 7H47 Y0U W4N7 P30PL3 70 83 48L3 70 F1ND Y0U 8Y. 7H15 C4N 83 CH4N63D L4732 1N Y0U2 U532 53771N65." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "PL3453 C0NF12M 7H15 4C710N U51N6 7H3 53L3C73D M37H0D." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "PL3453 3N732 Y0U2 3M41L." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "PL3453 54V3 7H353 70 4 54F3 L0C4710N." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "PL3453 5C4N 02 U53 7H3 70K3N 83L0W 1N Y0U2 4U7H3N71C4702 4PP." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "PL3453 53L3C7 4 M37H0D 70 4U7H3N71C473 Y0U2 23QU357." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "P21V4CY P0L1CY" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "P20F1L3" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "234D M355463 H15702Y" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "23450N" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "23C0V32Y C0D3" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "23615732" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "23J3C7 F213ND 23QU357" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "23L3V4NC3" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "23M0V3 4U7H3N71C4702" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "23M0V3 4V47425" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "23M0V3 F213ND" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "23PLY" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "23PLY1N6 70" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "23P027" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "23P027 M355463" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "23P027 532V32" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "23P027 U532" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "2353ND V321F1C4710N" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "23537" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "23537 P455W02D" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "23537 70K3N" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "20L3 N4M3" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "20L35" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "54V3" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "54V3 70 Y0U2 N0735" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "54V3D N0735" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "53L3C7 Y0U2 L4N6U463" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "53ND 3M83D5" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "53ND M3554635" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "53N7 4N 4774CHM3N7" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "53N7 MUL71PL3 4774CHM3N75" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "532V32 D35C21P710N" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "532V32 N4M3" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "535510N5" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "53771N65" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "53V324L P30PL3 423 7YP1N6…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "50UND5" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "50U2C3 C0D3" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "5P34K" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "5U8M17 F347U23 5U6635710N" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "5U8M17 F33D84CK" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "5UPP027 7H3 P20J3C7 8Y D0N471N6 - 7H4NK Y0U!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "732M5 0F 532V1C3" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "73X7 CH4NN3L" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "7H3M3" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "7H15 15 7H3 57427 0F Y0U2 C0NV3254710N." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "7H15 15 7H3 57427 0F Y0U2 N0735." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "7H15 U532 H45 8L0CK3D Y0U." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "71M30U7 M3M8325" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "UN8L0CK U532" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "UPL04D F1L35" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "U532" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "U532 J01N3D C4LL" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "U532 L3F7 C4LL" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "U532 M4N463M3N7" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "U532 53771N65" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "U532N4M3" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "V321FY1N6 Y0U2 4CC0UN7…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "V1D30" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "V13W CH4NN3L" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "V13W CU223N7LY 4C71V3 8U6 23P0275 H323." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "V13W 0LD32 UPD4735" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "V13W 23C0V32Y C0D35" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "V13W1N6 0LD32 M3554635" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "V01C3 CH4NN3L" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "W3'V3 53N7 Y0U 4 V321F1C4710N 3M41L. PL3453 4LL0W UP 70 10 M1NU735 F02 17 70 4221V3." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "W38H00K5" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "W3LC0M3 70" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "W3LC0M3!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Y0U C4N 4L50 216H7-CL1CK 7H3 U532 1C0N 1N 7H3 70P L3F7, 02 L3F7 CL1CK 17 1F Y0U'23 4L234DY H0M3." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Y0U C4N 23-0P3N 17 L4732, 8U7 17 W1LL D154PP342 0N 807H 51D35." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Y0U C4N 23P027 155U35 4ND D15CU55 1MP20V3M3N75 W17H U5 D123C7LY H323." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Y0U C4NN07 UND0 7H15 4C710N." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Y0U D0N'7 H4V3 P32M15510N 70 53ND M3554635 1N 7H15 CH4NN3L." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Y0U W0N'7 83 48L3 70 4CC355 Y0U2 4CC0UN7 UNL355 Y0U C0N74C7 5UPP027 - H0W3V32, Y0U2 D474 W1LL N07 83 D3L373D." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Y0U W0N'7 83 48L3 70 23J01N UNL355 Y0U 423 23-1NV173D." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Y0U2 4CC0UN7 H45 833N V321F13D!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Y0U2 23C0V32Y C0D35" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/lt/messages.po b/packages/client/components/i18n/catalogs/lt/messages.po new file mode 100644 index 00000000..ad1f7bb7 --- /dev/null +++ b/packages/client/components/i18n/catalogs/lt/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: lt\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 žmogus sureagavo" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Apie" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Priimti draugo prašymą" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Pridėti į draugus" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Išplėstiniai" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Visos žinutės" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Esate draugai su šiuo naudotoju." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Išvaizda" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Priskirti vaidmenis" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Autentifikavimo programėlė" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avataras" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Ženkleliai" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Blokuoti" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Blokuoti narį" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Blokuoti narius" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Blokavimai" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokuoti naudotoją" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Užblokuotas" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Užblokuotas naudotojas" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Botas" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Klaidų seklys" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Atšaukti" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Atšaukti draugo prašymą" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Paskyros negalima ištrinti kol serveriai nėra ištrinti arba perduota nuosavybė" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Keisti" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Keisti avatarą" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Keisti pravardę" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanalo aprašymas" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanalo pavadinimas" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanalai" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Patikrinkite savo el. paštą!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Valyti būseną" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Kliento nustatymai" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Uždaryti" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Patvirtinti" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Patvirtinti veiksmą" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Prisijungimas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Turinys pažeidžia vieną arba kelis įstatymus" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Tęsti" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Pokalbiai" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopijuoti kanalo ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopijuoti ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopijuoti nuorodą" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopijuoti žinutės ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopijuoti serverio ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopijuoti tekstą" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopijuoti naudotojo ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Kurti" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Kurti grupę" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Kurti naują botą" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Kurti naują vaidmenį" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Kurti paskyrą" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Kurti kategoriją" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Kurti kanalą" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Kurti kvietimą" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Dabartinis slaptažodis" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Tinkinta būsena" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Tinkinimas" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Išjungti narių garsą" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Numatytasis" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Naikinti" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Naikinti kanalą" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Naikinti žinutę" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Naikinti vaidmenį" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Išjungti paskyrą" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Netrukdyti" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Baigta" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Redaguoti tapatybę" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Redaguoti žinutę" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Redaguokite savo tapatybę" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "El. paštas" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Jaustukai" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Įjungti autentifikavimo programėlę" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Įjungti pranešimus darbalaukyje" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Įveskite naują slaptažodį." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Eiti į kanalą" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Įveskite kodą" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Įveskite dabartinį slaptažodį." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Įveskite naudotojo vardą." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Išorinės nuorodos gali būti pavojingos!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Nepavyko patvirtinti!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Atsiliepimai" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Raskite bendruomenę pagal savo hobius ar interesus." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Susikaupęs" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Draugai" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generuoti atkūrimo kodus" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generuojamas kvietimas…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Grįžti prie prisijungimo" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Prisijunkite prie testuotojų serverio" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Grupės pavadinimas" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Sveiki!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Pagrindinis" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Patvirtinu, kad man daugiau nei 18 metų." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Pasitraukęs" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Nematomumas" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Pakvieskite visus savo draugus, keletą šaunių botų ir pasilinksminkite." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kvietimo kodas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Kviesti kitus" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Kviečiantysis" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Kvietimai" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Eiti į dabartį" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Eiti į pradžią" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Išmesti" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Išmesti narį" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Išmesti narius" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Kalba" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Naujausi" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Išeiti" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Išeiti iš grupės" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Išeiti iš serverio" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Pateikite atsiliepimą, kad galėtume tobulinti mūsų programėlę." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Atsijungti" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Atsijungti nuo visų kitų sesijų" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Prisijungti" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Tvarkyti tinkinimą" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Tvarkyti žinutes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Tvarkyti pravardes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Tvarkyti leidimus" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Tvarkyti vaidmenis" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Tvarkyti serverį" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Tvarkyti Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Pažymėti kaip skaitytą" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Pažymėti kaip neskaitytą" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskaradas" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Nariai" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Paminėti" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Tik paminėjimai" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Žinutė" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Žinutė neįkelta, spustelėkite, kad pereitumėte" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Žinutė gauta" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Žinutė išsiųsta" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Žinutė buvo išsiųsta kitoje platformoje" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Žinutės" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Perkelti narius" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Nutildyti narius" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Nutildytas" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Bendri draugai" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Bendros grupės" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mano paskyra" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mano botai" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Naujas slaptažodis" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Pravardė" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Jokių" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Pranešimai" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Išjungta" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Oficialus pranešimas" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Oficialus serveris" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Atsijungęs" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Gerai" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Seniausi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Įjungta" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Panaikinus kelio atgal nėra." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Prisijungęs" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Atidarykite nustatymus" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Apžvalga" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Slaptažodis" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Leidimai" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pasirinkite naudotojo vardą, pagal kurį jus galėtų rasti žmonės. Jis galės būti pakeistas naudotojo nustatymuose." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Patvirtinkite šį veiksmą pasirinktu būdu." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Įveskite el. pašto adresą." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Išsaugokite juos saugioje vietoje." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Nuskaitykite arba panaudokite žemiau esantį raktą autentifikavimo programėlėje." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Pasirinkite užklausos autentifikavimo būdą." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privatumo politika" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profilis" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Peržiūrėti žinučių istoriją" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Priežastis" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Atkūrimo kodas" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registruotis" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Atmesti draugo prašymą" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Aktualūs" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Šalinti autentifikatorių" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Šalinti avatarus" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Šalinti iš draugų" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Atsakyti" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Atsakoma" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Skųstis" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Skųstis žinute" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Skųstis serveriu" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Skųstis naudotoju" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Iš naujo siųsti patvirtinimą" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Atkurti" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Atkurti slaptažodį" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Vaidmens pavadinimas" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Vaidmenys" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Išsaugoti" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Išsaugoti į savo užrašus" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Išsaugoti užrašai" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Pasirinkite kalbą" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Siųsti įterpimus" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Siųsti žinutes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Išsiųstas priedas" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Išsiųsti keli priedai" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Serverio aprašymas" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Serverio pavadinimas" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesijos" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Nustatymai" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Rašo keli žmonės…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Garsai" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Pirminis kodas" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Kalbėjimas" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Pateikti funkcijos pasiūlymą" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Pateikti atsiliepimą" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Paremkite projektą paaukodami – ačiū!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Naudojimo sąlygos" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Teksto kanalas" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Tai yra jūsų pokalbio pradžia." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Tai yra jūsų užrašų pradžia." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Šis naudotojas jus užblokavo." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Sulaikyti narius" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Atblokuoti naudotoją" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Įkelti failus" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Naudotojas" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Naudotojas prisijungė prie skambučio" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Naudotojas paliko skambutį" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Naudotojų valdymas" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Naudotojo nustatymai" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Naudotojo vardas" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Patvirtinama jūsų paskyra…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vaizdo įrašai" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Peržiūrėti kanalą" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Peržiūrėkite šiuo metu aktyvius klaidų pranešimus čia." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Rodyti senesnius naujinimus" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Rodyti atkūrimo kodus" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Rodomos senesnės žinutės" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Balso kanalas" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Mes išsiuntėme patvirtinimo el. laišką. Gali užtrukti iki 10 minučių, kol jį gausite." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Internetiniai Kabliukai" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Sveiki atvykę į" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Sveiki!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Taip pat galite spustelėti dešinįjį pelės klavišą ant naudotojo piktogramos arba kairįjį, jei jau esate pagrindiniame puslapyje." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Vėliau galėsite jį vėl atidaryti, bet jis išnyks iš abiejų pusių." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Galite pranešti apie problemas ir aptarti patobulinimus su mumis tiesiogiai čia." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Šis veiksmas yra negrįžtamas." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Neturite leidimo siųsti žinučių šiame kanale." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Negalėsite prisijungti prie savo paskyros, nebent susisieksite su palaikymu – jūsų duomenys nebus panaikinti." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Negalėsite sugrįžti, nebent kas nors jus pakvies." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Jūsų paskyra patvirtinta!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Jūsų atkūrimo kodai" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/lv/messages.po b/packages/client/components/i18n/catalogs/lv/messages.po new file mode 100644 index 00000000..bdf6b4cb --- /dev/null +++ b/packages/client/components/i18n/catalogs/lv/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: lv\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 cilvēks reaģēja" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Par" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Pieņemiet draudzības pieprasījumu" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Pievienot draugu" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Papildu" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Visas ziņas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Jau esi draugos ar šo lietotāju." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Izskats" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Piešķirt lomas" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Autentifikācijas lietotne" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatārs" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Nozīmes" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Pastāvīgi izraidīt" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Pastāvīgi izraidīt dalībnieku" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Pastāvīgi izraidīt dalībniekus" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Pastāvīgi izraidītie" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloķēt lietotāju" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloķētie" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Bloķēts lietotājs" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robots" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Kļūdu Meklētājs" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Atcelt" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Atcelt draudzības pieprasījumu" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Konta dzēšana nav iespējama līdz serveri netiek dzēsti vai pārnēsāti" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Mainīt" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Mainīt avatāru" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Mainīt iesauku" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanāla apraksts" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanāla vārds" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanāli" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Pārbaudi savu e-pastu!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Notīrīt statusu" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Klienta iestatījumi" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Aizvērt" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Apstiprināt" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Apstiprināt darbību" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Savienot" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Saturs pārkāpj vienu vai vairākus likumus" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Turpināt" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Sarunas" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopēt kanāla ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopēt ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopēt saiti" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopēt ziņas ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopēt servera ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopēt tekstu" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopēt lietotāja ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Izveidot" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Izveidot grupu" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Izveidot robotu" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Izveidot jaunu lomu" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Izveidot kontu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Izveidot kategoriju" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Izveidot kanālu" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Izveidot ielūgumu" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Pašreizējā parole" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Pielāgots statuss" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Pielāgošana" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Izslēgt dalībnieku klausuli" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Noklusējums" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Dzēst" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Dzēst kanālu" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Dzēst ziņu" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Dzēst lomu" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Atspējot kontu" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Netraucēt" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Gatavs" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Mainīt identitāti" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Mainīt ziņu" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Rediģējiet savu identitāti" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-pasta adrese" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emocijzīmes" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Iespējot autentifikācijas lietotni" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Iespējot darbvirsmas paziņojumus" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Ievadi jaunu paroli." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Ienākt kanālā" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Ievadīt kodu" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Ievadi pašreizējo paroli." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Ievadi vēlamo lietotājvārdu." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Saites uz citām lapām var būt bīstamas!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Neizdevās verificēt!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Atsauksmes" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Atrodi kopienu ar līdzīgiem hobijiem un interesēm." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokusēt" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Draugi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Izveidot piekļuves atgūšanas kodus" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Izveido ielūgumu…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Atgriezties ienākšanas lapā" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Doties uz testētāju serveri" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Grupas nosaukums" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Sveiki!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Sākums" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Apstiprinu, ka esmu vismaz 18 gadus vecs." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Brīvs" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Neredzams" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Uzaicini savus draugus un foršus robotus, un sāciet ballīti." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Ielūguma kods" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Ielūgt citus" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Ielūguma sūtītājs" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Uzaicinājumi" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Doties uz jaunākajām ziņām" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Doties uz sākumu" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Noņemt" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Noņemt dalībnieku" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Noņemt dalībniekus" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Valoda" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Jaunākās" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Pamest" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Pamest grupu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Pamest serveri" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Pastāsti, kā mēs varam uzlabot mūsu lietotni, sniedzot mums atsauksmes." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Iziet" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Izrakstieties no visām pārējām sesijām" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Pieteikties" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Pārvaldīt pielāgošanu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Pārvaldīt ziņas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Pārvaldīt iesaukas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Pārvaldīt atļaujas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Pārvaldīt lomas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Pārvaldīt serveri" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Pārvaldīt Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Atzīmēt kā lasītu" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Atzīmēt kā nelasītu" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskēties" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Dalībnieki" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Pieminēšana" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Tikai pieminējumi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Ziņa" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Ziņojums nav ielādēts, noklikšķiniet, lai pārietu" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Ziņa saņemta" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Ziņa aizsūtīta" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Ziņa tika nosūtīta citā platformā" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Ziņapmaiņa" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Pārvietot dalībniekus" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Izslēgt dalībniekiem mikrofonu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Klusināts" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Kopīgie draugi" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Kopīgās grupas" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mans konts" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mani roboti" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Jauna parole" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Iesauka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Neviens" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Paziņojumi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Izslēgts" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Oficiālā saziņa" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Oficiālais serveris" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Bezsaistē" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Labi" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Vecākās" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ieslēgts" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Izdzēšanai atpakaļceļa nav." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Tiešsaistē" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Atvērt iestatījumus" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Pārskats" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Parole" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Atļaujas" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Izvēlieties lietotājvārdu, pēc kura vēlaties, lai cilvēki varētu jūs atrast. To var mainīt vēlāk jūsu lietotāja iestatījumos." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Lūdzu, apstipriniet šo darbību, izmantojot atlasīto metodi." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Lūdzu, ievadiet savu e-pasta adresi." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Lūdzu, glabā tos drošā vietā." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Lūdzu, skenē vai ievadi zemāk esošo kodu savā autentifikācijas lietotnē." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Lūdzu izvēlies sistēmu, ar ko autentificēt savu pieprasījumu." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privātuma politika" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profils" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Lasīt ziņa vēsture" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Iemesls" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Piekļuves atgūšanas kods" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Reģistrēties" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Noraidīt draudzības pieprasījumu" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Pēc atbilstības" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Noņemt autentificētāju" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Noņemt avatārus" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Atsaukt draudzību" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Atbildēt" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Raksta atbildi" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Ziņot par pārkāpumu" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Ziņot par ziņojumu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Ziņot par serveri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Ziņot par lietotāju" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Sūtīt verifikācijas saiti vēlreiz" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Atiestatīt" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Atiestatīt paroli" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Lomas nosaukums" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Lomas" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Saglabāt" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Saglabāt savās piezīmēs" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Saglabātās piezīmes" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Izvēlies savu valodu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Sūtīt ietverto saturu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Sūtīt ziņas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Nosūtīja pielikumu" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Nosūtīja vairākus pielikumus" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Servera apraksts" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servera nosaukums" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesijas" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Iestatījumi" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Vairāki cilvēki raksta…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Skaņas" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Avota kods" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Runājiet" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Ieteikt jaunu funkcijas" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Sūtīt atsauksmes" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Atbalsti projektu ziedojot – paldies!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Lietošanas noteikumi" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Teksta kanāls" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Motīvs" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Šis ir tavas sarunas sākums." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Šis ir tavu piezīmju sākums." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Šis lietotājs tevi nobloķēja." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Īslaicīga dalībnieku bloķēšana" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Atcelt lietotāja bloķēšanu" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Augšuplādēt failus" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Lietotājs" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Lietotājs pievienojās zvanam" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Lietotājs atstāja zvanu" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Lietotāju pārvaldība" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Lietotāja iestatījumi" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Lietotājvārds" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Notiek jūsu konta verificēšana…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Skatīt kanālu" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Skati aktīvos kļūdu ziņojumus šeit." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Skatīt vecākus atjauninājumus" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Skatīt atgūšanas kodus" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Redzamas vecākas ziņas" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Balss kanāls" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Lūdzu gaidiet līdz 10 minūtēm, lai atnāktu verifikācijas ēpasts." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Tīmekļa aizķeres" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Laipni lūgts" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Laipni lūdzam!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Vari arī veikt labo klikšķi uz lietotāja ikonas augšējā kreisajā stūri, vai arī, ja jau esi sākumā – ar kreiso klikšķi." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Varat to atvērt vēlāk, taču tas pazudīs no abām pusēm." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Šeit vari ziņot par problēmām uz pārrunāt uzlabojumus ar mums." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Šo darbību nav iespējams atsaukt." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Tev nav atļaujas sūtīt ziņas šajā kanālā." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Jūs nevarēsiet piekļūt savam kontam, ja vien sazināsieties ar palīdzību - tomēr jūsu dati netiks dzēsti." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nevarēsi atkal pievienoties, ja tevi neuzlūgs." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Jūsu konts ir verificēts!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Tavi piekļuves atgūšanas kodi" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/mk/messages.po b/packages/client/components/i18n/catalogs/mk/messages.po new file mode 100644 index 00000000..faf14e3a --- /dev/null +++ b/packages/client/components/i18n/catalogs/mk/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: mk\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "За" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Сите пораки" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Блокиран корисник" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "бот" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Канали" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Провери си го е-маилот." + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Поставки на клиентот" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Разговори" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Креирај група" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Креирај сметка" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Сегашна лозинка" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Не вознемирувај" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Епошта" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Внесете канал" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Внеси ја сегашната лозинка." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Внеси корисничко име." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Најдете заедница заснована на вашите хоби или интереси." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Другари" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Врати се на најава." + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Име на групата" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Здраво!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Дома" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Потврдувам дека имам најмалку 18 години." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Неактивен" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Невидлив" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Поканете ги сите ваши пријатели, неколку кул ботови и организирајте голема забава." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Скокни до сегашноста" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Скокни на почеток" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Најнови" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Кажете ни како можеме да ја подобриме нашата апликација со давање повратни информации." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Логирај Се" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Само спомнувања" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Исклучен звук" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ниту еден" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Исклучено" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Офлајн" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Најстар" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Вклучено" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Онлајн" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Отвори поставки" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Лозинка" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Внесете ја вашата епошта." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Политика за приватност" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Регистрирај се" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Релевантност" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Одговарајќи на" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Препрати верификација." + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Ресетирај лозинка." + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Зачувајте на вашите белешки" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Зачувани белешки" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Испрати прилог" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Испрати повеќе прилози" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Опис на серверот" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Поставки" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Неколку луѓе пишуваат…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Поддржете го проектот со донирање - ви благодариме!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Услови за услуга" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Текст канал" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ова е почетокот на вашиот разговор." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ова е почеток на вашите белешки." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Кориснички поставки" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Корисничко име" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Гледате постари пораки" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Гласовен канал" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Ве молиме дозволете 10 минути да пристигне." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Добредојде назад!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Можете исто така да кликнете со десното копче на иконата на корисникот во горниот лев агол или да кликнете лево на неа ако сте веќе дома." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Придружете се на серверот за тестирање." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Немате дозвола да испраќате пораки во овој канал." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ms/messages.po b/packages/client/components/i18n/catalogs/ms/messages.po new file mode 100644 index 00000000..e495ae95 --- /dev/null +++ b/packages/client/components/i18n/catalogs/ms/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ms\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Mengenai" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Tambah rakan" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Semua Mesej" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Sudah berakan dengan pengguna ini." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Penampilan" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Berikan Peranan" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplikasi pengesah" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Lencana" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Larang" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban ahli" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ban Ahli" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Ban" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Sekat pengguna" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Disekat" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Pengguna yang disekat" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Penjejak Bug" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Batal" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Batal permintaan" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Tukar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Tukar Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Tukar Nama Panggilan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Penerangan Saluran" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nama Saluran" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Saluran" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Semak e-mel anda!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Kosongkan status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Tetapan Klien" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Tutup" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "sahkan" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Sahkan tindakan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Sambung" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Kandungan melanggar satu atau lebih undang-undang" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Teruskan" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Perbualan" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Salin ID saluran" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Salin ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Salin pautan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Salin ID mesej" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Salin ID server" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Salin teks" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Salin ID pengguna" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Cipta" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Cipta grup" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Mencipta bot baharu" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Cipta peranan baru" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Cipta Akaun" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Cipta kategori" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Cipta saluran" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Cipta jemputan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Kata Laluan Semasa" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Status khas" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Penyesuaian" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Pekak ahli" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Lalai" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Padam" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Hapus saluran" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Padam mesej" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Padam Peranan" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Lumpuhkan Akaun" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Jangan Ganggu" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Selesai" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Ubah identiti" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Ubah mesej" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mel" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Dayakan aplikasi pengesah" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Dayakan Pemberitahuan Desktop." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Masukkan Kata Laluan Baharu." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Masuk Saluran" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Masukkan kod" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Masukkan kata laluan semasa anda." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Masukkan nama pengguna pilihan anda." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Pautan luaran boleh membahayakan!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Gagal mengesahkan!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Maklum balas" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Cari komuniti berdasarkan hobi atau minat anda." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Rakan" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Hasilkan Kod Pemulihan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Menjana jemputan…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Kembali ke log masuk" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Pergi ke server penguji" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nama Grup" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hai!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Utama" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Saya mengesahkan bahawa saya berumur sekurang-kurangnya 18 tahun." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Diam" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Tak terlihat" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Jemput semua rakan anda, beberapa bot yang hebat, dan buat parti besar-besaran." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kod Jemputan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Jemput Orang Lain" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Penjemput" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Jemputan" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Lompat ke semasa" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Lompat ke permulaan" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Tendang" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Tendang ahli" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Tendang Ahli" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Bahasa" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Terkini" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Keluar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Keluar grup" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Keluar server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Beritahu kami cara kami boleh menambah baik aplikasi kami dengan memberi maklum balas kepada kami." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Log Keluar" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Log keluar dari semua sesi lain" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Log masuk" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Urus Penyesuaian" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Urus Mesej" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Urus Nama Panggilan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Urus Kebenaran" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Urus Peranan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Urus Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Urus Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "tanda sebagai telah dibaca" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "tanda sebagai tidak dibaca" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "menyamar" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Ahli" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Sebut" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Sebutan Sahaja" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Mesej" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mesej tidak dimuatkan, klik untuk melompat" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mesej diterima" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mesej dihantar" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mesej telah dihantar pada platform lain" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Pindah Ahli" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Redam Ahli" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Disenyapkan" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Rakan bersama" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grup Bersama" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Akaun Saya" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Bot Saya" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Kata Laluan Baharu" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Nama samaran" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Tiada" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Pemberitahuan" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Mati" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Komunikasi rasmi" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Pelayan Rasmi" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Di Luar Talian" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Tertua" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Hidup" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Setelah dipadamkan, tidak akan ada jalan kembali." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Dalam Talian" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Buka Tetapan" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Gambaran keseluruhan" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Kata laluan" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Kebenaran" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pilih nama pengguna yang anda mahukan untuk orang lain mengenal anda, ini boleh diubah kemudian dalam tetapan." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Sila sahkan menggunakan kaedah yang dipilih." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Masukkan e-mel anda." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Sila simpan ini ke lokasi yang selamat." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Sila imbas atau gunakan token di bawah dalam aplikasi pengesahan anda." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Sila pilih kaedah untuk mengesahkan permintaan anda." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Dasar Privasi" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Baca Sejarah Mesej" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Sebab" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kod pemulihan" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Daftar" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Perkaitan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Buang Pengesah" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Keluarkan Avatar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Buang rakan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Balas" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Membalas kepada" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Lapor" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Laporkan mesej" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Pelayan laporan" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Laporan pengguna" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Hantar semula pengesahan" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Tetapkan semula" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Tetap semula kata laluan" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nama Peranan" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Peranan" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Simpan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Simpan ke nota anda" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Simpanan Nota" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Pilih bahasa anda" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Hantar Benam" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Hantar Mesej" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "menghantar lampiran" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Menghantar beberapa lampiran" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Penerangan server" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nama Server" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesi" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Tetapan" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Beberapa orang sedang menaip…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Bunyi" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kod sumber" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Cakap" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Hantar cadangan ciri" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Hantar maklum balas" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Sokong projek dengan menderma - terima kasih!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Syarat Perkhidmatan" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Saluran Teks" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ini adalah permulaan perbualan anda." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ini adalah permulaan nota anda." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Pengguna ini telah menyekat anda." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "tamat masa ahli" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "nyahsekat pengguna" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Muat naik fail" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Pengguna" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Pengguna Menyertai Panggilan" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Pengguna Keluar Panggilan" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Pengurusan pengguna" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Tetapan Pengguna" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nama pengguna" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Mengesahkan akaun anda…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Lihat Saluran" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Lihat laporan pepijat yang sedang aktif di sini." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Lihat kemas kini yang lebih lama" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Lihat kod pemulihan" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Melihat mesej lama" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Saluran Suara" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Kami telah menghantar e-mel pengesahan. Sila tunggu sehingga 10 minit untuk sampai." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Selamat datang ke" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Selamat Datang!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Anda juga boleh mengklik kanan ikon pengguna di bahagian atas sebelah kiri, atau klik kiri jika anda sudah berada di rumah." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Anda boleh membukanya semula tetapi ia akan hilang di kedua-dua belah pihak." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Anda boleh melaporkan isu dan membincangkan penambahbaikan dengan kami terus di sini." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Anda tidak boleh membuat asal tindakan ini." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Anda tidak mempunyai kebenaran untuk menghantar mesej di saluran ini." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Anda tidak dibenarkan untuk mengakses akaun anda melainkan anda hubungi support - Walaubagaimanapun, data anda tidak akan dipadam." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Anda tidak akan dapat menyertai semula kecuali anda dijemput semula." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Akaun anda telah disahkan!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Kod pemulihan anda" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/nb_NO/messages.po b/packages/client/components/i18n/catalogs/nb_NO/messages.po new file mode 100644 index 00000000..82c9e274 --- /dev/null +++ b/packages/client/components/i18n/catalogs/nb_NO/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: nb_NO\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 person reagerte" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Om oss" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Legg til venn" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avansert" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Alle meldinger" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Vennskap med denne brukeren er allerede etablert." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Utseende" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Tildel roller" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Autentiseringsapp" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Merke" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Bannlys" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Bannlys medlem" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Bannlys medlemmer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bannlysninger" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokker bruker" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blokkert" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokkert bruker" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Feilsporer" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Avbryt" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Avbryt forespørsel" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Kan ikke slette konto før servere er slettet eller overført" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Endre" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Endre avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Endre kallenavn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanalbeskrivelse" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanalnavn" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanaler" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Sjekk e-posten din!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Tøm status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Klientinnstillinger" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Lukk" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Bekreft" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Bekreft handling" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Koble" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Innhold bryter en eller flere lover" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Fortsett" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Samtaler" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopier kanal-ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopier ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopier lenke" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopier meldings-ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopier server-ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopier tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopier bruker-ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Opprett" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Opprett en gruppe" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Opprett en ny bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Opprett en ny rolle" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Opprett en konto" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Opprett kategori" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Opprett kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Opprett invitasjon" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Nåværende passord" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Egendefinert status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Tilpasning" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Døve medlemmer" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Forvalg" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Slett" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Slett kanal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Slett melding" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Slett rolle" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Deaktiver konto" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ikke Forstyrr" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Ferdig" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Rediger identitet" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Rediger melding" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-post" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojier" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Aktiver autentiseringsappen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Skru på skrivebordsvarsler" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Skriv inn et nytt passord." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Gå inn i kanal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Oppgi Kode" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Skriv inn ditt nåværende passord." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Skriv inn det foretrukne brukernavnet ditt." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Eksterne lenker kan være farlige!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Kunne ikke bekrefte!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Tilbakemelding" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Finn et fellesskap basert på dine hobbyer eller interesser." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Venner" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generer Gjenopprettingskoder" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Genererer invitasjon …" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Gå tilbake til innlogging" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Gå til tester serveren" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Gruppenavn" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hallo!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Hjem" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Jeg bekrefter at jeg er over 18 år gammel." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inaktiv" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Usynlig" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Inviter alle vennene dine, noen kule roboter, og ha en stor fest." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Invitasjonskode" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Inviter andre" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Innbyder" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitasjoner" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Hopp til nåtid" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Hopp til begynnelsen" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kast ut" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kast ut medlem" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kast ut medlemmer" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Språk" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Seneste" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Forlat" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Forlat gruppe" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Forlat server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Fortell oss hvordan vi kan forbedre appen vår ved å gi oss en tilbakemelding." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Logg ut" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Logg ut av alle andre økter" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Logg inn" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Administrer Tilpasning" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Håndter meldinger" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Håndter kallenavn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Administrer tillatelser" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Håndter roller" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Administrer server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Administrer Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marker som lest" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Merk som ulest" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Utkledning" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Medlemmer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Nevn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Kun når nevnt" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Melding" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Melding er ikke lastet, trykk for å hoppe" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Melding mottatt" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Melding sendt" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Melding var sendt på en annen platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Flytt medlemmer" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Demp medlemmer" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Forstummet" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Felles Venner" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Felles Grupper" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Min konto" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mine Roboter" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nytt Passord" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Kallenavn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ingen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Merknader" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Av" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Offisiell kommunikasjon" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Offisiell Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Frakoblet" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Eldste" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "På" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Når den er slettet er det ingen vei tilbake." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Pålogget" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Åpne innstillinger" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Oversikt" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Passord" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Tilganger" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Velg et brukernavn du ønsker at folk skal finne deg med. Dette kan endres senere i Brukerinnstillinger." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Vennligst bekreft denne handlingen med den valgte metoden." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Skriv inn e-postadressen din." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Vennligst lagre disse på et trygt sted." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Vennligst skann eller bruk tokenet nedenfor i autentiseringsappen din." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Vennligst velg en metode for å autentisere forespørselen din." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Personvern" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Les meldingshistorikk" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Grunnen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Gjenopprettingskode" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrer" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevans" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Fjern identitetsbekrefter" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Fjern avatarer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Fjern venn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Svar" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Svarer" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Rapporter" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Rapporter melding" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Rapporter server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Rapporter bruker" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Send bekreftelse på nytt" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Nullstille" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Tilbakestill passord" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Tilbakestillings­token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rollenavn" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roller" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Lagre" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Lagre i notater" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Lagrede Notater" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Velg språket ditt" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Send innbygginger" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Send meldinger" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sendte et vedlegg" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sendte flere vedlegg" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Serverbeskrivelse" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servernavn" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Økter" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Innstillinger" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Flere personer skriver…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Lyder" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kildekode" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Snakke" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Send inn funksjonsforslag" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Send tilbakemelding" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Støtt prosjektet ved å donere - takk!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Tjenestevilkår" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Tekstkanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Drakt" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Dette er starten på din samtale." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Dette er begynnelsen av notatene dine." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Denne brukeren har blokkert deg." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout-medlemmer" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Avblokker bruker" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Last opp Filer" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Bruker" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Bruker Ble Med i Samtalen" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Bruker Forlot Samtalen" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Bruker administrering" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Brukerinnstillinger" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Brukernavn" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Bekrefter kontoen din…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Vis kanal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Vis aktive feilrapporter her." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Vis eldre oppdateringer" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Vis Gjenopprettingskoder" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Viser eldre meldinger" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Talekanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Vi har sent deg en bekreftelses-e-post. Det kan ta opptil 10 minutter før den kommer frem." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Velkommen til" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Velkommen!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Du kan også høyre-klikke bruker ikonet øverst til venstre, eller venstre klikk den hvis du er hjemme allerede." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Du kan gjenåpne den senere, men den vil forsvinne på begge sider." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Du kan foreslå forbedringer og rapportere inn feil til oss her." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Du kan ikke angre denne handlingen." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Du har ikke tilgang til å sende meldinger i denne kanalen." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Du får ikke tilgang til kontoen din før du tar kontakt med brukerstøtte. Men vær trygg, dataene dine vil ikke bli slettet." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Du vil ikke kunne bli med igjen med mindre du inviteres igjen." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Kontoen din er bekreftet!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Dine gjenopprettingskoder" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/nl/messages.po b/packages/client/components/i18n/catalogs/nl/messages.po new file mode 100644 index 00000000..2da89e38 --- /dev/null +++ b/packages/client/components/i18n/catalogs/nl/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: nl\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 persoon reageerde" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Over" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Accepteer vriendschapsverzoek" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Vriend toevoegen" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Geavanceerd" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Alle berichten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Reeds bevriend met deze gebruiker." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Uiterlijk" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Rollen Toewijzen" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticatie-app" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Profielfoto" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Badges" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Verban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Verban lid" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Verban Leden" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Verbanningen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokkeer gebruiker" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Geblokkeerd" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Geblokkeerde gebruiker" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bugtracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Annuleren" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Annuleer vriendschapsverzoek" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Account kan niet worden verwijderd totdat servers zijn verwijderd of overgedragen" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Veranderen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Verander Pictogram" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Verander Bijnaam" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanaalbeschrijving" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanaal naam" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanalen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Check je mailbox!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Status wissen" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Client instellingen" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Sluiten" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Bevestigen" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Actie bevestigen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Verbinden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Inhoud breekt een of meerdere regels" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Doorgaan" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Gesprekken" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopieer kanaal-ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopieer ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopieer link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopieer bericht-ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopieer server-ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopieer tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopieer gebruikers-ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Creëer" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Maak een groep aan" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Maak een nieuwe bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Creëer een nieuwe rol" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Maak een account aan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Categorie aanmaken" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Creëer kanaal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Creëer uitnodiging" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Huidig wachtwoord" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Aangepaste status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Aanpassingen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Geluid van leden onhoorbaar maken" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Standaard" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Verwijder" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Verwijder kanaal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Verwijder bericht" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Rol Verwijderen" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Account uitschakelen" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Niet storen" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Klaar" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Bewerk identiteit" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Bewerkt bericht" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Bewerk jouw identiteit" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji's" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Authenticator app inschakelen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Schakel Bureaubladmeldingen in" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Voer een nieuw wachtwoord in." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Neem deel aan kanaal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Voer Code In" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Voer je huidige wachtwoord in." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Voer je gewenste gebruikersnaam in." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Externe links kunnen gevaarlijk zijn!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Verificatie mislukt!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Vind een community gebaseerd op je hobby's of interesses." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Focus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Vrienden" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Nieuwe backupcodes genereren" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Uitnodiging genereren…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Ga terug naar het inlogscherm" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Ga naar de testers-server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Groep naam" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hallo!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Home" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Ik bevestig dat ik minstens 18 jaren oud ben." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Afwezig" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Onzichtbaar" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Nodig al je vrienden uit, een paar coole bots, en geef een groot feest." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Uitnodigingscode" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Verander Bijnaam" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Uitnodiger" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Uitnodigingen" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Naar nu springen" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Terug naar het begin" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Kick" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kick lid" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kick Leden" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Taal" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Laatste" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Verlaat" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Verlaat groep" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Verlaat server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Laat ons weten hoe we onze app kunnen verbeteren door ons feedback te geven." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Uitloggen" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Uitloggen bij alle andere sessies" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Inloggen" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Aanpassingen Beheren" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Beheer Berichten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Beheer Bijnamen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Machtigingen Beheren" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Beheer Rollen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Beheer Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Webhooks Beheren" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Markeren als gelezen" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Markeer als gelezen" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskerade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Leden" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Vermelding" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Alleen vermeldigen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Bericht" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Bericht niet geladen, klik om te springen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Bericht ontvangen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Bericht verzonden" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Bericht is gestuurd op een ander platform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Berichten" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Leden verplaatsen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Microfoon van leden dempen" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Gedempt" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Gemeenschappelijke vrienden" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Gemeenschappelijke groepen" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mijn Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mijn bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nieuw wachtwoord" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Gebruikersnaam" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Geen" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Meldingen" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Uit" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Officiële Communicatie" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Officiële server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Oudste" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Aan" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Als het eenmaal is verwijderd, is er geen weg meer terug." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Instellingen openen" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Algemeen" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Wachtwoord" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissies" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Kies een gebruikersnaam waarmee je wil dat mensen je kunnen vinden. Dit kan later in de gebruikersinstellingen worden gewijzigd." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Bevestig deze actie met de gekozen methode." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Voer je e-mail in." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Sla deze op in een veilige locatie." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Scan of gebruik de onderstaande token in uw authenticatie-app." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Kies een methode om uw verzoek te bevestigen." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Privacybeleid" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profiel" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Berichtgeschiedenis lezen" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Reden" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Herstel code" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registreer" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Wijs vriendschapsverzoek af" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevantie" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Authenticator verwijderen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Verwijder Pictogrammen" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Vriend verwijderen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Reageer" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Reageren op" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Rapporteer" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Meld bericht" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Meld server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Meld gebruiker" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Stuur verificatie opnieuw" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Resetten" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Reset wachtwoord" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Token Resetten" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Naam van de rol" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Rollen" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Opslaan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Opslaan in jouw notities" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Opgeslagen notities" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Selecteer je taal" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Embeds versturen" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Verstuur Berichten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Heeft een bijlage gestuurd" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Heeft meerdere bijlagen gestuurd" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Server beschrijving" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servernaam" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessies" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Instellingen" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Meerdere mensen zijn aan het typen…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Geluiden" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Broncode" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Spreken" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Dien functie suggestie in" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Feedback sturen" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Steun het project door te doneren - bedankt!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Gebruikersovereenkomst" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Tekstkanaal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Thema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Dit is het begin van je gesprek." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Dit is het begin van je notities." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Deze gebruiker heeft je geblokkeerd." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout leden" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Deblokkeer gebruiker" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Bestanden Uploaden" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Gebruiker" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Gebruiker is toegetreden tot het gesprek" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Gebruiker heeft het gesprek verlaten" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gebruiker beheer" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Gebruikersinstellingen" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Gebruikersnaam" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Account aan het verifiëren…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Bekijk Kanaal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Bekijk hier de momenteel actieve bugrapporten." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Oudere updates bekijken" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Backupcodes bekijken" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Je bekijkt oudere berichten" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Spraakkanaal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "We hebben je een bevestigings-email verstuurd. Het kan tot 10 minuten duren voor deze aankomt." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhaken" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Welkom bij" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Welkom terug!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Je kunt ook het gebruikersicoon aanklikken links vanboven, of met de linkermuisklik als je al op het thuismenu zit." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Je kunt het later opnieuw openen, maar het zal aan beide kanten verdwijnen." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Je kan hier problemen melden en verbeteringen direct met ons bespreken." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Je kanniet deze actie niet ongedaan maken." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Je bent niet gemachtigd om berichten te sturen in dit kanaal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Je zal geen toegang meer hebben tot je account tenzij je contact opneemt met support - maar je data zal niet verwijderd worden." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Je kunt pas weer deelnemen als je opnieuw wordt uitgenodigd." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Je account is geverifiëerd!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Jouw herstelcodes" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/owo/messages.po b/packages/client/components/i18n/catalogs/owo/messages.po new file mode 100644 index 00000000..918a0f7c --- /dev/null +++ b/packages/client/components/i18n/catalogs/owo/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: owo\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 person weacted" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Abouwt" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Accept fwend reqwest" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Add fwen OwO" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Adwanced" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Aww messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Awweady fwiends with this uwsew." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Appeawance" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assign Wowes" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Auwthenticatow App" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Awatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Byadges" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Send to Brazil" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban membew" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ban membews" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Imposters" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bwock Yusr" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bwocked" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Bwocked Usew" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Senpai" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Buggy Twacky" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cwinge" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancew fwend reqwest :c" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Cannyot dewete accownt untyil sewvews awe deweted oww twansfewwwd" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Chyange" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Change avataw" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Change nyicknyame" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Chyannel Dyescwiption" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Channyel Nwame" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Channews" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Peek youw maiwl owo rawr!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Bye staytus :((" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Klyent Konfigurayshuns" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Cwose" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Based" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confiwm action" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Connyect" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Content bweaks one ow mowe waws" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuwe" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Convewsations" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Cowopy channew ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Cwopy ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Cowopy Lyink" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Cowopy myessage ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copy sewvew ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Steal text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Cowopy uwuser ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Cweate" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Cweate a gwoup" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Cweate a nyew bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Cweate a nyew wowe" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Cweate an account" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Cweate categowy" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Cweate channyew UwU" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Cweate invite :3" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Cwuwent Passwowd" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Custum Staytus :3" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Custuwusation" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Deafen Membews" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Defauwt" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Dewete" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Yeet channyew :c" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Delet Dis" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Dewete Wowe" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Disabwe account" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Dyo Not Distuwb" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "I'm downe" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Edit identitwy" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Edit Myessage" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Edit yoww idyentity :3" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Emaiw" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "OwOjis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Enable auwthenticatow app" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Enabwe Desktop Nowotifications" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "E-Enta a nyew passwod, pwease~ >///<" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entyer Channyel" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Entew Cowode" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Ewnter uw cuwwent passwowd." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Entew youw pwefewwed usewname." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Extewnyaw winks can be dangewous!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Fewld tu werify! T_T" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Fyeedbwack" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Fynd a comunyity baysed on yur hobies owo intewests." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fowocus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Fwiends" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Genewate Wecovewy Cowodes" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Gyenewating Invyite…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Gow bwack tu lyogin" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Go tu the testers server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Gwoup Name" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hewwo! >w<" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Hwome" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "I cunfirm that I am at lyeest 18 years owd." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Idwe" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisibwe" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Inwite aww of yur fwens, sum kewl bowots, and throw a big party. +o+" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Secwet Invwite Codw" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Inwite Othews" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitr" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invyites" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Juwp to pwesent" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Jump tu the beginnying" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Bye" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Kick membew" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kick membews" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Wangwuage" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Watest" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Weave" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Weave gwoup" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Weave sewvew :c" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Let us know how we c-can impwow our app by giving us feedbak." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Log Out. See u latew uwu" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Myuwdew all othew syessions" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Lwogin" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Mawnawge Custowomisatiowon" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Manyage messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Manyage nyicknyames" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Manage Pewmissions" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Manyage wowes" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Manyage sewvew" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Manyage Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Mark as red" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Mawrk Aws Unrewad" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Masquewade" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Myembews" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Annoy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Mentions onwy" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Mwessage" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Myessage nyot lowded, cwick tu jump" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Message weceived" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mwessage Sent" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Myessage was sent on anuther platfowm" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Messagwing" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Muv Membews" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Mute Membews" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Muwted" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Mutual Fwiends" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Mutual Gwoups" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mah Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mwy Bwots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nyew Passwowd" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Niickname-chan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nyonye" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Nowotifcations" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Off" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Ofishuwl Kumunyikayshun" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Officiaw sewvew" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offwine" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Owdest" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "On" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Once it's deweted, thewe's nyo going back." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Onwine" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Owopen Swettings" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Ovyurview" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Passwowd" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Pewmissions" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Pwick a uwsername that you want pweople to bwe abwle to fwind you by. Twis can bwe chwanged wayter in your uwser swettings." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Pwease confiwm twis actwion using the sewected methowd." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Pwease Entew uw emaiwl." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Pwease save these to a safe location." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Pwease scan or use the tokewn bewow in youw auwthentyication app." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Pwease select a methowd to auwthenticate youw wequest." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Pwivacy powicy" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Pyofiwe" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Wead Message Histowy" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Weason" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Wecovewy Cowode" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registew" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rejwect fwend reqwest :(" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Wewevnyace" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Wemuv authenticatow" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Wemove avataws" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Unfwend ÒmÓ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Wepwy" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Replying tu" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "wepowt >w<" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Repowot myessage" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Wepowot sewvew" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Wepowot usew" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Reesend werifikayshun" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Weset" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Ryeset passwowd" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Weset Twoken~" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rowe nyame" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Wowes" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Syave" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Syawe to uw nyotes" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Sawved nowotes" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Syelect langwuage" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Send Embweds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Send messages" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sent an attyachmwent" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sent muwtipwe attachmwents" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Syerver Dyescwiption" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Syervur Nyame" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Seshions" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Configuwation" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Panic Panic Panic…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Syounds" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Sauce" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Tawk" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Syumbit fweatuwe syuggyestion" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Suwbmit Feewdbacwk" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Suppowot the pwoject by downayting - thank yu! ^3^" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Tewms of sewvice" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Text channyew" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Thyeme" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Twis is thye styart of ye conversyation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "This is the start of yur nowtes. ^o^" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "This uwsew has bwocked u." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeouwt Membews" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Unbwock yusr" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Upwoad fiwes" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "OWO" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Usew joinyed caww" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Usew weft caww" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Usew management" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Usew Settings" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Usewname" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "werifying yur acownt…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vwideo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "View channyew" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "View cuwwently active buggy repowts here." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "View owdew updates" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "View Wecovewy Cowodes" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Viewing owdew messages" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Voice channyew" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Nyaa~ We sent u a wewifikayshun eemewl. >_< Pweese alow up 2 10 minuts fow it 2 arive. :3" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhowoks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Wewcome Mastew! OwO" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Wewcome!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Yu can awsow wight-cwick the user icon in the top left, or left cwick it if yur awredy howme." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "You can we-open it watew but it wiww disappeaw on both sides." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Yu can repowot ishus and discus impwowments with us directwy heer." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Yu cannyot undo this akshun." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "You don't have pewmission to send messages in this channyew." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Yuu won't be abwe to access youw account untiw yuu contact suppawt - howevew, youw data wiww nyot be deweted." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "U can't come bacc unless ur invited in again." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Yow acownt has bin werifyd! *-*" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Youw wecovery cowodes" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/piglatin/messages.po b/packages/client/components/i18n/catalogs/piglatin/messages.po new file mode 100644 index 00000000..cea79392 --- /dev/null +++ b/packages/client/components/i18n/catalogs/piglatin/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: piglatin\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 ersonpay eactedpay" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Aboutyay" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Addyay iendfray" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Llaay Essagesmay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Alreadyway iendsfray ithway isthay userway." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Appearanceway" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Assignway Olesray" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticatorway Appway" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avataryay" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Adgesbay" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Anbay" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Anbay embermay" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Anbay Embersmay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Ansbay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Ockblay useryay" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Ockedblay" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Lockedbay Seruay" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Otbay" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Ugbay rackertay" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Ancelcay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Ancelcay equestray" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Angechay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Angechay Avataryay" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Angechay Icknamenay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Annelchay Escriptionday" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Annelchay Amenay" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Annelschay" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Eckchay yourway ailmay!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Earclay atusstay" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Ientclay Ettingssay" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Oseclay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Onfirmcay" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Onfirmcay actionway" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Onnectcay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Ontentcay reaksbay oneyay oryay oremay awslay" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Ontinuecay" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Onversationscay" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Opycay annelchay IDyay" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "opycay idyay" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Opycay inklay" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Opycay essagemay IDyay" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Opycay erversay IDyay" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Opycay exttay" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Opycay useryay IDyay" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Eatecray" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Eatecray ayay oupgray" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Eatecray ayay ewnay otbay" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Eatecray ayay ewnay oleray" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Eatecray anyay accountyay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Eatecray ategorycay" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Eatecray annelchay" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Eatecray inviteyay" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Urrentcay Asswordpay" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Ustomcay atusstay" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Ustomisationcay" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Eafenday Embersmay" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Efaultday" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Eleteday" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Eleteday annelchay" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Eleteday essagemay" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Eleteday Oleray" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Isableday accountyay" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Oday Otnay Isturbday" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Oneday" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Edityay identityyay" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Edityay essagemay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Emailway" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojisway" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Enableway authenticatorway appway" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Enableway Esktopday Otificationsnay" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Enteryay ayay ewnay asswordpay." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Ntereay Hannelcay" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Enterway Odecay" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Enterway yourway urrentcay asswordpay." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Enteryay ouryay usernameyay." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Externalyay inkslay ancay ebay angerousday!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Ailedfay otay erifyvay!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Eedbackfay" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Indfay ayay ommunitycay asedbay onyay ouryay obbieshay oryay interestsyay." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Ocusfay" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Iendsfray" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Enerategay Ecoveryray Odescay" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Eneratinggay inviteyay…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Ogay ackbay otay oginlay" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Ogay otay ethay esterstay server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Oupgray Amenay" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Ellohay!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Omehay" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Iay onfirmcay hattay Iay maay taay eastlay 81ay earsyay ldoay." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Idleway" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisibleway" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Inviteyay allyay ofyay ouryay iendsfray, omesay oolcay otsbay, andyay owthray ayay igbay artypay." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Inviteyay Odecay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Inviteyay Othersyay" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Inviteryay" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitesyay" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Umpjay otay esentpray" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Umpjay otay ethay eginningbay" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Ickkay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Ickkay embermay" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Ickkay Embersmay" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Anguagelay" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Atestlay" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Eavelay" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Eavelay oupgray" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Eavelay erversay" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Ltlay usyay owknay owhay eway ancay improveyay ouryay appyay ybay ivinggay usyay eedbackfay." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Oglay Outway" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Oglay outyay ofyay allyay otheryay essionssay" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Oginlay" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Anagemay Ustomisationcay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Anagemay Essagesmay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Anagemay Icknamesnay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Anagemay Ermissionspay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Anagemay Olesray" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Anagemay Erversay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Anagemay Ebhooksway" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Arkmay asyay eadray" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Arkmay asyay unreadyay" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Asquerademay" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Embersmay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Entionmay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Entionsmay Nlyoay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Essagemay" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Essagemay otnay oadedlay, lickcay otay umpjay" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Essagemay eceivedray" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Essagemay entsay" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Essagemay asway entsay onyay anotheryay latformpay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Ovemay Embersmay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Utemay Embersmay" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Utedmay" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Utualmay Iendsfray" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Utualmay Oupsgray" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Myay Accountway" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Ymay Otsbay" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Ewnay Asswordpay" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Icknamenay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Onenay" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Otificationsnay" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Offyay" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Officialyay ommunicationcay" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Officialyay Erversay" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offlineway" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Okway" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Ldestoay" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Onyay" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Onceyay it'syay eletedday, ere'sthay onay oinggay ackbay." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Onlineway" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Openyay ettingssay" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Overviewyay" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Asswordpay" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Ermissionspay" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Ickpay away usernameway atthay youway antway eoplepay otay ebay ableway otay indfay youway byay, isthay ancay ebay angedchay aterlay inway ettingssay." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Easeplay onfirmcay usingyay electedsay ethodmay." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Leasepay enteryay ouryay emailyay ." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Easeplay avesay esethay otay away afesay ocationlay." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Easeplay anscay orway useyay ethay okentay elowbay inway ouryay authenticationway appway." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Easeplay electsay away ethodmay otay authenticateway ouryay equestray." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Rivacypay Olicypay" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Ofilepray" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Eadray Essagemay Istoryhay" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Easonray" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Ecoveryway Odecay" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Egisterray" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Elevanceray" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Authenticatoryay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Emoveray Avatarsyay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Emoveray iendfray" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Eplyray" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Eplyingray otay" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Eportray" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Eportray essagemay" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Eportray erversay" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Eportray useryay" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Esendray erificationvay" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Esetray" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Esetray asswordpay" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Oleray amenay" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Olesray" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Avesay" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Avesay otay yourway otesnay" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Avedsay Otesnay" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Electsay yourway anguagelay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Endsay Embedsway" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Endsay Essagesmay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Entsay naay ttachmentaay" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Entsay ultiplemay ttachmentsaay" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Erversay Escriptionday" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Erversay amenay" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Essionssay" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Ettingssay" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Everalsay eoplepay areyay ingtypay…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Oundssay" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Ourcesay odecay" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Eakspay" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Ubmitsay eaturefay uggestionsay" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Ubmitsay eedbackfay" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Upportsay ethay ojectpray ybay onatingday - ankthay ouyay!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Ermstay ofway Ervicesay" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Exttay Hannelcay" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Emethay" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Isthay isway ethay artstay ofway yourway onversationcay." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Isthay isyay ethay artstay ofyay ouryay otesnay." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Isthay userway ashay ockedblay youway." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Imeouttay Embersmay" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Unblockyay useryay" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Uploadyay Ilesfay" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Useryay" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Useryay Oinedjay Allcay" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Useryay Eftlay Allcay" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Useryay Anagementmay" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Userway Ettingssay" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Usernameway" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Erifyingvay ouryay accountyay…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Ideovay" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Iewvay Annelchay" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Iewvay urrentlycay activeyay ugbay eportsray erehay." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Iewvay olderway updatesway" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Iewvay Ecoveryray Odescay" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Iewingvay olderway essagesmay" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Oicevay Hannelcay" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Lease allow up to 10 minutes for it to arrivepay." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Elcomeway otay" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Elcomeway!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Ouyay ancay alsoyay ight-clickray ethay useryay iconyay inyay ethay optay eftlay , oryay eftlay ickclay ityay ifyay ou'reyay alreadyyay omehay ." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Ouyay ancay e-openray ityay aterlay utbay ityay illway isappearday onyay othbay idessay." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Ouyay ancay eportray issuesyay andyay iscussday improvementsyay ithway usyay irectlyday erehay." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Ouyay annotcay undoway isthay actionway." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Ouyay on'tday avehay ermissionpay otay endsay essagesay niay histay hannelcay." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Youway on'tway ebay ableway otay ejoinray unlessway youway areway e-invitedray." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ouryay accountyay ashay eenbyay eriviedvay!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Ouryay ecoveryray odescay" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/pl/messages.po b/packages/client/components/i18n/catalogs/pl/messages.po new file mode 100644 index 00000000..2323dd22 --- /dev/null +++ b/packages/client/components/i18n/catalogs/pl/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: pl\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 osoba zareagowała" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "O nas" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Zaakceptuj zaproszenie do znajomych" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Dodaj znajomego" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Zaawansowane" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Wszystkie wiadomości" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Ten użytkownik jest już twoim znajomym." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Wygląd" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Przypisywanie ról" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplikacja uwierzytelniająca" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Awatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Odznaki" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Zbanuj" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Zbanuj członka" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banowanie członków" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bany" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Zablokuj użytkownika" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Zablokowani" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Zablokowany użytkownik" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Znane błędy" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Anuluj" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Anuluj zaproszenie do znajomych" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Nie można usunąć konta, dopóki serwery nie zostaną usunięte lub przeniesione" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Zmień" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Zmiana awataru" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Zmiana pseudonimu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Opis kanału" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nazwa kanału" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanały" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Sprawdź swojego emaila!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Usuń status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Ustawienia Klienta" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Zamknij" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Potwierdź" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Potwierdź akcję" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Łączenie się" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Treść łamie jeden lub więcej przepisów" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Kontynuuj" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Rozmowy" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Skopiuj ID kanału" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Skopiuj ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Skopiuj link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Skopiuj ID wiadomości" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Skopiuj ID serwera" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Skopiuj tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Skopiuj ID użytkownika" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Stwórz" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Utwórz grupę" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Utwórz nowego bota" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Stwórz nową rolę" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Utwórz konto" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Stwórz kategorię" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Stwórz kanał" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Stwórz zaproszenie" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Obecne hasło" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Niestandardowy status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalizacja" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Wyłączanie dźwięku członkom" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Domyślne" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Usuń" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Usuń kanał" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Usuń wiadomość" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Usuń rolę" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Wyłącz konto" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Nie przeszkadzać" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Gotowe" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Edytuj tożsamość" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Edytuj wiadomość" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Edytuj swoją tożsamość" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Włącz aplikację uwierzytelniającą" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Włącz powiadomienia na pulpicie" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Podaj nowe hasło." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Dołącz do kanału" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Wpisz kod" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Wprowadź swoje obecne hasło." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Wprowadź preferowaną nazwę użytkownika." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Zewnętrzne linki mogą być niebezpieczne!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Nie udało się zweryfikować!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Opinia" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Znajdź społeczność w oparciu o własne hobby lub zainteresowania." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Skupienie" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Znajomi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Wygeneruj kody odzyskiwania" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generuję zaproszenie…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Wróć do logowania" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Przejdź do serwera testerów" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nazwa grupy" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Witaj!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Strona główna" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Potwierdzam, że mam przynajmniej 18 lat." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Zaraz wracam" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Niewidoczny" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Zaproś przyjaciół, parę fajnych botów i urządźcie wielką imprezę." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kod zaproszenia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Zapraszanie innych" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Zapraszający" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Zaproszenia" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Skocz do najnowszych wiadomości" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Skocz do początku" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Wyrzuć" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Wyrzuć członka" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Wyrzucanie członków" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Język" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Najnowsze" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Wyjdź" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Wyjdź z grupy" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Wyjdź z serwera" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Daj znać, jak możemy ulepszyć naszą aplikację, wysyłając nam swoją opinię." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Wyloguj" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Wyloguj się ze wszystkich sesji poza obecną" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Zaloguj się" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Zarządzanie personalizacją" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Zarządzanie wiadomościami" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Zarządzanie pseudonimami" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Zarządzanie uprawnieniami" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Zarządzanie rolami" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Zarządzanie serwerem" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Zarządzanie webhookami" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Oznacz jako przeczytane" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Oznacz jako nieprzeczytane" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskarada" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Członkowie" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Wspomnij" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Tylko wzmianki" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Wyślij wiadomość" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Wiadomość nie została załadowana, kliknij aby przeskoczyć" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Wiadomość otrzymana" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Wiadomość wysłana" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Wiadomość została wysłana na innej platformie" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Wiadomości" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Przenoszenie członków" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Wyciszeni użytkownicy" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Wyciszone" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Wspólni znajomi" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Wspólne grupy" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Moje Konto" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Moje boty" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nowe hasło" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Przydomek" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Brak" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Powiadomienia" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Wyłączone" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Oficjalna komunikacja" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Oficjalny serwer" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Niedostępny" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Najstarsze" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Włączone" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Akcja usunięcia jest nieodwracalna." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Dostępny" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Otwórz ustawienia" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Przegląd" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Hasło" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Uprawnienia" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Wybierz nazwę użytkownika, po której ludzie będą mogli Cię znaleźć. Można to później zmienić w ustawieniach użytkownika." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Potwierdź tę czynność używając wybranej metody." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Wpisz tutaj swojego emaila." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Zapisz je w bezpiecznym miejscu." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Zeskanuj lub użyj poniższego tokenu w aplikacji uwierzytelniającej." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Wybierz metodę uwierzytelnienia swojego zapytania." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Polityka prywatności" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Czytanie historii wiadomości" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Powód" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kody odzyskiwania" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Załóż konto" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Odrzuć zaproszenie do znajomych" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Trafność" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Usuń aplikację do uwierzytelniania" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Usuwanie awatarów" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Usuń znajomego" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Odpowiedz" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Odpowiadasz" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Zgłoś" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Zgłoś wiadomość" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Zgłoś serwer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Zgłoś użytkownika" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Wyślij weryfikację ponownie" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Zresetuj" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Zresetuj hasło" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Zresetuj Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nazwa roli" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Role" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Zapisz" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Zapisz w swoich notatkach" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Zapisane Notatki" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Wybierz swój język" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Wysłanie embedów" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Wysyłanie wiadomości" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Wysłał(a) załącznik" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Wysłał(a) wiele załączników" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Opis serwera" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nazwa serwera" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesje" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Ustawienia" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Wiele osób pisze…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Dźwięki" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kod źródłowy" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Mówienie" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Prześlij propozycję funkcji" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Prześlij opinię" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Wesprzyj projekt przekazując darowiznę - dziękujemy!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Warunki korzystania z usługi" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Kanał tekstowy" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Motyw" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "To jest początek twojej rozmowy." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "To jest początek twoich notatek." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Ten użytkownik cię zablokował." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Limit czasu użytkowników" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Odblokuj użytkownika" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Wysyłanie plików" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Użytkownik" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Użytkownik dołączył do rozmowy" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Użytkownik wyszedł z rozmowy" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Zarządzanie użytkownikami" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Ustawienia Użytkownika" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nazwa użytkownika" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Weryfikowanie konta…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Wideo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Oglądanie kanału" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Zobacz obecnie aktywne raporty o błędach." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Zobacz starsze aktualizacje" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Wyświetl kody odzyskiwania" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Przeglądasz stare wiadomości" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Kanał głosowy" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Wysłaliśmy wiadomość weryfikacyjną. Proszę poczekaj do 10 minut na jej nadejście." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooki" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Witaj w" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Witamy!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Możesz również kliknąć prawym przyciskiem myszy na ikonę użytkownika w lewym górnym rogu lub kliknąć ją lewym przyciskiem myszy, jeśli jesteś już na stronie głównej." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Możesz ją później ponownie otworzyć, ale zniknie ona po obu stronach." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Tu możesz zgłaszać problemy i dyskutować z nami bezpośrednio na temat usprawnień." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Nie możesz cofnąć tej akcji." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Nie masz uprawnień do wysyłania wiadomości na tym kanale." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Nie będzie mógł uzyskać dostępu do swojego konta, chyba że skontaktujesz się z pomocą techniczną - jednak twoje dane nie zostaną usunięte." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nie będziesz mógł ponownie dołączyć, chyba że zostaniesz ponownie zaproszony." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Twoje konto zostało zweryfikowane!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Twoje kody odzyskiwania" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/pr/messages.po b/packages/client/components/i18n/catalogs/pr/messages.po new file mode 100644 index 00000000..2244dfc9 --- /dev/null +++ b/packages/client/components/i18n/catalogs/pr/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: pr\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 scallywag put a message in the bottle" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "'Obout" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Hire 'ands" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Entire Messageboard" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Already a part of your crew." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Ye' Pirate Looks" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Authenticatarr App" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "blacklist" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Hang ‘em from the yardarm" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Plank Walkers" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Keelhaul the shark bait" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Exiled" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Dead men tell no tales" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Deckhand" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Rat Finder" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancel yer demand" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Can’t sink yer account till the ships be sunk or set sail t’ new masters" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Change yarr" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Change Pirate Looks" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Change ye crew name" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Crew Manifest" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Name o' the Deck" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Oceans" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Check yer mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Clear ye status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Client Settins'" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirm yer actions, matey" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Anchor" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Content be breakin' one or more laws" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Natters" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copy yer link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Create a maties" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Forge a new Landlubber" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Create ye new rank" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Create an arrrcount" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Start 'iring 'ands" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Current secret codeword" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Ye own status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalized Arrangements" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Standard" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Walk Ye Plank" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "In Th' Cabins" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "yer crew" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Turn on ye' plank sounds" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Enter ye' new codeword." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Board Channel" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Enter yer current codeword." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Enter yer preferred username." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Beware of external links! They may be a treacherous trap!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Didn't find ye' right treasure chest key!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Pirate Advice" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Onto the Crowsnest." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Spyglassin'" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Crewmates" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Make ye' recovery ways" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Crafting yer ship ladder…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Go back t' login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Go t' the testers server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Maties Name" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Ahoy!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Mainland" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "I confirm that I am at least 18 years ole." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "On a voyage" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "On leave" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Get some 'ands on deck!" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Summon Scroll" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invite Others to the Ship" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Summoner" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Summonings" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Jump t' present" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Start from ye starts" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Boot the sailor" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Make 'em Walk the Plank" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Tongue" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Newest" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Maroon ye crew" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Maroon ye ship" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Ye be lettin' us know how t' improve." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Abort ye Ship" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Log out o' all other sessions" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Login" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Manage Ye' Sea Name" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Oversee Authority" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Command Positions" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Captain the Ship" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Declare as perused" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Declare as uncharted" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Be lyin'" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Pirates" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Call out" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Shouts Only" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Yer message ain't loadin', click to travel" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Th' bottled Message Received" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Th' bottled Message Sent" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Bottled message was sent from another ship" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Mutd'" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Shipmates in Common" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Crews in Common" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Me Account" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Me Landlubbers" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "New Codeword" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Alias" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "None" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Ye' Loud Ship Bells" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Off" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Ye official chit-chattin'" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Partner'd Ship" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "On leave" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Aye" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Olest" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "On" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Once it's thrown in ye' ocean, there be no gettin' it back." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "On-deck" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Open Settins" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Birds Eye View" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Secret codeword" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Ye Allowings" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Grab ye' usarname that you want scallywags bein' able to travel to yer ship by, this be changed latr' in settins'." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Confirm with yer selected way of doin'." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Enter yer scroll o’ letters." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Keep 'em valuables piece of treasure safe y'here me matey?" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Kindly choose a way to prove yer request be true." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Policy o' Shipshape" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "'Covery Code" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registarrr" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Handsomeness" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Send yer Authenticator off to Davy Jone's locker" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Remove Pirate Looks" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Remove me bucko" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Ye Replyin to" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Resend yer verification" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Reset codeword" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Ship Positions" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Save t' yer notes" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Captain's Log" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Select yer language" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Sail, Ho!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Sent a parcel" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Sent numerous parcels" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Cog Tale" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Name of ye Port" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Swashbucklin’ session" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Settins'" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Several scallywags be typing…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sea Noises" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Ye' Treasure Mark" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Propose a ship improvement" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Offer yer thoughts" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Yarrr give some doubloons, ye bilge rat!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Terms o' Service" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Scribin' deck" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Theme" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Dis be thar start o' yer conversation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "This is the start of yer notes." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Unkeelhaul the shark bait" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Share ye booty!" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Pirate" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Mariner Joined Call" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Mariner Left Call" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Manage ye Pirate" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Pirate Settins'" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Usarname" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verifying yer 'count…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "View Board" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Gaze upon the currently active bug reckonings here." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Behold previous updates" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "See 'em 'Covery Codes" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Viewin' older messages" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Speakin' deck" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "We sent ye a verification message. Allow up t’ 10 minutes fer it t’ arrive." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Seaworthy Links" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Ye' be welcome to" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Ahoy!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Ye can also right-skewer the user icon in the top left, or left skewer it if ye're already home." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Ye can unfurl it again at a later time, but it'll vanish from both horizons." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Ye can report issues and discuss improvements with us d'rectly here yarr." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "There be no turnin' back from this action." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Ye don't have permission t' send messages in dis channel." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Ye won't be gettin' to yer treasure chest 'less ye send a parrot to the quartermaster - but fear not, yer loot won't be plundered." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Ye' be unable to get yer booty back on th' ship till yer re-invited." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Yer 'count has been verified!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Yer 'covery codes" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/pt_BR/messages.po b/packages/client/components/i18n/catalogs/pt_BR/messages.po new file mode 100644 index 00000000..596162ac --- /dev/null +++ b/packages/client/components/i18n/catalogs/pt_BR/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: pt_BR\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 pessoa reagiu" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Sobre" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Aceitar solicitação de amizade" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Adicionar amigo" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avançado" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Todas as mensagens" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Já possui uma amizade com esse usuário." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aparência" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Atribuir cargos" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplicativo autenticador" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Emblemas" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Banir" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Banir membro" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banir membros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Banimentos" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloquear usuário" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloqueado" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Usuário bloqueado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Rastreador de bugs" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancelar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancelar pedido de amizade" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Não é possível excluir a conta até que os servidores sejam excluídos ou transferidos" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Alterar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Alterar avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Alterar apelido" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descrição do canal" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nome do canal" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canais" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Confira sua caixa de entrada!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Limpar status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Configurações do aplicativo" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Fechar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirmar" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirmar ação" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Conectar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Conteúdo viola uma ou mais leis" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuar" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversas" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copiar ID do canal" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copiar ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copiar link" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copiar ID da mensagem" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copiar ID do servidor" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copiar texto" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copiar ID de usuário" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Criar" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Criar um grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Criar um novo bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Criar um novo cargo" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Criar uma conta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Criar categoria" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Criar canal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Criar convite" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Senha atual" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Status personalizado" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Customização" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Ensurdecer membros" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Padrão" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Deletar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Deletar canal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Deletar mensagem" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Deletar cargo" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Desativar conta" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Não perturbar" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Feito" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Editar identidade" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Editar mensagem" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Edite sua identidade" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Ativar aplicativo autenticador" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Ativar notificações de desktop" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Insira uma nova senha." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entrar no canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Inserir código" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Insira sua senha atual." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Digite seu nome de usuário preferido." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Links externos podem ser perigosos!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Falha ao verificar!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Comentários" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Encontre uma comunidade baseada em seus hobbies ou interesses." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Concentrado" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amigos" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Gerar códigos de recuperação" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Gerando convite…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Voltar para o início de sessão" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Ir para o servidor de testadores" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nome do grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Olá!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Início" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Eu confirmo que tenho pelo menos 18 anos de idade." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Ausente" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisível" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Convide todos os seus amigos, alguns bots legais e dê uma grande festa." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Código de convite" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Convidar pessoas" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Convidante" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Convites" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Pular para o presente" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Pular para o começo" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Expulsar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Expulsar membro" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Expulsar membros" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Idioma" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Recente" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Sair" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Sair do grupo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Sair do servidor" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Deixe-nos saber como podemos melhorar nosso app, dando-nos feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Encerrar sessão" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Sair de todas as outras sessões" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Entrar" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gerenciar personalização" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Gerenciar mensagens" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Gerenciar apelidos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gerenciar permissões" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Gerenciar cargos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Gerenciar servidor" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Gerenciar webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marcar como lido" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marcar como não lido" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Mascarado" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mencionar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Apenas menções" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Enviar mensagem" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mensagem não carregada, clique para ir" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mensagem recebida" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mensagem enviada" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mensagem enviada em outra plataforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mensagens" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mover membros" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silenciar membros" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silenciado" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amigos em comum" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grupos em comum" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Minha conta" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Meus bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nova senha" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Apelido" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nada" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notificações" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Desligado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicado Oficial" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servidor oficial" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Antigo" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ligado" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Depois de excluído, não há como voltar atrás." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Disponível" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Abrir configurações" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Visão geral" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Senha" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissões" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Escolha um nome de usuário que você deseja que as pessoas usem para te encontrar. Isso pode ser alterado nas configurações de sua conta." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Por favor, confirme essa ação usando o método selecionado." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Insira seu e-mail." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Por favor, salve-os em um local seguro." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Por favor, escaneie ou use o token abaixo no seu aplicativo autenticador." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Por favor, selecione um método para autenticar sua requisição." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Política de Privacidade" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Perfil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Ler histórico de mensagem" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Motivo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Código de recuperação" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrar" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rejeitar pedido de amizade" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevância" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Remover autenticador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Remover avatares" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Remover amigo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Responder" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Respondendo a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Denunciar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Denunciar mensagem" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Denunciar servidor" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Denunciar usuário" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Reenviar verificação" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Redefinir" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Redefinir senha" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Redefinir Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nome do cargo" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Cargos" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Salvar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Salvar nas suas notas" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notas salvas" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Selecione seu idioma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Enviar embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Enviar mensagens" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Enviou um anexo" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Enviou vários anexos" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descrição do servidor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nome do servidor" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessões" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Configurações" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Várias pessoas estão digitando…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sons" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Código-fonte" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Falar" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Enviar sugestão de funcionalidade" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Enviar comentário" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Apoie o projeto doando - obrigado!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Termos de Serviço" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de texto" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Este é o começo da sua conversa." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Este é o começo das suas notas." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Esse usuário bloqueou você." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Castigar membros" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Desbloquear usuário" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Enviar arquivos" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Usuário" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Usuário entrou na chamada" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Usuário saiu da chamada" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gerenciamento de usuários" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Configurações de usuário" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nome de usuário" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verificando sua conta…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vídeo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Ver canal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Veja aqui os relatórios de bugs atualmente ativos." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Ver atualizações antigas" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Ver códigos de recuperação" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Visualizando mensagens antigas" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de voz" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Enviamos a você um e-mail de verificação. Aguarde até 10 minutos para recebê-lo." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Bem-vindo(a) ao" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Bem-vindo(a) de volta!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Você também pode clicar com o botão direito no ícone do usuário no canto superior esquerdo ou clicar com o botão esquerdo se já estiver no início." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Você pode abrir novamente mais tarde, mas vai desaparecer para ambos usuários." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Você pode relatar problemas e discutir melhorias conosco diretamente aqui." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Você não pode desfazer essa ação." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Você não tem permissão para enviar mensagens neste canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Você não conseguirá acessar sua conta, a menos que entre em contato com o suporte - no entanto, seus dados não serão excluídos." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Você não poderá voltar a participar, a menos que seja convidado novamente." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Sua conta foi verificada!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Seus códigos de recuperação" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/pt_PT/messages.po b/packages/client/components/i18n/catalogs/pt_PT/messages.po new file mode 100644 index 00000000..e534b228 --- /dev/null +++ b/packages/client/components/i18n/catalogs/pt_PT/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: pt_PT\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 pessoa reagiu" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Sobre" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Aceitar pedido de amizade" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Adicionar amigo" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avançado" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Todas as mensagens" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Já és amigo(a) deste utilizador." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aparência" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Atribuir Cargos" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Autenticador" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Insígnias" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Banir" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Banir membro" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banir membros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Banimentos" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Bloquear utilizador" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bloqueados" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Utilizador bloqueado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "robô" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Rastreador de bugs" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Cancelar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Cancelar pedido" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Não é possível apagar a conta até os servidores serem apagados ou transferidos" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Alterar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Alterar avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Alterar alcunha" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descrição do canal" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Nome do canal" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canais" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Verifica o teu e-mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Limpar estado" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Definições do cliente" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Fechar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirmar" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirmar ação" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Ligar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "O conteúdo viola uma ou mais leis" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuar" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversas" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copiar ID do canal" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copiar ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copiar ligação" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copiar ID da mensagem" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copiar ID do servidor" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copiar texto" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copiar ID do utilizador" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Criar" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Criar um grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Criar um novo robô" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Criar um novo cargo" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Criar uma conta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Criar categoria" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Criar canal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Criar convite" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Palavra-passe atual" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Estado personalizado" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalização" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Desativar áudio de membros" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Base" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Eliminar" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Eliminar canal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Eliminar mensagem" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Apagar cargo" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Desativar conta" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Não incomodar" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Feito" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Editar identidade" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Editar mensagem" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Editar a sua identidade" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojis" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Ativar autenticador" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Ativar notificações de ambiente de trabalho" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Insere uma nova palavra-passe." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Entrar no canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Inserir código" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Introduz a tua palavra-passe atual." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Introduz o teu nome de utilizador preferido." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Ligações externos podem ser perigosas!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Falha ao verificar!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Encontra uma comunidade baseada nos teus hobbies ou interesses." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Em concentração" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amigos" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Gerar códigos de recuperação" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "A criar um convite…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Voltar para o início de sessão" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Ir para o servidor de testadores" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nome do grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Olá!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Página inicial" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Eu confirmo que tenho, pelo menos, 18 anos." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Ausente" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisível" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Convida todos os teus amigos, alguns robôs fixes e monta uma grande festa." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Código de convite" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Convidar outros" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Convidante" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Convites" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Saltar para o presente" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Saltar para o começo" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Expulsar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Expulsar membro" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Expulsar membros" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Idioma" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Mais recentes" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Sair" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Sair do grupo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Sair do servidor" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Diz-nos como podemos melhorar a nossa aplicação, deixando um comentário." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Terminar sessão" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Terminar todas as outras sessões" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Iniciar sessão" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gerir personalização" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Gerir mensagens" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Gerir alcunhas" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gerir permissões" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Gerir cargos" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Gerir servidor" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Gerir webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marcar como lida" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marcar como não lida" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Disfarce" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membros" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Mencionar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Apenas menções" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Enviar mensagem" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mensagem não carregada, clica para saltar" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mensagem recebida" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mensagem enviada" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mensagem enviada noutra plataforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mensagens" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mover membros" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Silenciar membros" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Silenciado" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Amigos em comum" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grupos em comum" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "A minha conta" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Os meus robôs" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nova palavra-passe" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Alcunha" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nenhuma" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notificações" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Desligado" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicado Oficial" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servidor oficial" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Mais antigas" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ligado" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Assim que for eliminado, não há como voltar atrás." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Abrir as definições" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Visão geral" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Palavra-passe" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permissões" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Escolhe um nome de utilizador pelo qual pretendes que as pessoas te consigam encontrar. Poderá ser alterado, mais tarde, nas definições." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Por favor, confirma esta ação utilizando o método selecionado." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Introduz o teu e-mail." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Por favor, guarda-os num local seguro." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Por favor, digitaliza o código ou utiliza o token abaixo no teu autenticador." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Por favor, seleciona um método para autenticar o teu pedido." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Política de Privacidade" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Perfil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Ler histórico de mensagens" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Razão" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Código de recuperação" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registar" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Rejeitar pedido de amizade" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevância" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Remover autenticador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Remover avatares" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Remover amigo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Responder" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Em resposta a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Reportar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Denunciar mensagem" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Denunciar servidor" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Denunciar utilizador" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Reenviar verificação" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Repor" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Redefinir palavra-passe" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Repor Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Nome do cargo" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Cargos" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Guardar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Guardar nas tuas notas" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notas guardadas" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Seleciona o teu idioma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Enviar Embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Enviar mensagens" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Enviou um anexo" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Enviou vários anexos" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descrição do servidor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Nome do servidor" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessões" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Definições" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Várias pessoas estão a escrever…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sons" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Código-fonte" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Falar" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Enviar sugestão de funcionalidade" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Submeter feedback" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Apoia o projeto doando - obrigado!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Termos de Serviço" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de texto" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Este é o início da vossa conversa." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "As tuas notas começam aqui." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Este utilizador bloqueou-te." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Suspender membros" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Desbloquear utilizador" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Carregar ficheiros" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Utilizador" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Alguém entrou na chamada" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Alguém saiu da chamada" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestão de utilizadores" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Definições do utilizador" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nome de utilizador" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "A verificar a tua conta…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vídeo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Ver canal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Verifica aqui os relatórios de bugs ativos." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Visualizar atualizações anteriores" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Visualizar códigos de recuperação" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "A ver mensagens antigas" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de voz" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Enviamos um e-mail de verificação. Aguarde cerca de 10 minutos para receber." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Bem-vindo(a) a" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Bem-vindo(a)!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Podes ainda carregar com o botão direito do rato no ícone de utilizador no canto superior esquerdo, ou carregar com o esquerdo se estiveres na página inicial." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Poderás reabri-la mais tarde, mas irá desaparecer para ambos os lados." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Aqui podes reportar problemas e discutir melhorias diretamente connosco." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Não podes desfazer esta ação." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Não tens permissão para enviar mensagens neste canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Não vais conseguir aceder à tua conta a não ser que contactes o suporte - mas os teus dados não serão apagados." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Não poderás reentrar a menos que sejas convidado novamente." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "A tua conta foi verificada!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Os teus códigos de recuperação" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ro/messages.po b/packages/client/components/i18n/catalogs/ro/messages.po new file mode 100644 index 00000000..61c9ed9b --- /dev/null +++ b/packages/client/components/i18n/catalogs/ro/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ro\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "O persoană a reacționat" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Despre" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Acceptă cererea de prietenie" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Adaugă ca prieten" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avansat" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Toate mesajele" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Ești deja prieten cu acest utilizator." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aspect" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Atribuire roluri" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplicație de autentificare" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Insigne" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Interzice accesul" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Interzice accesul membrului" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Interzice membri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Interdicții" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blochează utilizatorul" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blocat" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Utilizator Blocat" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Bug tracker" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Anulare" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Anulează cererea de prietenie" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Nu se poate șterge contul până când serverele nu sunt șterse sau transferate" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Schimbă" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Schimbă avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Schimbă porecla" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Descrierea Canalului" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Numele Canalului" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canale" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Verifică-ți emailul!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Șterge status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Setări Client" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Închidere" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Confirmă" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Confirmă acțiunea" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Conectare" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Conținutul încalcă una sau mai multe legi" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Continuare" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversații" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Copiază ID-ul canalului" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Copiază ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Copiază link-ul" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Copiază ID-ul mesajului" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Copiază ID-ul serverului" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Copiază textul" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Copiază ID-ul de utilizator" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Creează" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Creează un grup" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Creează un bot nou" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Creează un rol nou" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Creează un cont" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Creează o categorie" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Creează canal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Creează invitație" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Parola actuală" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Status personalizat" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Personalizare" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Dezactivează sunetul membrilor" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Implicit" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Șterge" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Șterge canalul" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Șterge mesajul" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Șterge rolul" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Dezactivează contul" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Nu deranjați" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Efectuat" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Editează identitatea" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Editează mesajul" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Editează-ți identitatea" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Adresă de e-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji-uri" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Activează aplicația de autentificare" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Activează notificările pe desktop" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Introdu o parolă nouă." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Intră în canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Introdu codul" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Introdu parola actuală." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Introdu numele de utilizator preferat." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Link-urile externe pot fi periculoase!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Verificarea a eșuat!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Părere" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Găsește o comunitate bazată pe hobby-urile sau interesele tale." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Concentrat" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Prieteni" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generează coduri de recuperare" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Se generează invitația…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Întoarce-te la conectare" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Mergi la serverul testerilor" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Numele grupului" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Salut!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Acasă" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Confirm că am cel puțin 18 ani împliniți." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inactiv" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invizibil" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Invită-ți toți prietenii, câțiva boți simpatici și dă o petrecere mare." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Cod de invitație" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invită pe alții" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Invitator" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Invitații" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Sari la prezent" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Salt la început" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Dă afară" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Dă afară membrul" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Exclude membri" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Limba" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Ultimele" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Părăsește" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Părăsește grupul" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Părăsește serverul" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Spune-ne cum putem îmbunătăți aplicația noastră, oferindu-ne feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Deconectare" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Deconectează-te de la toate celelalte sesiuni" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Autentificare" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Gestionează personalizarea" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Gestionează mesaje" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Gestionează porecle" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Gestionează permisiunile" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Gestionează roluri" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Gestionează serverul" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Modifică webhook-uri" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Marchează ca citit" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Marchează ca necitit" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Mascare" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Membri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Menționează" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Numai mențiuni" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Trimite un mesaj" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mesaj neîncărcat, click pentru a sări" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mesaj primit" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mesaj trimis" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mesajul a fost trimis de pe o altă platformă" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mesaje" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mută membrii" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Pune membri pe pauză" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Amuțit" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Prieteni în comun" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grupuri în comun" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Contul meu" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Boții mei" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Parolă nouă" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Poreclă" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nici una" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notificări" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Oprit" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicare oficială" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Server oficial" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Deconectat" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Vechi" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Pornit" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Odată ce a fost șters, nu mai există cale de întoarcere." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Deschide setările" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Prezentare generală" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Parolă" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Permisiuni" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Alege un nume de utilizator cu care dorești ca oamenii să te poată găsi. Acesta poate fi modificat ulterior în setări." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Te rugăm să confirmi această acțiune folosind metoda selectată." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Introdu adresa de email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Te rugăm să le salvezi într-o locație sigură." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Te rugăm să scanezi sau să folosești token-ul de mai jos în aplicația ta de autentificare." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Te rugăm să selectezi o metodă pentru a autentifica cererea." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Politica de confidențialitate" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Citește istoricul mesajelor" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Motiv" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Cod de recuperare" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Înregistrare" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Respinge cererea de prietenie" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevanță" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Dezactivează autentificatorul" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Îndepărtează avatare" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Șterge prieten" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Răspunde" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Se trimite răspuns către" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Raportează" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Raportează mesajul" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Raportează serverul" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Raportează utilizatorul" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Retrimite confirmarea" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Resetează" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Resetează parola" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Numele rolului" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roluri" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Salvare" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Salvează în notițele tale" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Notițe salvate" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Selectează limba ta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Trimite integrări" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Trimite mesaje" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "A trimis un atașament" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "A trimis mai multe atașamente" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descrierea serverului" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Numele Serverului" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesiuni" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Setări" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Mai multe persoane tastează…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sunete" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Codul sursă" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Vorbește" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Propune o nouă funcție" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Trimite o părere" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Sprijină proiectul prin donații - vă mulțumim!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Termeni și condiții" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de Text" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Temă" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Acesta este începutul conversației tale." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Acesta este începutul notelor tale." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Acest utilizator te-a blocat." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Pune membrii în pauză" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Deblochează utilizatorul" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Încarcă fișiere" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Utilizator" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Utilizatorul a intrat în apel" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Utilizatorul a părăsit apelul" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Gestionare utilizatori" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Setări utilizator" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nume de utilizator" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Se verifică contul…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Vezi canalul" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Afișează rapoartele de erori active în prezent." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Vezi actualizări mai vechi" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Vizualizează codurile de recuperare" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Acum vezi mesajele vechi" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de Voce" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Ți-am trimis un e-mail de verificare. Te rugăm să acorzi până la 10 minute pentru sosirea acestuia." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhook-uri" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Bun venit la" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Bun venit!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "De asemenea, poți face clic dreapta pe pictograma utilizatorului din stânga sus sau clic stânga pe ea dacă ești deja acasă." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "O poți redeschide ulterior dar va dispărea pe ambele părți." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Poți să ne raportezi probleme și să discuți cu noi despre îmbunătățiri direct aici." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Această acțiune nu poate fi anulată." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Nu ai permisiunea de a trimite mesaje pe acest canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Nu îți vei putea accesa contul decât dacă contactezi asistența - însă, datele tale nu vor fi șterse." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nu vei putea să reintri decât dacă ești reinvitat." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Contul tău a fost verificat!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Codurile tale de recuperare" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ru/messages.po b/packages/client/components/i18n/catalogs/ru/messages.po new file mode 100644 index 00000000..79c0f352 --- /dev/null +++ b/packages/client/components/i18n/catalogs/ru/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ru\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 человек отреагировал" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "О нас" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Принять заявку в друзья" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Добавить в друзья" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Расширенные" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Все сообщения" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Вы уже дружите с этим пользователем." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Внешний вид" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Назначать роли" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Приложение для аутентификации" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Аватар" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Значки" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Забанить" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Забанить участника" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Банить участников" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Баны" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Заблокировать пользователя" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Заблокированный" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Заблокированный пользователь" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Бот" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Баг трекер" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Отменить" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Отменить заявку в друзья" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Невозможно удалить аккаунт, пока серверы не будут удалены или переданы" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Изменить" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Изменять аватар" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Изменять никнейм" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Описание канала" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Название канала" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Каналы" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Проверьте свою электронную почту!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Очистить статус" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Настройки клиента" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Закрыть" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Подтвердить" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Подтвердить действие" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Подключаться" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Содержимое нарушает один или несколько законов" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Продолжить" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Беседы" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Скопировать ID канала" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Скопировать ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Скопировать ссылку" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Скопировать ID сообщения" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Скопировать ID сервера" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Скопировать текст" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Скопировать ID пользователя" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Создать" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Создать группу" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Создать нового бота" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Создать новую роль" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Создать аккаунт" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Создать категорию" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Создать канал" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Создать приглашение" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Текущий пароль" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Пользовательский статус" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Кастомизация" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Отключать звук участникам" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "По умолчанию" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Удалить" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Удалить канал" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Удалить сообщение" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Удалить роль" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Отключить учетную запись" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Не беспокоить" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Готово" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Изменить личность" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Редактировать сообщение" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Редактировать информацию о себе" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Электронная почта" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Эмодзи" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Включить приложение для аутентификации" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Включить уведомления на рабочем столе" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Введите новый пароль." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Войти в канал" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Введите код" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Введите ваш текущий пароль." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Введите имя пользователя." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Внешние ссылки могут быть опасными!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Не удалось проверить!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Обратная связь" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Найдите сообщество по вашим хобби или интересам." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Сосредоточен" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Друзья" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Сгенерировать резервные коды" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Создание приглашения…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Вернуться ко входу" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Перейти на сервер тестировщиков" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Название группы" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Привет!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Домашняя страница" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Я подтверждаю, что мне больше 18 лет." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Неактивен" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Невидимый" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Пригласите всех своих друзей, крутых ботов, и устройте большую вечеринку." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Код приглашения" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Создавать приглашения" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Пригласил" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Приглашения" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Перейти в конец" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Перейти к началу" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Выгнать" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Выгнать участника" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Выгонять участников" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Язык" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Последние" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Покинуть" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Покинуть группу" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Покинуть сервер" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Дайте нам знать, как мы можем улучшить наше приложение, оставив нам отзыв." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Выйти" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Выйти из всех других сессий" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Войти" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Управление персонализацией" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Управлять сообщениями" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Управлять никнеймами" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Редактировать права" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Управлять ролями" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Управлять сервером" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Управлять вебхуками" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Отметить как прочитанное" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Пометить как непрочитанное" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Маскарад" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Участники" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Упомянуть" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Только упоминания" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Сообщение" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Сообщение не загружено, нажмите, чтобы перейти" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Сообщение получено" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Сообщение отправлено" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Сообщение было отправлено на другой платформе" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Переписка" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Перемещать участников" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Отключать микрофон участникам" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Заглушен" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Общие друзья" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Общие группы" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Мой аккаунт" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Мои боты" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Новый пароль" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Никнейм" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ничего" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Уведомления" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Выкл" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Официальное сообщение" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Официальный сервер" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Не в сети" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ок" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Старые" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Вкл" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "После удаления, пути назад не будет." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "В сети" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Открыть настройки" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Обзор" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Пароль" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Права" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Выберите имя пользователя, по которому люди смогут находить вас. Позже его можно будет изменить в настройках." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Пожалуйста, подтвердите это действие выбранным методом." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Введите свою электронную почту." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Пожалуйста, сохраните их в безопасном месте." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Пожалуйста, отсканируйте или используйте токен ниже в приложении для аутентификации." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Пожалуйста, выберите метод аутентификации вашего запроса." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Политика конфиденциальности" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Профиль" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Просматривать историю сообщений" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Причина" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Код восстановления" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Зарегистрироваться" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Отклонить заявку в друзья" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Актуальные" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Удалить аутентификатор" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Удалять аватары" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Удалить из друзей" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Ответить" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Ответ для" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Пожаловаться" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Пожаловаться на сообщение" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Пожаловаться на сервер" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Пожаловаться на пользователя" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Отправить подтверждение повторно" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Сбросить" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Восстановить пароль" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Сбросить токен" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Название роли" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Роли" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Сохранить" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Сохранить в заметки" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Заметки" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Выберите язык" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Отправлять эмбеды" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Отправлять сообщения" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Отправил вложение" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Отправил несколько вложений" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Описание сервера" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Название сервера" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Сессии" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Настройки" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Несколько людей печатают…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Звуки" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Исходный код" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Говорить" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Отправить предложение" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Отправить отзыв" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Поддержите проект пожертвованием - спасибо!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Условия использования" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Текстовый канал" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Тема" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Это начало вашей беседы." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Это начало ваших заметок." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Этот пользователь заблокировал вас." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Отстранять участников" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Разблокировать пользователя" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Загружать файлы" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Пользователь" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Пользователь присоединяется к звонку" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Пользователь покидает звонок" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Управление пользователями" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Настройки пользователя" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Имя пользователя" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Проверка вашего аккаунта…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Видео" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Просматривать канал" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Посмотреть активные в настоящее время отчеты об ошибках можно здесь." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Прошлые обновления" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Просмотреть резервные коды" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Просмотр старых сообщений" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Голосовой канал" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Мы отправили вам на электронную почту письмо для подтверждения. Пожалуйста, подождите до 10 минут для его получения." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Вебхуки" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Добро пожаловать в" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Добро пожаловать!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Также вы можете кликнуть правой кнопкой мыши по иконке пользователя в левом верхнем углу, или кликнуть левой кнопкой мыши, если вы на домашней странице." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Вы можете снова открыть её позже, но она исчезнет с обеих сторон." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Вы можете сообщать об ошибках и обсуждать идеи с нами прямо здесь." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Вы не можете отменить это действие." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "У вас нет прав на отправку сообщений в этом канале." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Вы не сможете получить доступ к своему аккаунту, пока не обратитесь в службу поддержки, однако ваши данные не будут удалены." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Вы не сможете присоединиться снова, пока вас не пригласят повторно." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ваш аккаунт проверен!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Ваши резервные коды" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/si/messages.po b/packages/client/components/i18n/catalogs/si/messages.po new file mode 100644 index 00000000..1efd4c46 --- /dev/null +++ b/packages/client/components/i18n/catalogs/si/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: si\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 පුද්ගලයෙක් ප්‍රතිචාර දැක්වීය" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "පිළිබඳව" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "මිතුරු ඉල්ලීම පිළිගන්න" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "යහළුවා එක් කරන්න" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "උසස්" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "සියළුම පණිවිඩ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "දැනටමත් ඔහු/ඇය සමඟ හිතවත්ය." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "පෙනුම" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "භූමිකාවන් පවරන්න" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "සත්‍යාපන යෙදුම" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "ප්‍රතිරූපය" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "චිහ්න" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "තහනම් කිරීම" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "සමාජිකයා තහනම්" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "සාමාජිකයින් තහනම" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "තහනම් කිරීම්" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "පරිශීලකයා අවහිර" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "අවහිර කර ඇත" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "අවහිර කළ පරිශීලකයෙකි" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "ස්වයංක්‍රමලේඛය" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "දෝෂ සොයාගන්නා" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "අවලංගු" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "මිතුරු ඉල්ලීම අවලංගු කරන්න" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "සේවාදායක පරිගණකය මකා දමන තුරු හෝ මාරු කරන තුරු ගිණුම මකා දැමිය නොහැක" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "වෙනස් කරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "පැතිකඩ පින්තූරය වෙනස් කරන්න" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "අපනාමය සංශෝධනය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "නාලිකාවේ සවිස්තරය" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "නාලිකාවේ නම" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "නාලිකා" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "වි-තැපෑල පරීක්‍ෂා කරන්න!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "තත්‍වය මකන්න" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "අනුග්‍රාහක සැකසුම්" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "වසන්න" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "තහවුරු" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "ක්‍රියාව තහවුරු කරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "සබඳින්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "අන්තර්ගතය නීති එකක් හෝ කිහිපයක් කඩ කරයි" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "ඉදිරියට" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "සංවාද" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "නාලිකාවේ හැඳු. පිටපතක්" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "හැඳු. පිටපතක්" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "සබැඳියේ පිටපතක්" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "පණිවිඩයේ හැඳු. පිටපතක්" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "සේවාදායක හැඳු. පිටපතක්" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "පෙළ පිටපතක්" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "පරිශීලක හැඳු. පිටපතක්" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "සාදන්න" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "සමූහයක් සාදන්න" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "නව ස්වයංක්‍රමලේඛයක් සාදන්න" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "නම භූමිකාවක් සාදන්න" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "ගිණුමක් සාදන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "ප්‍රවර්ගය සාදන්න" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "නාලිකාව සාදන්න" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "ඇරයුම සාදන්න" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "වත්මන් මුරපදය" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "අභිරුචි තත්‍වය" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "අභිරුචිකරණය" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "සාමාජිකයින්ව බිහිරි කරන්න" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "පෙරනිමි" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "මකන්න" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "නාලිකාව මකන්න" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "පණිවිඩය මකන්න" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "භූමිකාව මකන්න" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "ගිණුම අබල කරන්න" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "බාධා කරන්න එපා" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "අහවරයි" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "හැඳුනුම සංස්කරණය" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "පණිවිඩය සංස්කරණය" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "ඔබගේ අනන්‍යතාවය සංස්කරණය කරන්න" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ඊ-තැපෑල" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "ඉමෝජි" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "සත්‍යාපන යෙදුම සක්‍රිය කරන්න" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "වැඩතල දැනුම්දීම් සබල කරන්න" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "නව මුරපදයක් යොදන්න." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "නාලිකාවට ඇතුල් වන්න" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "කේතය යොදන්න" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "වත්මන් මුරපදය යොදන්න." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "ඔබ කැමති පරිශීලක නාමය ඇතුලත් කරන්න." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "බාහිර සබැඳි අනතරායකාරී විය හැකිය!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "සත්‍යාපනයට නොහැකි විය!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "ප්‍රතිපෝෂණය" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "ඔබේ විනෝදාංශ හෝ රුචිකත්වයන් මත පදනම්ව ප්‍රජාවක් සොයා ගන්න." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "අවධානය යොමු කරන්" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "යහළුවන්" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "ප්‍රතිසාධන කේත උත්පාදනය" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "ඇරයුම උත්පාදනය වෙමින්…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "පිවිසුමට ආපසු යන්න" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "පරීක්‍ෂක සේවාදායකයට එක්වන්න" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "සමූහයේ නම" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "ආයුබෝවන්!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "මුල" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "මම අවම වශයෙන් අවු. 18 ක් බව තහවුරු කරමි." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "නිෂ්ක්‍රීයයි" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "අදෘශ්‍යමානයි" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "ඔබගේ සියලු මිතුරන්ට ආරාධනා කරන්න, නියම රොබෝලා කිහිපයකට, සහ විශාල සාදයක් පවත්වන්න." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "ඇරයුම් කේතය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "අන් අයට ආරාධනා කරන්න" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "ඇරයුම්කරු" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "ඇරයුම්" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "වත්මනට යන්න" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "මුලට පනින්න" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "පයින් ගහන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "සාමාජිකයාට පයින් ගසන්න" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "සාමාජිකයින්ට පයින් ගසන්න" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "භාෂාව" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "නවතම" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "හැරයන්න" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "සමූහය හැරයන්න" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "සේවාදායකය හැරයන්න" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "අපට ප්‍රතිපෝෂණ ලබා දීමෙන් අපගේ යෙදුම වැඩිදියුණු කළ හැකි ආකාරය අපට දන්වන්න." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "නික්මෙන්න" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "අන් සියළුම වාර නික්මවන්න" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "පිවිසෙන්න" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "අභිරුචිකරණය කළමනාකරණය කරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "පණිවිඩ කළමනාකරණය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "අපනාම කළමනාකරණය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "අවසරයන් කළමනාකරණය කරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "භූමිකා කළමනාකරණය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "සේවාදායකය කළමණාකරනය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Webhooks කළමනාකරණය කරන්න" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "කියවූ බව යොදන්න" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "නොකියවූ ලෙස ලකුණු කරන්න" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "වෙස් මුහුණු" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "සාමාජිකයින්" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "සැඳහුම" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "සැඳහුම් පමණි" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "පණිවිඩය" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "පණිවිඩය පූරණය වී නැත, පැනීමට ක්ලික් කරන්න" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "පණිවිඩය ලැබුණි" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "පණිවිඩය යැවිණි" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "පණිවිඩය වෙනත් වේදිකාවක් තුලදී යවන ලදී" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "පණිවිඩ යැවීම" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "සමාජිකයින් ගෙනයන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "සාමාජිකයින් නිහඬ කරන්න" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "නිහඬයි" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "අන්‍යෝන්‍ය යහළුවන්" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "අන්‍යෝන්‍ය සමූහ" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "මාගේ ගිණුම" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "මාගේ ස්වයංක්‍රමලේඛ" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "නව මුරපදය" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "අපනාමය" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "කිසිත් නැත" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "දැනුම්දීම්" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "අක්‍රියයි" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "නිල සන්නිවේදනය" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "නිල සේවාදායකය" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "මාර්ගඅපගතයි" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "හරි" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "පරණම" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "සක්‍රියයි" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "එය මකා දැමූ පසු, ආපසු යාමක් නැත." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "මාර්ගගතයි" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "සැකසුම් අරින්න" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "දළ විශ්ලේෂණය" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "මුරපදය" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "අවසර" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "මිනිසුන්ට ඔබව සොයා ගැනීමට අවශ්‍ය පරිශීලක නාමයක් තෝරන්න. මෙය පසුව ඔබගේ පරිශීලක සැකසුම් තුළ වෙනස් කළ හැක." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "කරුණාකර තෝරාගත් ක්‍රමය භාවිතයෙන් මෙම ක්‍රියාව තහවුරු කරන්න." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "කරුණාවෙන්ඊ ඔබගේ ඊ-තැපෑල යොදන්න." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "කරුණාකර මේවා ආරක්ෂිත ස්ථානයක සුරකින්න." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "කරුණාකර ඔබගේ සත්‍යාපන යෙදුමේ පහත ටෝකනය පරිලෝකනය කරන්න හෝ භාවිතා කරන්න." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "කරුණාකර ඔබගේ ඉල්ලීම සත්‍යාපනය කිරීමට ක්‍රමයක් තෝරන්න." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "රහස්‍යතා ප්‍රතිපත්තිය" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "පැතිකඩ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "පණිවිඩ ඉතිහාසය කියවන්න" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "හේතුව" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "ප්‍රතිසාධන කේතය" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "ලියාපදිංචි වන්න" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "මිතුරු ඉල්ලීම ප්‍රතික්ෂේප කරන්න" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "අදාළත්වය" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "ඔතන්ටිකේටරය ඉවත් කරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "පැතිකඩ පින්තූර ඉවත් කරන්න" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "යහළුවා ඉවත් කරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "පිළිතුර" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "පිළිතුරු දෙමින්" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "වාර්තාව" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "පණිවිඩය වාර්තා කිරීම" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "සේවාදායකය වාර්තා කරන්න" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "පරිශීලකයාව වාර්තා කරන්න" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "සත්‍යාපනය නැවත යවන්න" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "යළි සකසන්න" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "මුරපදය යළි සකසන්න" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "සංකේතය නැවත සකසන්න" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "භූමිකාවේ නම" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "භූමිකා" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "සුරකින්න" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "ඔබගේ සටහන් වෙත සුරකින්න" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "සුරැකි සටහන්" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "ඔබගේ භාෂාව තෝරන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Embeds යවන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "පණිවිඩ යවන්න" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "ඇමුණුමක් යැවිණි" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "ඇමුණුම් කිහිපයක් යැවිණි" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "සේවාදායකයේ සවිස්තරය" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "සේවාදායකයේ නම" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "වාර" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "සැකසුම්" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "කිහිප දෙනෙක් ලියමින්…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "ශබ්ද" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "ප්‍රභව කේතය" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "කතා කරන්න" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "විශේෂාංග යෝජනාව ඉදිරිපත් කරන්න" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "ප්‍රතිපෝෂණය යොමන්න" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "මෙම ව්‍යාපෘතියට පරිත්‍යාග කිරීමෙන් උදව් වන්න - ස්තූතියි!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "සේවාවේ නියම" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "පාඨ නාලිකාව" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "තේමාව" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "මෙය ඔබගේ සංවාදයේ ආරම්භය යි." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "මෙය ඔබගේ සටහන්වල ආරම්භයයි." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "ඔහු/ඇය ඔබව අවහිර කර ඇත." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "සාමාජිකයින් ව කල් ඉකුත් කරන්න" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "පරිශීලකයා අනවහිර" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "ගොනු උඩුගත" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "පරිශීලක" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "පුද්ඉගලයා ඇමතුමට එක්විය" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "පුද්ගලයා ඇමතුම හැරගියා" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "පරිශීලක කළමනාකරණය" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "පරිශීලක සැකසුම්" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "පරීශිලක නාමය" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "ගිණුම සත්‍යාපනය වෙමින්…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "වීඩියෝ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "නාලිකාව දකින්න" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "දැනට සක්‍රිය දෝෂ වාර්තා මෙතැනින් බලන්න." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "පැරණි යාවත්කාලීන බලන්න" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "ප්‍රතිසාධන කේත බලන්න" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "පරණ පණිවිඩ දකිමින්" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "කටහඬ නාලිකාව" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "අපි ඔබට සත්‍යාපන විද්‍යුත් තැපෑලක් එවා ඇත. කරුණාකර එය පැමිණීමට විනාඩි 10 ක් වත් ඉඩ දෙන්න." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "වෙබ්කොකු" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "සාදරයෙන් පිළිගනිමු" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "සාදරයෙන් පිළිගනිමු!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "ඔබට ඉහළ වම්පස ඇති පරිශීලක නිරූපකය දකුණු-ක්ලික් කළ හැකිය, නැතහොත් ඔබ දැනටමත් නිවසේ සිටී නම් එය වම් ක්ලික් කරන්න." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "ඔබට එය පසුව නැවත විවෘත කළ හැක, නමුත් එය දෙපැත්තෙන්ම අතුරුදහන් වනු ඇත." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "ඔබට ගැටළු වාර්තා කිරීමට සහ වැඩිදියුණු කිරීම් පිළිබඳව අප සමඟ සෘජුවම මෙහි සාකච්ඡා කළ හැකිය." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "ඔබට මෙම ක්‍රියාව පසුගමනය කළ නොහැක." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "ඔබට මෙම නාලිකාවේ පණිවිඩ යැවීමට අවසර නැත." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "ඔබ සහාය සම්බන්ධ කර ගන්නේ නම් මිස ඔබට ඔබේ ගිණුමට ප්‍රවේශ වීමට නොහැකි වනු ඇත - කෙසේ වෙතත්, ඔබේ දත්ත මකා නොදමනු ඇත." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "ඔබට ඇරයුමකින් තොරව නැවත එක්වීමට නොහැකිය." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "ගිණුම සත්‍යාපනය වී ඇත!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "ඔබගේ ප්‍රතිසාධන කේත" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/sk/messages.po b/packages/client/components/i18n/catalogs/sk/messages.po new file mode 100644 index 00000000..33b73832 --- /dev/null +++ b/packages/client/components/i18n/catalogs/sk/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: sk\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 osoba reagovala" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "O Revolte" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Pridať Priateľa" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Všetky Správy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "S týmto používateľom sa už priatelíte." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Vzhľad" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Priradiť roly" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Overovacia aplikácia" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Odznaky" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Zabanovať Člena" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Zabanovať Členov" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bany" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Zablokovať používateľa" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Zablokované" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Zablokovaný Používateľ" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Sledovanie Chýb" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Zrušiť" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Zrušiť požiadavku" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Zmeniť" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Zmeniť Avatara" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Zmeňte Prezývku" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Popis Kanála" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Meno Kanála" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanály" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Skontrolujte si email!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Vymazať status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Nastavenie Klienta" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Zatvoriť" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Potvrdiť" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Potvrďiť akciu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Pripojiť" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Obsah porušuje jeden alebo viacero zákonov" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Pokračovať" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Konverzácie" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Skopírovať ID kanála" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopírovať ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Skopírovať Odkaz" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Skopírovať ID správy" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Skopírovať ID servera" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopírovať Text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Skopírovať ID používateľa" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Vytvoriť" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Vytvoriť skupinu" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Vytvorte nového robota" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Vytvoriť novú rolu" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Vytvoriť učet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Vytvoriť Kategóriu" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Vytvoriť kanál" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Vytvoriť pozvánku" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Aktuálne Heslo" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Vlastný status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Prispôsobenie" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Ohlušiť členov" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Predvolené" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Vymazať" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Odstrániť Kanál" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Odstrániť správu" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Vymazať Rolu" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Deaktivovať Účet" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Nevyrušovať" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Hotovo" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Upraviť identitu" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Upraviť správu" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emotikony" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Povoliť aplikáciu autentifikátora" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Povoliť Oznámenia na Ploche" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Zadaj nové heslo." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Zadajte kanál" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Zadajte kód" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Zadaj tvoje súčasné heslo." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Zadaj tvoje používateľské meno." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Externé odkazy môžu byť nebezpečné!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Nepodarilo sa overiť!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Spätná väzba" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Nájdite komunitu na základe svojich koníčkov alebo záujmov." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Sústredenie" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Priatelia" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generovať obnovovacie kódy" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generuje sa pozvánka…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Späť na prihlásenie" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Prejsť na server testerov" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Meno Skupiny" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Ahoj!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Domov" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Potvrdzujem, že mám aspoň 18 rokov." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Nečinný" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Neviditeľný" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Pozvite všetkých svojich priateľov, pár cool robotov a usporiadajte veľkú párty." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Kód Pozvánky" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Pozvať Ostatných" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Pozývateľ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Pozvánky" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Skočiť do dneška" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Skočiť na začiatok" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Vyhodiť" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Vyhodiť Člena" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Vyhodiť členov" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Jazyk" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Najnovšie" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Odísť" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Opustit skupinu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Opustiť server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Poskytnite nám spätnú väzbu a dajte nám vedieť, ako môžeme zlepšiť našu aplikáciu." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Odhlásiť sa" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Odhlás sa zo všetkých ostatných relácií" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Prihlásiť sa" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Spravovanie prispôsobenia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Správa Správ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Spravovať Prezývky" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Spravovať Povolenia" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Spravovať Roly" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Spravovať Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Spravujte Webhooky" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Označiť ako prečítané" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Označiť ako neprečítané" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maškaráda" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Členovia" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Zmienka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Iba Zmienky" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Správa" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Správa nie je načítaná, kliknutím na ňu preskočíte" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Správa Prijatá" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Správa Odoslaná" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Správa bola odoslaná na inej platforme" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Presunúť Členov" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Umlčať Členov" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Stlmený" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Spoloční Priatelia" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Vzájomné Skupiny" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Môj Účet" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Moji Boti" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nové heslo" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Prezývka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Žiadny" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Oznámenia" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Vypnuté" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Oficiálna komunikácia" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Oficiálny server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Najstaršie" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Zapnuté" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Akonáhle je vymazaný, nie je cesty späť." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Otvoriť nastavenia" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Prehľad" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Heslo" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Povolenia" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Vyberte používateľské meno, podľa ktorého vás chcú ľudia nájsť, toto je možné neskôr zmeniť v nastaveniach." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Potvrďte prosím zvolenou metódou." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Prosím zadaj tvoj e-mail." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Uložte si ich na bezpečné miesto." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Naskenujte alebo použite token nižšie vo svojej overovacej aplikácii." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Vyberte spôsob overenia vašej žiadosti." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Zásady ochrany osobných údajov" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Prečítajte si Históriu Správ" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Dôvod" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Obnovovací kód" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Zaregistrovať" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevantnosť" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Odstrániť Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Odstrániť Avatary" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Odstrániť Priateľa" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Odpovedať" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Odpovedám" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Nahlásiť" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Nahlásiť správu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Nahlásiť server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Nahlásiť používateľa" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Znova odoslať overenie" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Reset" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Obnoviť heslo" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Meno Role" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roly" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Uložiť" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Uložiť do poznámok" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Uložené poznámky" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Vyberte svoj jazyk" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Odoslať Vložené Položky (Embed)" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Posielať Správy" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Odoslal prílohu" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Odoslal viacero príloh" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Popis Servera" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Meno Servera" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Relácie" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Nastavenia" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Niekoľko ľudí píše…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Zvuky" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Zdrojový Kód" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Hovoriť" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Odošlite návrh Funkcie" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Odoslať spätnú väzbu" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Podporte projekt príspevkom - ďakujeme!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Podmienky Služby" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Textový Kanál" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Motív" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Toto je začiatok vašej konverzácie." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Toto je začiatok tvojich poznámok." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Tento používateľ vás zablokoval." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Umlčať Členov" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Odblokovať používateľa" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Nahrať súbory" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Používateľ" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Používateľ sa pripojil do Hovoru" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Používateľ odišiel z Hovoru" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Správa Užívateľov" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Užívateľské nastavenia" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Používateľske Meno" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Overuje sa váš účet…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Zobraziť Kanál" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Aktuálne aktívne hlásenia chýb nájdete tu." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Zobraziť staršie aktualizácie" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Zobraziť Kódy pre Obnovenie" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Zobrazenie starších správ" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Hlasový Kanál" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Odoslali sme ti overovací e-mail. Počkajte, prosím, do 10 minút, kým príde." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Vitajte v" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Vitaj!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Taktiež môžete kliknúť pravým tlačidlom myši na ikonu používateľa vľavo hore, alebo kliknúť ľavým tlačidlom ak už ste na domovskej stránke." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Môžete ho znova otvoriť neskôr, ale zmizne na oboch stranách." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Tu môžete nahlásiť problémy a diskutovať o vylepšeniach." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Túto akciu nemôžete vrátiť späť." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Na odosielanie správ v tomto kanáli nemáte povolenie." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nebudete sa môcť znova pripojiť, pokiaľ nebudete znova pozvaní." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Tvoj účet bol overený!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Vaše kódy na obnovenie" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/sl/messages.po b/packages/client/components/i18n/catalogs/sl/messages.po new file mode 100644 index 00000000..ba90285c --- /dev/null +++ b/packages/client/components/i18n/catalogs/sl/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: sl\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 oseba je reagirala" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "O Projektu" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Sprejmite prijateljsko prošnjo" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Dodaj prijatelja" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Napredno" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Vsa sporočila" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "S tem uporabnikom ste že prijatelja." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Videz" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Dodeljevanje Vlog" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplikacija Authenticator" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Značke" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Ban" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Ban-aj člana" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ban-anje Članon" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Bani" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blokiraj uporabnika" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blokirani" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blokirani uporabnik" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Sledilec Hroščev" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Razveljavi" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Prekliči prošnjo" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Računa ni mogoče izbrisati, dokler strežniki niso izbrisani ali predani" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Spremenite" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Sprememba Avatarja" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Spreminjanje Vzdevka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Opis Kanala" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Ime Kanala" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanali" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Preverite svojo pošto!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Odstrani status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Nastavitve odjemalca" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Zapri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Potrdi" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Potrdi akcijo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Povezovanje" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Vsebina prekrši en ali več zakonov" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Nadaljuj" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Pogovori" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopiraj ID kanala" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopiraj ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopiraj povezavo" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopiraj ID sporočila" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopiraj strežnikov ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopiraj tekst" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopiraj uporabniški ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Ustvari" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Ustvarite skupino" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Ustvarite nov robot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Ustvari novo vlogo" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Ustvari račun" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Ustvari kategorijo" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Ustvari kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Ustvari povabilo" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Trenutni geslo" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Prilagodi status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Prilagajanje" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Utišanje Članov" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Privzeto" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Izbriši" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Izbriši kanal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Izbriši sporočilo" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Izbriši Vlogo" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Onemogoči račun" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Ne moti" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Končano" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Uredi identiteto" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Uredi sporočilo" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Uredite svojo identiteto" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E -pošta" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojiji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Omogoči avtentikacijsko aplikacijo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Omogoči Namizna Obvestila" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Vnesite novo geslo." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Vnesite kanal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Vpišite Kodo" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Vnesite svoje trenutno geslo." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Vnesi svoje želeno uporabniško ime." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Zunanje povezava so lahko nevarne!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Verifikacija je bila neuspešna!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Povratne informacije" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Poiščite skupnost na podlagi vaših hobijev in/ali interesov." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Prijatelji" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generirajte Obnovitvene Kode" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Generiranje kode za povabitev…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Vrnite se na prijavo" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Pojdite v strežnik preizkuševalcev" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Ime skupine" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Pozdravljeni!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Domov" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Potrjujem, da sem star najmanj 18 let." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "V prostem teku" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Nevidno" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Povabite svoje prijatelje, nekaj kul robotov in priredite veliko zabavo." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Povabilna Koda" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Povabljanje Drugih" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Ustvarjalec Povabila" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Povabila" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Skoči na predstavitev" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Skoči na začetek" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Odstrani" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Odstrani člana" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Odstranjevanje Članov" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Jezik" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Najnovejše" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Zapusti" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Zapusti skupino" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Zapusti strežnik" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Povejte nam kako lahko izboljšamo našo aplikacijo tako, da nam pošljete povratne informacije." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Izpis" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Odjavite se z vseh drugih sej" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Prijava" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Urejaj Prilagoditve" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Upravljanje Sporočil" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Upravljanje Vzdevkev" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Urejaj Dovoljenja" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Upravljanje vlog" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Upravljanje strežnika" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Urejanje Spletnih Trnkov" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Označi kot prebrano" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Označi kot neprebrano" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maškarada" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Člani" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Omeni" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "omenja le" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Sporoči" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Sporočilo ni bilo naloženo, kliknite da skočite do njega" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Sporočilo je prejeto" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Sporočilo poslano" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Sporočilo je bilo poslano na drugi platformi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Premikanje Članov" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Izključevanje Mikorfona Članov" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Utišan" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Sorodni Prijatelji" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Sorodne Skupine" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Moj račun" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Moji roboti" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Novo Geslo" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Vzdevek" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Nobena" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Obvestila" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Izklopljeno" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Uradna Komunikacija" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Uradni Strežnik" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Brez povezave" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Najstarejši" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Vklopljeno" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Ko ga enkrat izbrišete bo šel za vedno." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Na spletu" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Odpri nastavitve" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Pregled" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Geslo" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Dovoljenja" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Izberite uporabniško ime, po katerem želite da vas ljudje najdejo. To lahko spremenite kasneje v vaših nastavitvah računa." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Prosimo vas, da potrdite to akcijo z izbrano metodo." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Vpišite svoj elektronski naslov." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Prosimo vas, da jih shranite na varno lokacijo." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Prosimo vas da poskenirate ali uporabite žeton napisan spodaj v vaši avtentikacijski aplikaciji." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Prosimo vas, da izberete metodo za avtentikacijo vaše prošnje." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Politika zasebnosti" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Branje Zgodovine Sporočil" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Razlog" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Koda za izterjavo" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrirajte se" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Zavrnite prijateljsko prošnjo" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Ustreznost" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Odstrani Authenticator" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Odstranjevanje Avatarjev" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Odstrani prijatelja" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Odgovori" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Odgovarjate" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Prijavi" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Prijavi sporočilo" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Prijavi strežnik" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Prijavi uporabnika" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Ponovno pošlji verifikacijo" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Ponastavi" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Ponastavi geslo" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Žeton za ponastavitev" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Ime Vloge" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Vloge" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Shrani" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Shranite v zapiske" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Shranjeni zapiski" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Izberite svoj jezik" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Pošiljanje Emebed-ov" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Pošiljanje Sporočil" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Poslali prilogo" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Poslano več priključki" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Opis strežnika" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Ime Strežnika" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Seje" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Nastavitve" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Več ljudi so tipkanje…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sliši se" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Izvorna koda" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Govorjenje" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Predložite predlog funkcije" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Pošlji povratne informacije" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Podprite projekt z donacijo - hvala!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Pogoji storitve" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Besedilni kanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "To je začetek vašega pogovora." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "To je začetek vaših zapiskov." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Ta uporabnik vas je blokiral." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Pavziraj Člane" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Odblokiraj uporabnika" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Nalaganje Datotek" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Uporabnik" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Uporabnik Pridružil Call" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Levi klic uporabnika" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Upravljanje Uporabnikov" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Uporabniške nastavitve" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Uporabniško ime" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verificiranje vašega računa…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Ogled Kanala" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Poglejte trenutno aktivne prijave hroščev tukaj." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Poglej starejše posodobitve" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Poglejte Kode za Obnovitev" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Ogled starejših sporočil" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Glasovni kanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Poslali smo vam epoštno sporočilo za verifikacijo. Prosimo vas, da počakate do 10 minut da prispe." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Spletni trnki" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Dobrotošli v" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Dobrodošli nazaj!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Lahko tudi kliknete z desnim klikom na uporabniško ikono v zgornjem levem kotu, ali pa jo kliknite z levim klikom če ste že na domu." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Lahko ga ponovno odprete kasneje, vendar bo izginil na obeh straneh." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Težave lahko prijavite in tukaj z nami razpravljate o njihovih izboljšavah." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Te akcije ne možno razveljavti." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Nimate dovoljenja za pošiljanje sporočil v tem kanalu." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Ne boste zmožni dostopati do svojega računa, razen če kontaktirate našo uporabnikovo podporo - toda brez skrbi, vaši podatki ne bodo izbrisani." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Ne boste imeli možnosti se ponovno pridružiti, razen če vas nekdo ponovno povabi." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Vač račun je bil verificiran!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Vaše obnovitvene kode" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/sq/messages.po b/packages/client/components/i18n/catalogs/sq/messages.po new file mode 100644 index 00000000..c1913fae --- /dev/null +++ b/packages/client/components/i18n/catalogs/sq/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: sq\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 njeri ka reaguar" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Rreth" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Shtoni mik" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Të githa mesazhet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Tashmë miq me këtë përdorues." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Pamja" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Cakto role" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplikacioni i identifikimit" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Imazhi i profilit" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Bexhet" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Përjashto" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Anëtari i ndalimit" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Ndaloni anëtarët" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blloko përdoruesin" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Përdorues i bllokuar" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Gjurmuesi i gabimeve" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Anulo" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Hiq shokun" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Nuk mund të fshihet llogaria derisa serverat të fshihen ose transferohen" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Ndrysho" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Ndrysho Avatarin" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Ndrysho pseudonimin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanalet" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Kontrolloni email-in tuaj!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Statusi i personalizuar" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Opsionet e klientit" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Mbylle" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Konfirmo" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Konfirmo veprimin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Lidhu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Përmbajtja shkel një ose më shumë ligje" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Vazhdo" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Bisedat" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopjo ID-në e kanalit" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopjo ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopjo lidhjen" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopjo ID-në e mesazhit" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopjo ID-në e serverit" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopjo tekstin" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopjo ID-në e përdoruesit" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Krijo" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Krijo një grup" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Krijo një bot të ri" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Krijo një llogari" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Krijo kategori" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Krijo kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Krijo ftesë" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Fjalëkalimi i tanishëm" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Raporto përdoruesin" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Përshtatje" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Anëtarët e shurdhër" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "E paracaktuar" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Fshije" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Fshi kanalin" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Fshi mesazhin" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Fshij Rolin" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Çaktivizo llogarinë" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Mos e shqetësoni" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "U krye" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Redakto identitetin" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Redakto mesazhin" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Adresa e email-it" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Aktivizo aplikacionin e vërtetuesit" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Aktivizo njoftimet e desktopit" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Shkruani një fjalëkalim të ri." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Hyr tek kanali" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Shkruani kodin" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Shkruani fjalëkalimin tuaj të tanishëm." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Shkruani emrin e dëshiruar." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Lidhjet e jashtme mund të jenë të rrezikshme!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Dështoi të verifikohej!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Reagimet" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Gjeni një komunitet të bazuar mbi hobitë ose interesat e tua." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "I fokusuar" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Shokët" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Krijo kodet e rikthimit" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Ftesa po gjenerohet…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Shko mbrapsht për tek identifikimi" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Shko tek serveri i testuesve" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Emri i grupit" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Përshëndetje!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Krye" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Konfirmoj që jam të paktën 18 vjeç." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inaktivë" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "I padukshëm" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Ftoni të gjithë miqtë e tua, shtoni disa robotë të lezetshëm dhe organizoni një festë të madhe." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Ftoni të tjerët" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Rikthehu tek mesazhet e tashme" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Shko tek fillimi" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Largo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Anëtar i goditjes" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Kick Anëtarët" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Gjuhë" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Më të fundit" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Largohu" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Largohu nga grupi" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Largohu nga serveri" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Na tregoni se si mund ta përmirësojmë aplikacionin tonë duke na dhënë komente." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Shkyçu nga gjithë seancat e tjera" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Hyr" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Menaxho personalizimin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Menaxho Mesazhet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Menaxho pseudonimet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Menaxho lejimet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Menaxho rolet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Menaxho serverin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Menaxho Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Shënoni si të lexuar" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Shëno si të palexuar" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskaradë" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Përmend" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Vetëm njoftimet" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Mesazh" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mesazhi nuk është ngarkuar, klikoni për t'u kthyer" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "mesazhi i marrë" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mesazhi u Dergua" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mesazhi është nisur mbi një platform tjetër" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Zhvendos anëtarët" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Heshtja e anëtarëve" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Heshtur" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Shoke te perbashket" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Grupet e përbashkëta" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Llogaria ime" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Robotat e mi" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Fjalëkalimi i ri" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Pseudonimi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Asgjë" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Njoftimet" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Çaktivizuar" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Komunikim Zyrtar" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Serveri zyrtar" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Më të vjetrat" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Aktivizuar" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Pasi të fshihet, nuk ka kthim prapa." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Hap opsionet" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Fjalëkalimi" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Zgjidhni një emër me të cilin dëshironi që njerëzit të mund t'ju gjejnë. Emëri mund të ndryshohet më vonë tek opsionet e tua të përdoruesit." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Ju lutemi konfirmojeni këtë aksion duke përdorur metodën e zgjedhur." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Ju lutem shkruani email-in tuaj." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Ju lutemi ruani këto në një vend të sigurt." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Ju lutemi skanojeni ose përdoreni kodin më poshtë me aplikacionin tuaj të identifkimit." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Ju lutemi zgjidhni një metodë për të vërtetuar kërkesën tuaj." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Politika e privatësisë" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profili" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Lexoni Historinë e Mesazheve" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Arsyje" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kodi i rikuperimit" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Regjistrohu" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Rëndësia" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Hiq faktorin e identifikimit" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Hiq Avatarët" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Hiq shokun" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Përgjigju" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Duke iu përgjigjur" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Raporto" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Raporto mesazhin" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Serveri i raportit" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Anulo kerkesen" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Ridërgo verifikimin" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Rivendos" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Rivendosni fjalëkalimin" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Emër roli" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roles" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Ruaj" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Ruaje në shënimet e tua" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Shënimet e ruajtura" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Zgjidhni gjuhën tuaj" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Dërgo Embeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Dërgo Mesazhe" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Dërgo një bashkangjitje" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Dërgo disa bashkangjitje" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Përshkrimi i serverit" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Seancat" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Opsionet" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Disa njerëz po shkruajnë…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Tingujt" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kodi source" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Fol" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Dërgo komente" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Mbështetni projektin duke dhuruar!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Kushtet e Shërbimit" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Kanal prej teksti" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Pamja" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ky është fillimi i bisedës suaj." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ky është fillimi i shënimeve suaj." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Ky përdorues ju ka bllokuar." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Kohëzgjatja e anëtarëve" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Zhblloko përdoruesin" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Ngarko skedarë" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Përdoruesi iu bashkua telefonatës" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Perdoruesi u largua nga thirreja" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Opsionet e përdoruesit" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Emri i përdoruesit" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Po verifikojmë llogarinë tënde…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Shiko Kanalin" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Shiko përditësimet më të vjetra" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Shiko kodet e rikuperimit" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Po lexon mesazhe të vjetra" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Kanal prej zëri" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Ju kemi dërguar një email verifikimi. Ju lutem, prisni të paktën 10 minuta për mbërritjen e email-it." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Uebhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Mire se erdhet ne" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Mirësevini!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Ju gjithashtu mund të klikoni me anën e djathtë ikonin e përdoruesit lart majtas, ose të klikoni normalisht në qoftë se jeni në krye." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Mund ta rihapni më vonë, por do të zhduket nga të dyja palet." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Ju mund të raportoni probleme dhe të diskutoni përmirësime me ne këtu." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Ju nuk mund ta zhbëni këtë veprim." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Ju nuk keni leje për të dërguar mesazhe këtu." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Do duhet ta kontaktoni suportin për ta aksesur llogarinë tuaj - të dhënat e llogarisë nuk do fshihen." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Nuk do të mund të bashkohesh sërish nëse nuk ftoheni sërish." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Llogaria juaj është verifikuar!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Kodet e tua të rikthimit" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/sr/messages.po b/packages/client/components/i18n/catalogs/sr/messages.po new file mode 100644 index 00000000..eebb843a --- /dev/null +++ b/packages/client/components/i18n/catalogs/sr/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: sr\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 особа је реаговала" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "О томе" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Прихвати захтев за пријатељство" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Додај пријатеља" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Напредно" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Све Поруке" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Већ сте пријатељи са овим корисником." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Изглед" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Додели улоге" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Апликација за аутентификацију" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Профилна Слика" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Значке" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Прогона" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Прогони члана" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Прогони Чланове" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Забране" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Блокирај корисника" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Блокиран" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Блокиран Корисник" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Бот" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Трагач Грешака" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Откажи" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Откажи захтев за пријатељство" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Налог не можете обрисати док сервери нису обрисани или пренети" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Измени" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Промени Профилну Слику" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Промени Надимак" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Дескрипција Канала" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Име Канала" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Канали" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Проверите ваш мејл!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Очисти статус" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Подешавања Апликације" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Затвори" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Потврди" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Потврди акцију" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Повежи се" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Садржај крши један или више закона" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Настави" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Ћаскања" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Копирај ИД канала" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Копирај ИД" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Копирај линк" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Копирај ИД поруке" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Коприај сервер ИД" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Коприрај текст" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Копирај кориснички ИД" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Направи" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Направи групу" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Направите новог бота" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Направите нову улогу" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Направите налог" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Направи категорију" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Направи канал" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Направи позивницу" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Тренутна лозинка" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Прилагођени статус" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Прилагођавање" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Оглуши чланове" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Уобичајено" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Избриши" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Обриши канал" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Избриши поруку" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Обриши Улогу" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Онемогући Налог" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Не узнемиравај" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Готово" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Промени идентитет" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Измени поруку" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Измени свој идентитет" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Имејл" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Емоји" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Омогући аутентикациону апликацију" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Омогући Desktop Oбавештања" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Унесите нову лозинку." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Приступи каналу" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Унесите код" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Унесите своју тренутну лозинку." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Унесите жељено корисничко име." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Екстерни линкови могу да буду опасни!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Верификовање је неуспешно!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Повратна Информација" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Пронађите заједницу засновану на вашим хобијима или интересовањима." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Фокус" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Пријатељи" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Генеришите кодове за опоравак" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Генерисање позива…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Вратите се на пријаву" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Иди у сервер за тестере" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Име Групе" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Здраво!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Почетак" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Потврђујем да имам најмање 18 година." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Неактиван" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Невидљив" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Позовите све ваше пријатеље, неке кул ботове и направите огромну журку." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Позивни Код" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Позови Остале" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Позивник" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Позиви" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Скочи од скорашњег" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Скочите од почетка" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Избаци" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Избаци члана" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Избаци Чланове" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Језик" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Најновије" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Изађи" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Изађи из групе" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Изађи из сервера" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Обавестите нас како можемо побољшати нашу апликацију дајући нам повратне информације." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Одјавите Се" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Одјавите се из свих осталих сесија" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Пријавите се" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Управљај прилагођавањем" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Управљање Порукама" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Управљање Надимцима" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Управљај дозволама" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Управљај Улогама" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Управљање Сервером" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Управљај вебхуковима" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Означи као прочитано" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Означи као необрађено" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Маскирање" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Чланови" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Помени" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Само Помињања" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Порука" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Порука није учитана, кликните да скочите" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Порука Примљена" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Порука Послата" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Порука је послата на другој платформи" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Поруке" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Премести чланове" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Заглуши чланове" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Утишан" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Заједнички Пријатељи" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Заједничке Групе" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Мој Налог" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Моји Ботови" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Нова лозинка" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Надимак" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Ниједно" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Обавештење" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Искључено" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Званична Комуникација" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Званични Сервер" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Офлајн" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Најстарије" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Укључено" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Када избришете, нећете моћи ићи уназад." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Онлајн" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Отвори подешавања" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Преглед" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Лозинка" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Дозволе" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Изаберите корисничко име по којем вас људи могу пронаћи. Ово можете променити касније у подешавањима корисника." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Молимо вас да потврдите ову акцију користећи изабрани метод." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Молимо вас да унесете ваш имејл." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Молимо вас да их сачувате на сигурном месту." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Молимо вас да скенирате или користите токен испод у вашој аутентикационој апликацији." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Молимо вас да изаберете метод за аутентификацију ваше захтев." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Политика приватности" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Профил" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Прочитај историју порука" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Разлог" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Код за опоравак" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Региструјте се" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Одбиј захтев за пријатељство" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Релевантност" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Уклони Аутентификатор" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Уклнои Аватаре" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Уклони пријатеља" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Одговори" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Одговарајући на" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Пријави" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Пријави поруку" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Пријави сервер" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Пријави корисника" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Поново пошаљи верификациони код" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Ресетуј" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Ресетуј лозинку" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Име Улоге" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Улоге" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Сачувај" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Сачувај у својим белешкама" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Сачуване Белешке" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Изаберите ваш језик" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Пошаљи уграђене поруке" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Слање Порука" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Послат прилог" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Послато више прилога" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Опис Сервера" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Име Сервера" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Сесије" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Подешавања" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Више људи пишу…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Звуци" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Изворни Код" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Говори" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Поднесите предлог функције" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Пошаљите повратне информације" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Подржите пројекат донацијом - хвала вам!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Услови коришћења" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Текст Канал" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Тема" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Ово је почетак вашег разговора." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Ово је почетак ваших бележака." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Овај корисник вас је блокирао." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Затвори чланове" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Деблокирај корисника" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Додај Фајлове" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Корисник" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Корисник је се прикључио позиву" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Корисник је изашао из позива" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Упраљање корисницима" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Корисничка Подешавања" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Корисничко име" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Верификујемо ваш налог…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Видео" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Погледај Канал" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Погледајте тренутно активне буг извештаје овде." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Погледајте старија ажурирања" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Погледајте кодове за опоравак" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Прегледање старијих порука" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Гласни Канал" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Послали смо вам верификациони имејл. Молимо вас да сачекате до 10 минута да стигне." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Вебхукови" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Добродошли у" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Добродошли!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Такође можете да кликнете са десним кликом на корисничку иконицу у горе левом ћошку или да притиснете левим кликом ако сте већ кући." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Можете га поново отворити касније, али ће нестати са обе стране." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Можете пријавити проблеме и разговарати о побољшањима са нама директно овде." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Не можете опозвати ову акцију." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Немате дозволу да шаљете поруке у овом каналу." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Нећете моћи да приступите свом налогу осим ако не контактирате подршку - међутим, ваши подаци неће бити обрисани." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Нећете моћи поново да уђете ако нисте поново позвани." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ваш налог је успешно верификован!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Ваши кодови за опоравак" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/sv/messages.po b/packages/client/components/i18n/catalogs/sv/messages.po new file mode 100644 index 00000000..fc8687aa --- /dev/null +++ b/packages/client/components/i18n/catalogs/sv/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: sv\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "En person har reagerat" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Om" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Lägg till vän" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Avancerat" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Alla meddelanden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Redan vän med användaren." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Utseende" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Tilldela Roller" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Autentiseringsapp" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Avatar" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Märken" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Bannlys" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Bannlys medlem" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Bannlys Medlemmar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Förbud" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Blockera användare" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Blockerade" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Blockerad Användare" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Robot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Buggspårare" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Avbryt" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Avbryt vänförfrågan" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Kan inte ta bort konto förrän servrar är borttagna eller flyttade" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Ändra" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Ändra Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Ändra Smeknamn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanalbeskrivning" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanalnamn" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanaler" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Kolla din e-post!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Rensa status" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Klientinställningar" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Stäng" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Bekräfta" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Bekräfta åtgärd" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Anslut" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Innehåll bryter mot en eller flera lagar" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Fortsätt" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Konversationer" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kopiera kanal-ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Kopiera ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Kopiera länk" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Kopiera meddelande-ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Kopiera server-ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Kopiera text" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kopiera användar-ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Skapa" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Skapa en grupp" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Skapa en ny bot" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Skapa en ny roll" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Skapa ett konto" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Skapa kategori" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Skapa kanal" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Skapa inbjudan" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Nuvarande Lösenord" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Anpassad status" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Anpassning" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Döva Medlemmar" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Standard" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Radera" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Radera kanal" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Radera meddelande" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Radera Roll" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Inaktivera Konto" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Stör ej" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Klart" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Redigera identitet" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Redigera meddelande" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-post" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emotikonar" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Aktivera autentiseringsappen" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Aktivera notifikationer på Skrivbordet" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Ange ett nytt lösenord." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Fortsätt" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Ange kod" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Ange ditt nuvarande lösenord." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Skriv in ditt önskade användarnamn." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Externa länkar kan vara farliga!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Det gick inte att verifiera!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Feedback" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Hitta en gemenskap baserat på dina hobbyer eller intressen." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Fokus" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Vänner" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Generera återställningskoder" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Genererar inbjudan…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Tillbaka till inloggningssidan" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Gå till vår testserver" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Gruppnamn" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Hej!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Hem" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Jag bekräftar att jag är åtminstone 18 år gammal." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Inaktiv" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Osynlig" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Bjud in alla dina vänner, några coola bottar och arrangera en stor fest." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Inbjudningskod" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Bjud In Andra" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Inbjudare" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Inbjudningar" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Hoppa till senaste" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Gå till början" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Sparka" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Sparka medlem" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Sparka Medlemmar" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Språk" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Senaste" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Lämna" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Lämna grupp" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Lämna server" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Berätta för oss om hur vi kan förbättra vår app genom att ge oss feedback." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Logga ut" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Logga ut från alla andra sessioner" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Logga in" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Hantera anpassningar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Hantera Meddelanden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Hantera Smeknamn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Hantera Behörigheter" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Hantera Roller" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Hantera Server" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Hantera Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Markera som läst" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Markera som oläst" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Maskerad" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Medlemmar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Nämn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Endast omnämnander" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Meddela" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Meddelandet har inte laddats, klicka för att hoppa" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Meddelande mottaget" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Meddelande skickat" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Meddelandet skickades på en annan plattform" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Meddelanden" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Flytta Medlemmar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Mjuta Medlemmar" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Tystad" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Gemensamma Vänner" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Gemensamma Grupper" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Mitt Konto" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Mina bottar" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nytt Lösenord" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Smeknamn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Inga" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notifikationer" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Av" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Officiell kommunikation" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Officiell Server" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ok" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Äldsta" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "På" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "När det är borttaget så kommer det inte tillbaka." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Öppna inställningar" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Översikt" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Lösenord" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Behörigheter" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Välj ett användarnamn som du vill att folk ska kunna hitta dig genom. Detta kan ändras senare via inställningarna." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Vänligen bekräfta denna åtgärd med den valda metoden." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Ange din e-postadress." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Spara dem på en säker plats." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Vänligen skanna eller använd token nedan i din autentisering-app." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Välj en metod för att autentisera din begäran." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Integritetspolicy" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Läs Meddelandehistorik" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Anledning" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Återställningskod" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrera" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Relevans" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Ta bort Autentiserare" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Ta Bort Avatarer" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Ta bort vän" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Svara" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Svarar på" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Rapportera" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Rapportera meddelande" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Rapportera server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Rapportera användare" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Skicka verifiering igen" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Återställ" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Återställ lösenord" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Återställ Token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rollnamn" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roller" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Spara" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Spara till dina anteckningar" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Sparade Anteckningar" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Välj ditt språk" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Skicka Inbäddningar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Skicka Meddelanden" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Laddade upp bilagan" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Laddade upp bilagorna" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Serverbeskrivning" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Servernamn" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sessioner" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Inställningar" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Flera personer skriver…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Ljud" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Källkod" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Tala" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Lämna förslag" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Skicka feedback" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Stöd projektet genom att donera - tack!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Användarvillkor" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Textkanal" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Det här är början av er konversation." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Detta är starten av dina anteckningar." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Användaren har blockerat dig." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Pausa Medlemmar" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Avblockera användare" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Ladda Upp Filer" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Användare" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Användare gick med samtal" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Användare gick ur samtal" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Användarhantering" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Användarinställningar" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Användarnamn" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Verifierar ditt konto…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Se Kanal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Visa aktuella felrapporter här." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Visa äldre uppdateringar" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Visa koder för återhämtning" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Visar äldre meddelanden" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Röstkanal" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Vi har skickat dig ett verifikationsmejl. Tillåt upp till 10 minuter för det att anlända." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Välkommen till" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Välkommen!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Du kan också högerklicka på användarikonen uppe till vänster, eller vänsterklicka om du redan är på hem-menyn." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Du kan öppna den senare igen, men den kommer att försvinna för er båda." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Du kan rapportera problem och diskutera förbättringar med oss direkt här." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Du kan inte ångra detta." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Du har inte behörighet att skicka meddelanden i denna kanal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Du kommer inte kunna nå ditt konto såvida du inte kontaktar supporten - däremot kommer inte din data att försvinna." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Du kommer inte kunna gå med igen om inte du blir inbjuden." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ditt konto har blivit verifierat!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Dina återvinningskoder" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ta/messages.po b/packages/client/components/i18n/catalogs/ta/messages.po new file mode 100644 index 00000000..c03039ac --- /dev/null +++ b/packages/client/components/i18n/catalogs/ta/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ta\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "பற்றி" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "அனைத்து செய்திகளும்" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "தோற்றம்" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "தடைகல்" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "தடுக்கப்பட்ட பயனர்" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "ரோபோ" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "மாற்றம்" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "சேனல் விளக்கம்" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "சேனல் பெயர்" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "பங்கேற்பாளர்கள்" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "உங்கள் மின்னஞ்சல் சரிபார்க்கவும்!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "வாடிக்கையாளர் அமைப்புகள்" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "உரையாடல்கள்" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "ஒரு குழுவை உருவாக்கவும்" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "புதிய பாத்திரத்தை உருவாக்கவும்" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "கணக்கை உருவாக்க வேண்டும்" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "தற்போதைய கடவுச்சொல்" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "இயல்புநிலை" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "கணக்கு முடக்கப்பட்டது" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "தொந்தரவு செய்யாதீர்" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "மின்னஞ்சல்" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "டெஸ்க்டாப் அறிவிப்புகளை இயக்கவும்." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "சேனலை உள்ளிடவும்" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "உங்கள் தற்போதைய கடவுச்சொல்லை உள்ளிடவும்." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "உங்களுக்கு விருப்பமான பயனர்பெயரை உள்ளிடவும்." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "கருத்து" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "நண்பர்கள்" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "உள்நுழைவுக்கு திரும்பவும்" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "சோதனையாளர் சேவையகத்திற்குச் செல்லவும்" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "குழு பெயர்" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "வணக்கம்!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "வீடு" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "எனக்கு குறைந்தது 18 வயது என்று உறுதி செய்கிறேன்." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "சும்மா" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "கண்ணுக்கு தெரியாத" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "அழைப்பாளர்" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "வழங்குவதற்கு செல்லவும்" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "தொடக்கத்தில் குதிக்கவும்" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "மொழி" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "சமீபத்திய" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "வெளியேறு" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "மற்ற அனைத்து அமர்வுகளிலிருந்தும் வெளியேறவும்" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "உள்நுழைய" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "உறுப்பினர்கள்" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "குறிப்புகள் மட்டுமே" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "செய்தி பெறப்பட்டது" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "தகவல் அனுப்பப்பட்டது" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "முடக்கப்பட்டது" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "என் கணக்கு" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "என் போட்ஸ்" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "ஒன்றுமில்லை" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "அறிவிப்புகள்" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "அஃப்" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "ஆஃப்லைன்" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "பழமையான" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "ஆன்" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "நிகழ்நிலை" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "அமைப்புகளைத் திறக்கவும்" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "அனுமதிகள்" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "கடவுச்சொல்" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "அனுமதிகள்" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "உங்கள் மின்னஞ்சலை உள்ளிடவும்." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "தனியுரிமை கொள்கை" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "பதிவு" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "சம்பந்தம்" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "அங்கீகாரத்தை அகற்று" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "சரிபார்ப்பு மீண்டும் அனுப்பிவும்" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "கடவுச்சொல்லை மீட்டமைக்கவும்" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "பாத்திரங்கள்" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "உங்கள் குறிப்புகளில் சேமிக்கவும்" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "சேமிக்கப்பட்ட குறிப்புகள்" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "உங்கள் மொழியைத் தேர்ந்தெடுக்கவும்" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "ஒரு இணைப்பு அனுப்பப்பட்டது" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "பல இணைப்புகள் அனுப்பப்பட்டன" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "சர்வரின் விளக்கம்" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "சர்வர் பெயர்" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "அமர்வுகள்" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "அமைப்புகள்" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "பலர் தட்டச்சு செய்கிறார்கள் …" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "ஒலிகள்" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "மூல குறியீடு" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "சேவை விதிமுறைகள்" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "உரை சேனல்" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "தீம்" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "இது உங்கள் உரையாடலின் ஆரம்பம்." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "இது உங்கள் குறிப்புகளின் தொடக்கம்." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "பயனர்" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "பயனர் உரையாடலில் இணைந்தார்" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "பயனர் உரையாடலை விட்டு வெளியேறினார்" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "பயனர் மேலாண்மை" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "பயனர் அமைப்புகள்" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "பயனர்பெயர்" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "பழைய செய்திகளைப் பார்க்கிறது" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "குரல் சேனல்" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "அது வருவதற்கு தயவுசெய்து பத்து நிமிடங்கள் வரை அனுமதிக்கவும்." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "மீண்டும் வருக!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "இந்தச் சேனலில் செய்திகளை அனுப்ப உங்களுக்கு அனுமதி இல்லை." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/th/messages.po b/packages/client/components/i18n/catalogs/th/messages.po new file mode 100644 index 00000000..bb62bae6 --- /dev/null +++ b/packages/client/components/i18n/catalogs/th/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: th\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "มีคนตอบสนองหนึ่งคน" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "เกี่ยวกับ" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "ยอมรับคำขอเป็นเพื่อน" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "เพิ่มเพื่อน" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "ขั้นสูง" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "ข้อความทั้งหมด" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "เป็นเพื่อนกับผู้ใช้นี้แล้ว" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "การแสดงผล" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "ตั้งบทบาท" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "แอพยืนยันตัวตน" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "รูปโปรไฟล์" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "ป้าย" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "แบน" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "แบนสมาชิก" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "แบนสมาชิก" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "แบน" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "บล็อกผู้ใช้" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "ถูกบล็อค" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "ผู้ใช้ที่ถูกบล็อก" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "บอท" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "ตัวติดตามบั๊ก" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "ยกเลิก" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "ยกเลิกคำขอ" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "ไม่สามารถลบบัญชีได้จนกว่าจะลบหรือโอนเซิร์ฟเวอร์" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "เปลี่ยน" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "เปลี่ยนภาพโปรไฟล์" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "เปลี่ยนชื่อเล่น" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "คำอธิบายช่อง" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "ชื่อช่อง" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "ช่อง" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "โปรดตรวจสอบอีเมล์ของคุณ!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "ล้างสถานะ" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "การตั้งค่าแอป" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "ปิด" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "ยืนยัน" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "ยืนยันการกระทำ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "เชื่อมต่อ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "เนื้อหาผิดกฎหมาย" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "ดำเนินการต่อ" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "บทสนทนา" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "คัดลอก ID ช่อง" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "คัดลอก ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "คัดลอกลิงก์" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "คัดลอก ID ข้อความ" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "คัดลอก ID เซิร์ฟเวอร์" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "คัดลอกข้อความ" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "คัดลอก ID ผู้ใช้" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "สร้าง" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "สร้างกลุ่ม" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "สร้างบอทใหม่" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "สร้างบทบาทใหม่" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "สร้างบัญชี" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "สร้างหมวดหมู่" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "สร้างช่อง" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "สร้างคำเชิญ" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "รหัสผ่านปัจจุบัน" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "กำหนดสถานะเอง" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "การปรับแต่ง" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "ปิดการได้ยินผู้ใช้อื่น" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "ค่าตั้งต้น" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "ลบ" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "ลบช่อง" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "ลบข้อความ" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "ลบบทบาท" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "ปิดการใช้งานบัญชี" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "ห้ามรบกวน" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "เรียบร้อย" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "แก้ไขตัวตน" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "แก้ไขข้อความ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "อีเมล" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "อีโมจิ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "เปิดใช้แอพยืนยันตัวตน" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "ใส่รหัสผ่านใหม่" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "เข้าช่อง" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "ใส่รหัส" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "กรอกรหัสผ่านปัจจุบันของคุณ" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "กรอกชื่อผู้ใช้ของคุณ" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "ลิงก์ภายนอกอาจเป็นอันตรายต่อคุณ!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "ไม่สามารถยืนยันได้!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "ข้อเสนอแนะ" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "หาชุมชนที่เหมาะสมกับงานอดิเรกหรือความสนใจของคุณ" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "โฟกัส" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "เพื่อน" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "สร้างรหัสกู้คืน" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "กำลังสร้างคำเชิญ…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "กลับไปหน้าเข้าสู่ระบบ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "ไปยังเซิร์ฟเวอร์ผู้ทดสอบ" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "ชื่อกลุ่ม" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "สวัสดี!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "หน้าหลัก" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "ฉันยืนยันว่าฉันอายุอย่างน้อย 18 ปี" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "ไม่อยู่" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "ล่องหน" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "ชวนเพื่อนๆ ของคุณหรือบอทเจ๋งๆ แล้วปาร์ตี้โลด" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "รหัสเชิญ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "เชิญคนอื่น" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "ผู้เชิญ" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "คำเชิญ" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "กระโดดไปข้อความปัจจุบัน" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "กระโดดไปจุดเริ่มต้น" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "เตะ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "เตะสมาชิก" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "เตะสมาชิก" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "ภาษา" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "ล่าสุด" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "ออก" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "ออกจากกลุ่ม" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "ออกจากเซิร์ฟเวอร์" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "อยากให้เราปรับปรุง Revolt ยังไง ก็ส่งข้อเสนอแนะทางนี้ได้เลย" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "ออกจากระบบ" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "ออกจากระบบในเซสชันอื่นๆ ทั้งหมด" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "เข้าสู่ระบบ" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "จัดการการปรับแต่ง" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "จัดการข้อความ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "จัดการชื่อเล่น" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "จัดการสิทธิ์" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "จัดการบทบาท" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "จัดการเซิร์ฟเวอร์" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "จัดการเว็บฮุก" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "ทำเครื่องหมายว่าอ่านแล้ว" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "ทำเครื่องหมายว่ายังไม่ได้อ่าน" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "ใช้นามแฝง" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "สมาชิก" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "กล่าวถึง" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "เฉพาะการกล่าวถึง" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "ข้อความ" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "ข้อความไม่ได้โหลด คลิกที่นี่เพื่อกระโดด" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "ได้รับข้อความ" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "ส่งข้อความ" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "ข้อความถูกส่งจากแพลตฟอร์มอื่น" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "ส่งข้อความ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "ย้ายผู้ใช้อื่น" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "ปิดเสียงผู้ใช้อื่น" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "ปิดการแจ้งเตือน" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "เพื่อนร่วมกัน" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "กลุ่มร่วมกัน" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "บัญชีของฉัน" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "บอทของฉัน" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "รหัสผ่านใหม่" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "ชื่อเล่น" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "ไม่มี" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "การแจ้งเตือน" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "ปิด" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "ช่องทางติดต่ออย่างเป็นทางการ" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "เซิร์ฟเวอร์ทางการ" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "ออฟไลน์" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "ตกลง" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "เก่าสุด" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "เปิด" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "เมื่อลบแล้ว คุณเปลี่ยนใจอีกไม่ได้นะ" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "ออนไลน์" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "เปิดการตั้งค่า" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "ภาพรวม" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "รหัสผ่าน" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "สิทธิ์" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "เลือกชื่อผู้ใช้ของคุณเพื่อให้ผู้อื่นสามารถค้นหาคุณได้ คุณสามารถเปลี่ยนแปลงได้ภายหลังในการตั้งค่า" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "กรุณายืนยันตัวตนด้วยวิธีการที่เลือกไป" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "กรอกอีเมลของคุณ" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "กรุณาเก็บไว้ในที่ปลอดภัย" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "กรุณาสแกนหรือพิมพ์ข้อความโทเคนข้างล่างในแอพยืนยันตัวตนของคุณ" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "กรุณาเลือกวิธีการยืนยันตัวตน" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "นโยบายความเป็นส่วนตัว" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "ประวัติโดยย่อ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "อ่านประวัติข้อความ" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "เหตุผล" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "รหัสกู้คืน" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "สมัครสมาชิก" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "ปฏิเสธคำขอเป็นเพื่อน" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "เกี่ยวข้อง" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "ลบตัวยืนยัน" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "ลบภาพโปรไฟล์" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "ลบเพื่อน" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "ตอบกลับ" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "ตอบกลับถึง" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "รายงาน" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "รายงานข้อความ" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "รายงานเซิร์ฟเวอร์" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "รายงานผู้ใช้" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "ส่งการยืนยันอีกครั้ง" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "รีเซ็ต" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "ตั้งรหัสผ่านใหม่" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "ชื่อบทบาท" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "บทบาท" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "บันทึก" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "บันทึกลงในโน๊ตของคุณ" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "โน้ตที่บันทึกไว้" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "เลือกภาษาของคุณ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "ส่งลิงก์ฝัง" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "ส่งข้อความ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "ส่งไฟล์แนบ" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "ส่งไฟล์แนบหลายไฟล์" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "คำอธิบายเซิร์ฟเวอร์" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "ชื่อเซิร์ฟเวอร์" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "เซสชัน" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "การตั้งค่า" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "ผู้ใช้หลายคนกำลังพิมพ์…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "เสียง" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "ซอร์สโค้ด" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "พูด" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "ส่งข้อเสนอแนะคุณสมบัติ" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "ส่งข้อเสนอแนะ" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "ถ้าอยากสนับสนุนให้ Revolt ก็บริจาคมาได้เลย ขอบคุณนะ!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "ข้อกำหนดในการให้บริการ" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "ช่องข้อความ" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "ธีม" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "นี่คือจุดเริ่มต้นของการสนทนาของคุณ" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "นี่คือจุดเริ่มต้นของโน้ตของคุณ" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "ผู้ใช้นี้บล็อกคุณ" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "หยุดสมาชิกไว้ชั่วคราว" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "ปลดบล็อกผู้ใช้" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "อัพโหลดไฟล์" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "ผู้ใช้" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "ผู้ใช้เข้าร่วมการโทร" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "ผู้ใช้ออกจากการโทร" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "การจัดการผู้ใช้" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "การตั้งค่าผู้ใช้" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "ชื่อผู้ใช้" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "กำลังยืนยันบัญชี…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "ใช้วีดิโอ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "ดูช่อง" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "ดูรายงานบั๊กในปัจจุบันที่นี่" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "ดูอัพเดตเก่า" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "ดูรหัสกู้คืน" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "คุณกำลังดูข้อความเก่า" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "ช่องเสียง" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "เราได้ส่งอีเมล์ยืนยันแล้ว กรุณารออีเมล์ไม่เกิน 10 นาที" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "เว็บฮุก" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "ยินดีต้อนรับสู่" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "ยินดีต้อนรับ!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "นอกจากนี้คุณยังสามารถเปิดหน้าตั้งค่าได้ด้วยการคลิกขวาที่ไอคอนผู้ใช้มุมซ้ายบน หรือคลิกซ้ายหากอยู่หน้าจอหลัก" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "คุณสามารถเปิดใหม่ได้ในภายหลัง แต่ข้อความทั้งหมดของทั้งสองฝ่ายจะหายไป" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "รายงานปัญหาหรือพูดคุยกับพวกเราโดยตรงได้ที่นี่" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "คุณยกเลิกการกระทำนี้ไม่ได้" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "คุณไม่มีสิทธิ์ที่จะส่งข้อความในช่องนี้" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "คุณจะไม่สามารถใช้บัญชีได้จนกว่าคุณจะติดต่อฝ่ายสนับสนุน - อย่างไรก็ตาม ข้อมูลของคุณจะไม่ถูกลบ" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "คุณจะไม่สามารถเข้าร่วมได้อีก เว้นแต่คุณจะได้รับเชิญอีกครั้ง" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "บัญชีของคุณได้รับการยืนยันแล้ว!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "รหัสกู้คืนของคุณ" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/tokipona/messages.po b/packages/client/components/i18n/catalogs/tokipona/messages.po new file mode 100644 index 00000000..10b5fbff --- /dev/null +++ b/packages/client/components/i18n/catalogs/tokipona/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: tokipona\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "sona" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "o pana e ona tawa lipu pi jan pona" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "toki ale" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "selo ilo" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "lipu open" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "sitelen jan" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "sitelen pi suli jan" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "o weka suli e jan" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "o weka suli e jan" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "jan pi weka suli" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "o weka e jan ni tan lukin" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "jan ike" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "jan ike" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "ilo" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "lipu pi ike ilo" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "mi wile ala" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "o weka e wile pi jan pona" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "ante" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "lipu pi poki toki" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "nimi pi poki toki" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "poki toki" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "o lukin e ilo Email sina!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "o weka e toki lili" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "nasin ilo ilo" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "pona" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "pona" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "toki" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "o jo e nanpa pi poki ni lon ilo sama" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "o jo e nanpa ijo lon ilo sama" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "o jo e linja lon ilo sama" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "o jo e nanpa pi toki ni lon ilo sama" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "o jo e nanpa pi ma ni lon ilo sama" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "o jo e sitelen toki lon ilo sama" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "o jo e nanpa pi jan ni lon ilo sama" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "o pali" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "o pali e kulupu sin" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "o pali e jan ilo sin" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "o pali e poki jan" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "o pali e sijelo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "o pali e kulupu pi poki toki" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "o pali e poki toki" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "o pali e nimi kama" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "nimi open pi tenpo ni" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "toki ante pi lon sina" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "jan ale" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "o weka e ni" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "o weka e poki toki" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "o weka e toki" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "o pini e sijelo sina" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "o toki ala" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "o ante e nimi lon ma" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "o ante e toki" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ilo Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "o mu lon ilo ale" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "o pana e nimi open sin." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "ni li pona tawa mi" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "o sitelen e nimi open pi tenpo ni." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "o sitelen e nimi ilo sina." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "nimi nasin li ken tawa lipu ike!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "toki wile" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "o alasa e kulupu pi ijo musi sina." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "kute" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "jan pona" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "mi pali e nimi kama…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "o tawa ilo pi kama sijelo" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "o tawa Testers Server" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "nimi kulupu" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "toki!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "open" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "mi tenpo sike 18." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "weka" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "kon" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "o pana e jan pona e ilo tawa ma, o musi." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "nimi pi kama jan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "jan pali pi nimi ni" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "nimi pi kama jan" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "o tawa tenpo lon" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "o tawa open toki" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "o weka e jan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "o weka e jan" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "toki" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "ijo sin" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "weka" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "o weka tan kulupu" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "o weka tan ma" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "sina wile pona e ilo mi la o toki e pilin sina tawa mi mute." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "o lon sijelo ala" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "o weka e ilo ante" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "o kama sijelo" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "sitelen ni li sin ala" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "jan" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "o kalama tawa jan ni" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "toki taso pi nimi sina" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "o toki tawa jan ni" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "toki li kama" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "sina toki" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "weka tan lukin" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "jan pona pi mi tu" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "kulupu pi mi tu" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "sijelo mi" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "ilo jan mi" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "nimi open sin" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "nimi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "toki ala" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "mu ilo" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "ala" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "lon ala" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "pona" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "ijo majuna" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "lon" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "weka li lon tenpo ale. ona li ken ala lon sin." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "lon" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "o open e nasin" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "ijo suli" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "nimi open" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "ken jan" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "o pali e nimi. jan li ken alasa e sina kepeken nimi ni. sina ken ante e ni lon tenpo kama." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "o sitelen e nimi sina pi ilo Email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "lipu pi lawa pi sona jan" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "lipu jan" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "nimi open mute" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "o pali e sijelo" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "ijo pona" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "o weka e ilo open nanpa tu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "o weka e ona tan lipu pi jan pona" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "o toki tawa ni" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "sina toki lon ni:" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "o pana sin e lipu pi alasa lon" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "o ante e nimi open" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "nimi pi poki jan" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "poki jan" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "o awen e ni" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "o awen lon lipu pi sina taso" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "lipu pi sina taso" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "o kepeken toki sina" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "sitelen" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "sitelen mute" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "lipu ma" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "nimi ma" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "ilo ante lon sijelo" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "nasin ilo" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "jan mute li kama toki…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "mu li tan seme" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "toki ilo pi ilo ni" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "o toki e wile sina" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "sina olin e ilo ni? o pana e mani - pona a!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "lipu pi lawa ilo" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "poki toki sitelen" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "kule selo" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "ni li open pi toki sina." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "ni li open lipu pi sitelen sina taso." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "o ken toki tawa jan ni" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "jan" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "jan li kama lon poki kalama" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "jan li weka lon poki kalama" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "nasin ilo jan" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "nimi ilo" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "lipu ni li toki e sona ni: ilo li pali ike lon kama seme?" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "ni li lon tenpo pini" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "poki toki kalama" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "kama ona li ken kepeken tenpo." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "o kama pona tawa ilo" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "o kama pona!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "sina ken open sin e toki lon tenpo kama. taso ona li weka tawa jan tu." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "sina wile toki lon pakala la o toki tawa mi lon ni." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "sina ken ala toki lon poki toki ni." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "sina wile kama sin lon tenpo kama la sina wile e nimi kama sin." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/tr/messages.po b/packages/client/components/i18n/catalogs/tr/messages.po new file mode 100644 index 00000000..510dd5d0 --- /dev/null +++ b/packages/client/components/i18n/catalogs/tr/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: tr\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 kişi tepki verdi" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Hakkında" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Arkadaş isteğini kabul et" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Arkadaş ekle" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Gelişmiş" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tüm Mesajlar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Bu kullanıcı ile zaten arkadaşsınız." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Görünüm" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Rolleri Ata" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Kimlik Doğrulama Uygulaması" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Profil Resmi" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Rozetler" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Yasakla" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Üyeyi yasakla" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Üyeleri Yasakla" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Yasaklananlar" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Kullanıcıyı engelle" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Engellendi" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Engellenen Kullanıcı" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot‎" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Hata İzleyici" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "İptal et" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Arkadaş isteğini iptal et" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Sunucular silinene veya aktarılana kadar hesap silinemez" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Değiştir" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Avatarı Değiştir" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Kullanıcı Adını Değiştir" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Kanal Açıklaması" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Kanal Adı" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kanallar" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "E-postanı kontrol et!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Özel durumu temizle" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "İstemci Ayarları" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Kapat" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Onayla" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "İşlemi onayla" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Bağlan" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "İçerik bir veya daha fazla yasayı çiğniyor" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Devam et" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Konuşmalar" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Kanal ID'sini kopyala" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "ID'yi Kopyala" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Bağlantıyı kopyala" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Mesaj ID'sini kopyala" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Sunucu ID'sini kopyala" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Metni kopyala" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Kullanıcı ID'sini kopyala" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Oluştur" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Bir grup oluştur" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Yeni bot oluştur" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Yeni bir rol oluştur" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Bir hesap oluştur" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Kategori oluştur" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Kanal oluştur" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Davet oluştur" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Mevcut Şifre" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Özel durum" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Özelleştirme" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Üyeleri Sağırlaştır" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Varsayılan" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Sil" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Kanalı sil" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Mesajı sil" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Rolü sil" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Hesabı devre dışı bırak" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Rahatsız Etmeyin" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Bitti" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Kullanıcı görünümünü düzenle" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Mesajı düzenle" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Kimliğini düzenle" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-posta" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emojiler" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Kimlik doğrulama uygulamasını etkinleştirin" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Masaüstü Bildirimlerini Etkinleştirin" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Yeni bir şifre gir." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Kanala Gir" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Kodu Gir" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Mevcut şifrenizi girin." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Tercih ettiğiniz kullanıcı adınızı girin." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Harici bağlantılar tehlikeli olabilir!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Doğrulanamadı!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Geri Bildirim" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Hobi ya da ilgi alanlarınıza göre bir topluluk bulun." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Odaklanmış" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Arkadaşlar" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Kurtarma Kodu Oluştur" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Davet oluşturuluyor…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Giriş sayfasına geri dönün" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Test edenler sunucusuna git" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Grup Adı" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Merhaba!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Ana Sayfa" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "En az 18 yaşında olduğumu onaylıyorum." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Boşta" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Görünmez" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Tüm arkadaşlarını, havalı botları davet edin ve büyük bir parti verin." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Davet Kodu" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Diğerlerini Davet Et" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Davet Eden" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Davetler" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Günümüze dön" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Başlangıca geri dön" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "At" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Üyeyi at" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Üyeleri At" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Dil" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "En Son" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Ayrıl" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Gruptan ayrıl" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Sunucudan ayrıl" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Bize geri bildirimde bulunarak uygulamamızı nasıl geliştirebileceğimizi bize bildirin." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Çıkış Yap" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Diğer tüm oturumlardan çıkış yapın" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Giriş Yap" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Özelleştirmeyi Yönet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Mesajları Yönet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Kullanıcı Adlarını Yönet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "İzinleri Yönet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Rolleri Yönet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Sunucuyu Yönet" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Webhookları Yönet" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Okundu olarak işaretle" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Okunmadı olarak işaretle" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Kılık değiştirme" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Üyeler" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Bahset" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Sadece Bahsetmeler" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Mesaj" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Mesaj yüklenemedi, görüntülemek için tıklayın" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mesaj Alındı" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mesaj Gönderildi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Mesaj başka bir platformda gönderildi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Mesajlaşma" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Üyeleri Taşı" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Üyeleri Sustur" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Susturuldu" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Ortak Arkadaşlar" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Ortak Gruplar" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Hesabım" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Botlarım" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Yeni Şifre" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Takma Ad" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Hiçbiri" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Bildirimler" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Kapalı" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Resmi İletişim" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Resmi Sunucu" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Çevrim dışı" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Tamam" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "En Eski" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Açık" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Bir kez silindikten sonra geri dönüşü olmayacaktır." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Çevrim içi" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Ayarları aç" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Genel Bakış" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Şifre" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "İzinler" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "İnsanların seni rahatlıkla bulmasını istediğin bir kullanıcı adı seç. Bu daha sonra ayarlarından değiştirilebilir." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Lütfen seçilen yöntemi kullanarak bu eylemi onayla." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Lütfen e-postanızı girin." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Lütfen bunları güvenli bir yere kaydedin." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Lütfen kimlik doğrulama uygulamanda alttaki jetonu tara ya da kullan." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Lütfen isteğinizi doğrulamak için bir yöntem seçin." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Gizlilik Politikası" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Profil" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Mesaj Geçmişini Oku" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Sebep" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Kurtarma Kodu" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Kaydol" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Arkadaş isteğini reddet" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Uygunluk" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Kimlik Doğrulayıcıyı Kaldır" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Profil Resmini Kaldır" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Arkadaşlıktan çıkar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Yanıtla" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Yanıt veriliyor" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Bildir" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Mesajı Bildir" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Sunucuyu Bildir" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Kullanıcıyı Bildir" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Tekrar doğrulama gönder" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Sıfırla" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Şifreni sıfırla" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Tokeni sıfırla" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Rol Adı" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Roller" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Kaydet" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Notlarına kaydet" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Kaydedilen Notlar" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Dilinizi seçin" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Yerleştirmeleri Gönder" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Mesaj Gönder" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Bir ek gönderildi" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Birden fazla ek gönderildi" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Sunucu Açıklaması" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Sunucu Adı" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Oturumlar" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Ayarlar" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Birkaç kişi yazıyor…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Sesler" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Kaynak Kodu" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Konuş" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Özellik tavsiyesi gönder" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Geri bildirim gönder" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Bağış yaparak projeyi destekleyin - teşekkürler!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Kullanım Koşulları" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Metin Kanalı" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Bu, konuşmanızın başlangıcıdır." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Bu, notlarınızın başlangıcıdır." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Bu kullanıcı sizi engelledi." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Zamanaşımı Üyeleri" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Kullanıcının engelini kaldır" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Dosyaları Yükle" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Kullanıcı" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Kullanıcı Aramaya Katıldı" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Kullanıcı Aramadan Ayrıldı" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Kullanıcı Yönetimi" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Kullanıcı Ayarları" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Kullanıcı Adı" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Hesabınız doğrulanıyor…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Kanalı Görüntüle" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Şu anda aktif olan hata raporlarını buradan görüntüleyin." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Eski güncellemelere bakın" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Kurtarma Kodlarına Bak" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Eski mesajları görüntülüyorsun" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Ses Kanalı" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Size bir doğrulama epostası gönderdik. Lütfen gelmesi için 10 dakikaya kadar bekleyin." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Web kancaları" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Hoş geldin" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Hoş geldin!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Ayrıca sol üstteki kullanıcı simgesine sağ tıklayabilirsin veya eğer ana sayfadaysan sol tıklayabilirsin." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Daha sonra tekrar açabilirsin, ancak her iki tarafta da kaybolacaktır." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Sorunları bildirebilir ve gelişmeleri bizimle doğrudan buradan paylaşabilirsin." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Bu eylemi geri alamazsınız." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Bu kanalda mesaj gönderme izniniz yok." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Destek ekibiyle iletişime geçmediğin sürece hesabına erişemezsin - fakat verilerin silinmez." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Yeniden davet edilmediğin sürece tekrar katılamazsın." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Hesabınız doğrulandı!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Kurtarma kodların" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/uk/messages.po b/packages/client/components/i18n/catalogs/uk/messages.po new file mode 100644 index 00000000..7d46e637 --- /dev/null +++ b/packages/client/components/i18n/catalogs/uk/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: uk\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 людина відреагувала" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Про нас" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Прийняти запит на дружбу" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Додати до друзів" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Розширені" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Всі повідомлення" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Ви вже дружите з цим користувачем." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Вигляд" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Призначення ролей" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Застосунок для аутентифікації" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Аватар" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Значки" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Бан" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Забанити учасника" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Банити учасників" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Бани" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Заблокувати користувача" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Заблокований" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Заблокований користувач" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Бот" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Баг трекер" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Відмінити" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Скасувати запит на дружбу" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Неможливо видалити акаунт, доки ваші сервери не будуть видалені або перенесені" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Змінити" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Зміна аватара" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Зміна нікнейму" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Опис каналу" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Назва каналу" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Канали" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Перевірте свою електронну пошту!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Очистити статус" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Налаштування клієнта" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Закрити" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Підтвердити" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Підтвердити дію" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Підключатися" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Вміст порушує один або декілька законів" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Продовжити" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Розмови" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Скопіювати ID каналу" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Скопіювати ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Скопіювати посилання" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Скопіювати ID повідомлення" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Скопіювати ID сервера" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Скопіювати текст" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Скопіювати ID користувача" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Створити" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Створити групу" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Створити нового бота" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Створити нову роль" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Створити акаунт" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Створити категорію" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Створити канал" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Створити запрошення" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Дійсний пароль" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Свій статус" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Кастомізація" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Відключення звуку учасникам" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "За замовчуванням" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Видалити" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Видалити канал" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Видалити повідомлення" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Видалити роль" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Відключити акаунт" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Не турбувати" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Готово" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Змінити особистість" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Змінити повідомлення" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Змінити свою особистість" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Електронна адреса" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Емодзі" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Увімкнути додаток для аутентифікації" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Увімкнути сповіщення на робочому столі" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Введіть новий пароль." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Увійти в канал" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Уведіть код" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Введіть свій поточний пароль." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Введіть бажане ім'я користувача." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Зовнішні посилання можуть бути небезпечними!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Не вдалося перевірити!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Зворотній зв'язок" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Знайдіть спільноту за вашими хобі та інтересами." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Зосереджений" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Друзі" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Згенерувати коди відновлення" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Створення запрошення…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Повернутися до входу" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Перейти до сервера тестувальників" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Назва групи" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Привіт!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Домашня сторінка" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Я підтверджую, що мені 18 років або більше." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Відійшов" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Невидимий" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Запросіть всіх своїх друзів, декілька крутих ботів, та влаштуйте велику вечірку." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Код запрошення" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Створення запрошень" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Запросив" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Запрошення" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Перейти в кінець" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Перейти до початку" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Вигнати" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Вигнати учасника" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Виганяти учасників" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Мова" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Останні" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Вийти" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Покинути групу" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Покинути сервер" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Повідомте нам, як ми можемо покращити наш додаток залишивши відгук." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Вийти" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Вийти зі всіх інших сесій" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Увійти" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Керування кастомізацією" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Керування повідомленнями" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Керування нікнеймами" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Редагувати дозволи" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Керування ролями" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Керування сервером" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Керування вебхуками" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Відзначити як прочитане" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Позначити як непрочитане" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Маскарад" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Учасники" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Згадати" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Тільки згадування" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Повідомлення" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Повідомлення не завантажено, натисніть, щоб перейти" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Повідомлення отримано" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Повідомлення відправлено" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Повідомлення було надіслано на іншій платформі" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Листування" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Переміщення учасників" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Вимкнення мікрофона учасникам" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Заглушений" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Спільні друзі" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Спільні групи" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Мій акаунт" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Мої боти" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Новий пароль" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Нікнейм" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Нічого" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Сповіщення" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Вимкнуте" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Офіційне повідомлення" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Офіційний сервер" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Не в мережі" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "Ок" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Старі" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ввімкнене" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Після видалення назад шляху не буде." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "В мережі" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Відкрити налаштування" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Огляд" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Пароль" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Дозволи" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Оберіть ім'я, з яким вас зможуть знаходити інші. Пізніше воно може бути змінене в ваших налаштуваннях." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Будь ласка, підтвердьте цю дію вибраним методом." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Введіть вашу електронну адресу." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Будь ласка, збережіть їх в надійному місці." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Будь ласка, проскануйте або використайте код нижче в програмі для аутентифікації." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Будь ласка, виберіть спосіб аутентифікації вашого запиту." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Політика конфіденційності" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Профіль" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Читати історію повідомлень" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Причина" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Код відновлення" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Зареєструватися" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Відхилити запит на дружбу" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Актуальні" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Видалити аутентифікатор" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Видалення аватарів" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Видалити з друзів" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Відповісти" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Відповідь для" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Поскаржитися" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Поскаржитись на повідомлення" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Поскаржитись на сервер" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Поскаржитись на користувача" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Надіслати підтвердження знову" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Скинути" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Відновити пароль" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Скинути Токен" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Назва ролі" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Ролі" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Зберегти" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Зберегти до нотаток" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Нотатки" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Оберіть вашу мову" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Надсилання ембедів" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Відправлення повідомлень" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Надіслав вкладення" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Надіслав декілька вкладень" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Опис сервера" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Назва сервера" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Сесії" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Налаштування" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Декілька людей пишуть…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Звуки" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Вихідний код" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Говорити" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Надіслати запропоновані функції" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Надіслати відгук" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Підтримайте проєкт пожертвуванням - дякуємо!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Умови надання послуг" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Текстовий канал" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Тема" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Це початок вашої розмови." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Це початок ваших нотаток." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Цей користувач заблокував вас." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Усунення учасників" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Розблокувати користувача" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Завантажувати файли" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Користувач" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Користувач під'єднався до виклику" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Користувач залишив виклик" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Керування користувачами" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Налаштування користувача" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Ім'я користувача" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Перевірка вашого акаунту…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Відео" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Переглядати канал" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Переглянути дійсні звіти про помилки тут." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Попередні оновлення" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Переглянути коди відновлення" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Перегляд старих повідомлень" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Голосовий канал" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Ми надіслали вам лист для верифікації. Будь ласка, зачекайте до 10 хвилин для його отримання." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Вебхуки" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Ласкаво просимо до" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Ласкаво просимо!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Також ви можете натиснути правою кнопкою миші по іконці користувача в верхньому лівому куті, або настинути лівою кнопкою миші, якщо ви на домашній сторінці." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Ви зможете знову відкрити його пізніше, але він зникне з обох сторін." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Ви можете повідомляти про помилки та обговорювати нововведення з нами прямо тут." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Ви не можете скасувати цю дію." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "У вас відсутній дозвіл на надсилання повідомлень у цьому каналі." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Ви не матимете доступу до вашого акаунту, доки ви не зв'яжетесь з підтримкою - інакше, ваш акаунт буде видалено." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Ви не зможете під'єднатися ще раз, поки не отримаєте нове запрошення." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ваш акаунт перевірено!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Ваші коди відновлення" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/ur/messages.po b/packages/client/components/i18n/catalogs/ur/messages.po new file mode 100644 index 00000000..cda6e8b8 --- /dev/null +++ b/packages/client/components/i18n/catalogs/ur/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ur\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "بارے میں" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "تصدیق کنندہ ایپ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "مسدود صارف" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "بوٹ" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "چینلز" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "اپنا میل چیک کریں!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "بات چیت" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "کھاتا کھولیں" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "موجودہ خفیہ لفظ" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "پریشان نہ کرو" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "ای میل" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "نیا پاسورڈ درج کریں." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "چینل داخل کریں۔" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "اپنا موجودہ پاس ورڈ درج کریں." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "اپنے یوزر نام کا اندراج کرو." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "توثیق کرنے میں ناکام!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "اپنے مشاغل یا دلچسپیوں پر مبنی کمیونٹی تلاش کریں۔" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "فوکس" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "دوستو" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "لاگ ان پر واپس جائیں۔" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "ٹیسٹرز سرور پر جائیں۔" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "ہیلو!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "گھر" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "میں تصدیق کرتا ہوں کہ میری عمر کم از کم 18 سال ہے۔" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "بیکار" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "غیر مرئی" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "اپنے تمام دوستوں کو مدعو کریں، کچھ ٹھنڈے بوٹس، اور ایک بڑی پارٹی دیں۔" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "پیش کرنے کے لیے چھلانگ لگائیں۔" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "شروع پر جائیں" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "سرور چھوڑنا" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "ہمیں رائے دے کر ہمیں بتائیں کہ ہم اپنی ایپ کو کیسے بہتر بنا سکتے ہیں۔" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "لاگ ان کریں" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "پیغام لوڈ نہیں ہوا، چھلانگ لگانے کے لیے کلک کریں۔" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "نیا پاس ورڈ" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "ختم" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "آف لائن" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "شروع" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "آن لائن" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "ترتیبات کھولیں۔" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "پاس ورڈ" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "براہ کرم اپنا ای میل درج کریں۔" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "رازداری کی پالیسی" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "ریکوری کوڈ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "رجسٹر کریں" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "دوست ہٹانا" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "کا جواب دے رہا ہے۔" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "تصدیق دوبارہ بھیجیں" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "پاس ورڈ ری سیٹ" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "اپنے نوٹوں میں محفوظ کریں۔" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "محفوظ شدہ نوٹس" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "ایک اٹیچمنٹ بھیجی۔" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "متعدد منسلکات بھیجے۔" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "کئی لوگ ٹائپ کر رہے ہیں…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "عطیہ کرکے پروجیکٹ کی حمایت کریں - آپ کا شکریہ!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "خدمت کی شرائط" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "یہ آپ کی گفتگو کا آغاز ہے۔" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "یہ آپ کے نوٹوں کا آغاز ہے۔" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "صارف نام" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "آپ کے اکاؤنٹ کی تصدیق ہو رہی ہے…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "پرانے پیغامات دیکھنا" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "براہ کرم اسے پہنچنے کے لیے 10 منٹ تک کا وقت دیں۔" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "خوش آمدید!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "آپ اوپر بائیں جانب صارف کے آئیکون پر بھی دائیں کلک کر سکتے ہیں، یا اگر آپ پہلے سے ہی گھر پر ہیں تو بائیں طرف کلک کر سکتے ہیں۔" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "آپ یہاں براہ راست ہمارے ساتھ مسائل کی اطلاع دے سکتے ہیں اور بہتری پر بات کر سکتے ہیں۔" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "آپ کو اس چینل میں پیغامات بھیجنے کی اجازت نہیں ہے۔" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "آپ کے اکاؤنٹ کی تصدیق ہو گئی ہے!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/vec/messages.po b/packages/client/components/i18n/catalogs/vec/messages.po new file mode 100644 index 00000000..08ad82c4 --- /dev/null +++ b/packages/client/components/i18n/catalogs/vec/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: vec\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "Na parsona gà reazìo" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Sora" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tuti Mesàji" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Aparénsa" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Aplicasion d'Autenticasion" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Insénje" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Banir Menbri" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Utensa Blocada" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "robó" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Canbiar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Canbiar Avatar" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Canbiar Soranome" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Canai" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Verifica el to mail!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Inpostasioni de Cliente" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Conetar" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Conversasion" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Crear un grupo" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Crea na conta" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Ciave atual" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Sordir Menbri" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Dezativar Conta" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Disturbar Mia" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "E-mail" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Ativar Notìfeghe ntel Desktop." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Inseri na nova ciave." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Intrar ntel Canal" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Inseri ła to ciave atual." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Inseri el to nome utensa." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Verifegasion fałista!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Opinion" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Cata na comunità con tui hobbies o interessi." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Metìo a fogo" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Amighi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Zenerar Còdisi de Recupero" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Tornar al login" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Ndar al servidor dei testadori" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Nome del Grupo" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Ciao!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Pàjina Prinsipal" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Mi confermo de aver a'ł meno 18 ani de età." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Aosente" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Invisìbile" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Convida tuti i to amighi, arquanti boni bot e comemora." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Invidar Altre Parsone" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Ndar al presente" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Ndar al scomìnsio" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Spulsar Menbri" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Łéngua" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Pì Resente" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Fane saver cofà podemo sviłupar mèio ła nostra app con feedbacks." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Usir" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Usir de tute łe sesioni" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Asede" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Aministrar Mesàji" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Aministrar Soranomi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Aministrar Permisioni" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Aministrar Roli" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Aministrar Webhooks" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Mascarà" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Soło Sitasioni" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "El mesàjo no ze stà cargà, clica par saltar" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Mesàjo Recevùo" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Mesàjo Invià" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "El mesàjo ze stà invià da nantra piataforma" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Mover Menbri" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Siłensiar Menbri" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Siłensià" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Me Conta" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "I Me Bots" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Nova Ciave" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Soranome" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Njente" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Notìfeghe" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Desativà" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Comunicasion Ufisiałe" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Servidor Ofisiàl" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Offline" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Pì Antìgo" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Ativà" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Online" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Vardar inpostasioni" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Ciave" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Inseri el to email." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Połìtega de Reservadesa" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Léxar Istòrego de Mesàji" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Còdise de Recupero" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Registrate" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Inportansa" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Remóver Autenticador" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Remover Avatari" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Drio rispondar a" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Rinviar ła verifegasion" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Resetar ła ciave" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Salva ntele to note" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Note Salve" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Scièlde ła to łéngua" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Inviar Enbeds" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Inviar Mesàji" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Ga invià un anesso" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Ga invià tanti anesi" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Descrision del Servidor" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Sesioni" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Inpostasioni" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Tanti parsoni i xe drio digitar…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Soni" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Còdise Sorgente" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Parlar" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Inviar opinion" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Te juti el projeto donando - gràsie miłe!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Tèrmini de Servìsio" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Canal de Testo" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Tema" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Sto ze 'l scomìnsio deła to conversasion." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Sto ze 'l scomìnsio dełe to note." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Inviar Archivi" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Utensa se gà Zontada ała Ciamada" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Utensa gà Ussìa deła Ciamada" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Inpostasioni de Utensa" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Nome utensa" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Drio verifegar to conta…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Vìdeo" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Védar Canal" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Védar Còdisi de Recupero" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Drio védar mesàji antìghi" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Canal de Vóxe" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Te speti fin a 10 menuti par l'arivo del e-mail." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Benvenjùo(a)!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Anca te pol far un click destro ntel ìcone de utensa nte l'àngolo sanco, o far un click sanco se te si a caza." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Te pol reportar probleme e discutir sora meioranse co nantri quà." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Ti no te ghè parmeso d'inviar mesàji in sto canal." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Ła to conta ła ze stada verifegada!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/vi/messages.po b/packages/client/components/i18n/catalogs/vi/messages.po new file mode 100644 index 00000000..249201cd --- /dev/null +++ b/packages/client/components/i18n/catalogs/vi/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: vi\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 người đã bày tỏ cảm xúc" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "Giới thiệu" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "Chấp nhận kết bạn" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "Thêm bạn" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "Nâng cao" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "Tất cả tin nhắn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "Đã kết bạn với người dùng này." + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "Giao Diện" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "Thêm Vai Trò" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "Ứng Dụng Xác Thực" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "Ảnh đại diện" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "Huy hiệu" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "Cấm" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "Cấm thành viên" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "Cấm Thành Viên" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "Cấm" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "Chặn người dùng" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "Bị chặn" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "Người Dùng Bị Chặn" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "Bot" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "Trình theo dõi lỗi" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "Hủy bỏ" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "Hủy yêu cầu kết bạn" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "Không thể xóa tài khoản được cho đến khi các máy chủ của bạn đã bí xóa hay được chuyển quyền sỡ hữu" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "Đổi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "Thay đổi ảnh đại diện" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "Thay đổi biệt danh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "Mô Tả Kênh" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "Tên của kênh" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "Kênh" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "Kiểm tra hòm thư của bạn!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "Xóa trạng thái" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "Cài Đặt Ứng Dụng" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "Đóng" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "Xác nhận" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "Xác nhận hành động" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "Kết Nối" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "Nội dung vi phạm một hoặc nhiều luật" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "Tiếp tục" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "Cuộc Trò chuyện" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "Sao chép ID kênh" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "Sao chép ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "Sao chép liên kết" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "Sao chép ID tin nhắn" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "Sao chép ID máy chủ" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "Sao chép văn bản" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "Sao chép ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "Tạo" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "Tạo nhóm" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "Tạo một Bot mới" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "Tạo một vai trò mới" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "Tạo tài khoản mới" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "Tạo danh mục" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "Tạo kênh" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "Tạo lời mời" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "Mật Khẩu Hiện Tại" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "Trạng thái tùy chỉnh" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "Tuỳ biến" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "Tắt Nghe Thành Viên" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "Mặc định" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "Xóa" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "Xóa kênh" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "Xóa tin nhắn" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "Xóa vai trò" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "Vô Hiệu Hoá Tài Khoản" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "Không Làm Phiền" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "Đã xong" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "Chỉnh sửa danh tính" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "Chỉnh sửa tin nhắn" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "Sửa đổi thông tin cá nhân của bạn" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "Email" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "Emoji" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "Dùng ứng dụng xác thực" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "Bật Thông Báo Trên Màn Hình" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "Nhập mật khẩu mới." + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "Vào kênh" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "Nhập Mã" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "Nhập mật khẩu hiện tại của bạn." + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "Nhập tên người dùng của bạn." + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "Liên kết bên ngoài có thể rất nguy hiểm!!!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "Xác minh thất bại!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "Phản Hồi" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "Tìm cộng đồng dựa trên sở thích của bạn." + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "Tập trung" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "Bạn Bè" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "Tạo Mã Khôi Phục" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "Tạo lời mời…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "Quay lại trang đăng nhập" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "Đi đến máy chủ thử nghiệm" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "Tên nhóm" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "Chào bạn!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "Trang Chủ" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "Tôi xác nhận rằng tôi đã đủ 18 tuổi." + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "Bận" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "Vô Hình" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "Mời tất cả các bạn của bạn, những bot thật ngầu và bày bữa tiệc lớn." + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "Mã Dùng Để Mời" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "Mời Người Khác" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "Người Mời" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "Lời Mời" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "Nhảy đến hiện tại" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "Nhảy đến đầu hội thoại" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "Đuổi" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "Đuổi thành viên" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "Đuổi Thành Viên" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "Ngôn Ngữ" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "Mới nhất" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "Rời khỏi" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "Rời nhóm" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "Rời máy chủ" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "Giúp chúng tôi cải tiến bằng cách gửi phản hồi." + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "Đăng Xuất" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "Thoát ra khỏi mọi phiên khác" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "Đăng Nhập" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "Quản Lý Tuỳ Biến" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "Quản Lí Tin Nhắn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "Quản lý biệt danh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "Quản Lí Quyền" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "Quản Lí Vai Trò" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "Quản Lí Máy Chủ" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "Điều Hành Webhook" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "Đánh dấu đã đọc" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "Đánh dấu là chưa đọc" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "Hóa Trang" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "Thành Viên" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "Đề cập" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "Chỉ đề cập" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "Nhắn tin" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "Tin nhắn chưa được tải, ấn để nhảy đến tin nhắn" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "Tin Nhắn Đã Nhận" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "Tin Nhắn Đã Gửi" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "Tin nhắn được gửi trên nền tảng khác" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "Nhắn tin" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "Di Chuyển Thành Viên" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "Tắt Âm Thành Viên" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "Đã bị tắt tiếng" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "Bạn Chung" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "Nhóm Chung" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "Tài Khoản Của Tôi" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "Bot Của Tôi" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "Mật Khẩu Mới" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "Biệt danh" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "Không có" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "Thông Báo" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "Tắt" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "Cổng liên lạc chính thức" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "Máy Chủ Chính Thức" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "Ngoại Tuyến" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "OK" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "Cũ nhất" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "Bật" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "Một khi nó đã bị xoá, không thể khôi phục lại." + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "Trực Tuyến" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "Mở cài đặt" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "Xem Trước" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "Mật Khẩu" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "Quyền" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "Chọn tên người dùng mà bạn muốn mọi người có thể nhận ra. Bạn có thể thay đổi cài đặt này sau trong phần cài đặt người dùng." + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "Hãy xác nhận hành động này bằng cách sử dụng các phương thức sau." + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "Vui lòng nhập địa chỉ email của bạn." + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "Hãy lưu chúng ở nơi an toàn." + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "Vui lòng quét hoặc dùng token sau trong ứng dụng xác thực của bạn." + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "Hãy chọn một phương thức để xác thực yêu cầu của bạn." + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "Chính sách Bảo mật" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "Hồ Sơ" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "Đọc lịch sử tin nhắn" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "Lý do" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "Mã Khôi Phục" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "Đăng Ký" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "Từ chối kết bạn" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "Liên quan" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "Bỏ Lớp Xác Thực" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "Xoá ảnh đại diện" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "Bỏ bạn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "Trả lời" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "Đang phản hồi" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "Báo cáo" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "Báo cáo tin nhắn" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "Báo cáo server" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "Báo cáo người dùng" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "Gửi lại yêu cầu xác nhận" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "Đặt lại" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "Đặt lại mật khẩu" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "Đặt lại token" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "Tên Vai Trò" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "Vai trò" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "Lưu" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "Lưu vào ghi chú của bạn" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "Ghi chú đã lưu" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "Chọn ngôn ngữ của bạn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "Gửi embed" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "Gửi Tin Nhắn" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "Đã gửi tệp đính kèm" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "Đã gửi nhiều tệp đính kèm" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "Mô tả máy chủ" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "Tên Máy Chủ" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "Các phiên đăng nhập" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "Cài đặt" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "Nhiều người đang nhắn…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "Âm thanh" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "Mã Nguồn Mở" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "Nói" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "Góp ý tính năng" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "Góp ý phản hồi" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "Ủng hộ dự án bằng cách quyên góp - cảm ơn bạn!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "Điều khoản Dịch vụ" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "Kênh văn bản" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "Chủ đề" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "Đây là khởi đầu của cuộc trò chuyện này." + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "Đây là khởi đầu của phần ghi chú của bạn." + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "Người dùng này đã chặn bạn." + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "Timeout Thành Viên" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "Bỏ chặn người dùng" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "Tải Lên Tệp" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "Người Dùng" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "Người Dùng Tham Gia Cuộc Gọi" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "Người Dùng Rời Cuộc Gọi" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "Quản lý người dùng" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "Cài đặt người dùng" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "Tên Người Dùng" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "Đang xác minh tài khoản của bạn…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "Video" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "Xem Kênh" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "Xem các báo cáo về lỗi hiện đang hoạt động tại đây." + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "Xem các cập nhật cũ hơn" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "Xem Mã Khôi Phục" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "Đang xem các tin nhắn cũ" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "Kênh thoại" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "Chúng tôi đã gửi cho bạn email xác nhận. Hãy chờ tối đa 10 phút để mail được chuyển đến." + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhook" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "Chào mừng đến với" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "Chào mừng!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "Bạn cũng có thể nhấp chuột phải vào biểu tượng người dùng ở trên cùng góc trái, hoặc nhấp chuột trái vào biểu tượng nếu bạn ở trang chủ." + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "Bạn có thể mở lại sau, nhưng cuộc trò chuyện sẽ biến mất ở cả hai bên người dùng." + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "Bạn có thể báo cáo vấn đề và trao đổi về những cải tiến trực tiếp với chúng tôi tại đây." + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "Bạn không thể hoàn tác hành động này." + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "Bạn không có quyền để gửi tin nhắn trong kênh này." + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "Bạn sẽ không thể truy cập tài khoản của bạn trừ khi bạn liên lạc bên hỗ trợ - dù vậy, dữ liệu của bạn sẽ không bị xóa." + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "Bạn sẽ không thể tham gia trừ khi được mời lại." + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "Tài khoản của bạn đã được xác minh!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "Mã khôi phục của bạn" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/zh_Hans/messages.po b/packages/client/components/i18n/catalogs/zh_Hans/messages.po new file mode 100644 index 00000000..613d099c --- /dev/null +++ b/packages/client/components/i18n/catalogs/zh_Hans/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: zh_Hans\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 人反应了" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "关于" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "接受好友请求" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "添加好友" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "高级" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "所有消息" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "已经与此用户成为好友。" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "外观" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "分配角色" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "身份验证器应用" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "头像" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "徽章" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "封禁" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "封禁成员" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "封禁成员" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "封禁" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "屏蔽用户" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "已屏蔽" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "已屏蔽用户" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "机器人" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "漏洞追踪" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "取消" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "取消好友请求" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "在服务器被删除或转移之前无法删除账户" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "更改" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "更改头像" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "更改昵称" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "频道简介" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "频道名称" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "频道" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "请检查您的邮件!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "清除状态" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "客户端设置" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "关闭" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "确认" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "确认操作" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "连接" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "内容违反一条或多条规则" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "继续" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "对话" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "复制频道 ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "复制 ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "复制链接" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "复制消息 ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "复制服务器 ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "复制文本" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "复制用户 ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "创建" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "创建一个群组" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "创建新机器人" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "创建新角色" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "创建账户" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "创建类别" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "创建频道" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "创建邀请" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "当前密码" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "自定义状态" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "自定义" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "隔音成员" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "默认" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "删除" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "删除频道" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "删除消息" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "删除角色" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "禁用账户" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "勿扰" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "完成" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "编辑身份" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "编辑消息" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "编辑您的身份" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "电子邮件地址" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "表情" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "启用身份验证器应用" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "启用桌面通知" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "输入新密码。" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "进入频道" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "输入代码" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "输入您当前的密码。" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "输入您希望的用户名。" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "外部链接可能有危险!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "验证失败!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "反馈" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "根据您的爱好和兴趣寻找社区。" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "专注" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "好友" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "生成恢复代码" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "正在生成邀请…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "返回登录页面" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "前往测试服务器" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "群组名" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "您好!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "主页" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "我确定我已成年。" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "离开" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "隐身" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "邀请所有朋友,设置好玩的机器人或者举办线上聚会。" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "邀请码" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "邀请成员" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "邀请人" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "邀请" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "跳转到现在" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "跳转到最早" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "踢出" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "踢出成员" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "踢出成员" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "语言" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "最新" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "离开" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "离开群组" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "离开服务器" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "发送反馈让我们知道怎样改进此应用。" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "登出" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "登出其他所有会话" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "登录" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "管理自定义" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "管理消息" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "管理昵称" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "管理权限" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "管理角色" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "管理服务器" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "管理 Webhook" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "标记为已读" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "标记为未读" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "伪装身份" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "成员" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "提及" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "仅提及我的" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "消息" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "消息未加载,点击跳转" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "收到消息" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "发出消息" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "消息来自其他平台" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "消息" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "移动成员" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "禁言成员" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "静音" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "共同好友" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "共同群组" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "我的账户" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "我的机器人" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "新密码" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "昵称" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "不通知" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "通知" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "关" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "官方通讯" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "官方服务器" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "离线" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "确定" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "最旧" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "开" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "删除后,将无法恢复。" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "在线" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "打开设置" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "概况" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "密码" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "权限" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "选择一个用户名,让人们能够找到您。您之后也可以在用户设置中修改。" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "请使用已选择的方式确认此操作。" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "请输入您的电子邮件地址。" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "请将它们保存在安全的位置。" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "请在身份验证器应用内扫码或填写下列令牌代码。" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "请选择一种方式验证您的请求。" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "隐私政策" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "个人资料" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "阅读消息历史" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "原因" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "恢复代码" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "注册" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "拒绝好友请求" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "相关性" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "移除身份验证器" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "移除头像" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "删除好友" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "回复" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "回复至" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "举报" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "举报消息" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "举报服务器" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "举报用户" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "重新发送验证码" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "重置" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "重置密码" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "角色名称" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "角色" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "保存" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "保存至笔记" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "保存的笔记" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "选择语言" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "发送嵌入内容" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "发送消息" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "发送附件" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "发送多个附件" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "服务器简介" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "服务器名称" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "登录会话" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "设置" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "多人正在输入…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "声音" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "源代码" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "发言" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "提交功能建议" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "提交反馈" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "捐赠以支持此项目——谢谢!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "服务条款" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "文本频道" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "主题" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "这里是您对话的开始。" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "这里是您笔记的开始。" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "此用户已屏蔽您。" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "静默成员" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "取消屏蔽用户" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "上传文件" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "用户" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "用户加入语音" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "用户离开语音" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "用户管理" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "用户设置" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "用户名" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "验证您的账户…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "视频" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "查看频道" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "在此处查看当前活跃的错误报告。" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "查看以前的更新" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "查看恢复代码" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "正在查看以前的消息" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "语音频道" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "我们已向您发送验证邮件。请等待邮件送达,最长可能需要 10 分钟。" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhook" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "欢迎使用" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "欢迎!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "您也可以右键点击左上角的用户图标,或者在主页时直接左键点击。" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "这也会为对方删除此对话,但您可以稍后再重新打开。" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "您可以在此处直接报告问题和讨论建议。" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "您无法撤销此操作。" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "您没有权限在此频道发送消息。" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "除非您联系技术支持人员,否则就无法访问您的账户——但您的数据不会被删除。" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "除非重新接受邀请,否则您将无法重新加入。" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "您的账户已验证!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "您的恢复代码" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/catalogs/zh_Hant/messages.po b/packages/client/components/i18n/catalogs/zh_Hant/messages.po new file mode 100644 index 00000000..e719dde1 --- /dev/null +++ b/packages/client/components/i18n/catalogs/zh_Hant/messages.po @@ -0,0 +1,3143 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2025-09-29 18:29-0500\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: zh_Hant\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Yesterday at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Today at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Tomorrow at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "[Last] dddd [at] LT" +msgstr "" + +#. js-lingui-explicit-id +#: components/i18n/dayjs.tsx +msgid "dddd [at] LT" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "(changes are being saved…)" +msgstr "" + +#. placeholder {0}: props.count +#: components/ui/components/features/messaging/elements/BlockedMessage.tsx +msgid "{0, plural, one {# blocked message} other {# blocked messages}}" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#~ msgid "{0, plural, one {# Member} other {# Members}}" +#~ msgstr "" + +#. placeholder {0}: items().length +#: components/ui/components/utils/files/FileDropAnywhereCollector.tsx +msgid "{0, plural, one {Drop a file} other {Drop # files}}" +msgstr "" + +#. placeholder {0}: users() .slice(0, -1) .map((user) => user!.username) .join(", ") +#. placeholder {1}: users().slice(-1)[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} and {1} are typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel description" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelEditSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} changed the channel icon" +msgstr "" + +#. placeholder {0}: CONFIGURATION.MAX_EMOJI - props.server.emojis.length +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "{0} emoji slots remaining" +msgstr "" + +#. placeholder {0}: rejectedFiles.length +#: src/interface/channels/text/Composition.tsx +msgid "{0} files exceed the maximum size limit of {maxSizeFormatted} and were not uploaded." +msgstr "" + +#. placeholder {0}: users()[0]!.username +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "{0} is typing…" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} joined" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} left" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).from?.username +#. placeholder {1}: (message.systemMessage as ChannelOwnershipChangeSystemMessage).to?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} made {1} the new group owner" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} pinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as ChannelRenamedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} renamed the channel" +msgstr "" + +#. placeholder {0}: (message.systemMessage as MessagePinnedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} unpinned a message" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was added by {1}" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was banned" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserSystemMessage).user?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was kicked" +msgstr "" + +#. placeholder {0}: (message.systemMessage as UserModeratedSystemMessage).user?.username +#. placeholder {1}: (message.systemMessage as UserModeratedSystemMessage).by?.username +#: components/client/NotificationsWorker.tsx +msgid "{0} was removed by {1}" +msgstr "" + +#. placeholder {0}: page() * itemsPerPage() + 1 +#. placeholder {1}: Math.min( props.itemCount!, page() * itemsPerPage() + itemsPerPage(), ) +#. placeholder {2}: props.itemCount +#: components/ui/components/design/DataTable.tsx +msgid "{0}-{1} of {2}" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "{0}'s roles" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{unknown} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} and {unknown} others reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "{usernames} reacted" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been added by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been banned from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been kicked from the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> has been removed by <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> joined the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the group" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> left the server" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> pinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> started a call that lasted " +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> transferred group ownership to <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> unpinned <1/>" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group description" +msgstr "" + +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group icon " +msgstr "" + +#. placeholder {0}: (props.systemMessage as ChannelRenamedSystemMessage).name +#: components/ui/components/features/messaging/elements/SystemMessage.tsx +msgid "<0/> updated the group name to <1>{0}" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "<0>Be careful!<1/>This is not the same as the link that was displayed:" +msgstr "" + +#: components/ui/components/features/messaging/elements/Reactions.tsx +msgid "1 person reacted" +msgstr "1 人做出反應" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "12 hours" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "24 hours" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access channels on this server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to access this channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Able to speak in voice call" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "About" +msgstr "關於我們" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Accept" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Accept friend request" +msgstr "同意好友邀請" + +#: components/modal/modals/PolicyChange.tsx +msgid "Acknowledge" +msgstr "" + +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddBot.tsx +msgid "Add" +msgstr "" + +#: src/interface/Friends.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Add a new friend" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Add friend" +msgstr "新增好友" + +#: src/interface/channels/ChannelHeader.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Add friends to group" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Add new members to the group" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Add status text" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Admin" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Admin Panel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Advanced" +msgstr "進階" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Affects all roles and users" +msgstr "" + +#: src/interface/Friends.tsx +msgid "All" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "All Messages" +msgstr "所有訊息" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Allow members to change name and avatar per-message" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Allow others to add your bot to their servers from Discover" +msgstr "" + +#: components/i18n/errors.ts +msgid "Already friends with this user." +msgstr "已經與此使用者成為好友。" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "American (MM/DD/YYYY)" +msgstr "" + +#: components/modal/modals/Error2.tsx +msgid "An error occurred." +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "An internal error occurred. ({0})" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Appearance" +msgstr "外觀" + +#: components/modal/modals/SignOutSessions.tsx +msgid "Are you sure you want to clear your sessions?" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +msgid "Are you sure you want to delete this?" +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +msgid "Are you sure you want to go to " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Are you sure you want to go to <0>{0}?" +#~ msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign lower-ranked roles to lower-ranking members" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Assign Roles" +msgstr "分配身份組" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Authenticator App" +msgstr "二步驟驗證程式" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Avatar" +msgstr "頭像" + +#: src/interface/channels/AgeGate.tsx +#: src/interface/channels/AgeGate.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowCreate.tsx +#: components/auth/src/flows/FlowCheck.tsx +msgid "Back" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Badges" +msgstr "徽章" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "Ban" +msgstr "封鎖" + +#: components/modal/modals/ReportContent.tsx +msgid "Ban evasion" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban member" +msgstr "封鎖成員" + +#: components/modal/modals/BanMember.tsx +msgid "Ban Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Ban Members" +msgstr "封鎖成員" + +#: components/app/menus/UserContextMenu.tsx +msgid "Ban user" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +msgid "Ban User" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Banner" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Bans" +msgstr "封鎖" + +#: components/app/menus/UserContextMenu.tsx +msgid "Block user" +msgstr "封鎖使用者" + +#: src/interface/Friends.tsx +msgid "Blocked" +msgstr "已封鎖" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Blocked User" +msgstr "封鎖的使用者" + +#: components/app/interface/channels/text/Message.tsx +msgid "Bot" +msgstr "機器人" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Echo Cancellation" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Browser Noise Supression" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Bug Tracker" +msgstr "追蹤錯誤" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Busy" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "By creating this bot, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "By creating this server, you agree to the <0>Acceptable Use Policy." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/ReportContent.tsx +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/KickMember.tsx +#: components/modal/modals/Invite.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/modal/modals/AddBot.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Cancel" +msgstr "取消" + +#: components/app/menus/UserContextMenu.tsx +msgid "Cancel friend request" +msgstr "取消好友邀請" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Cancel message" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Cannot delete account until servers are deleted or transferred" +msgstr "在伺服器被刪除或轉移前無法刪除帳戶" + +#: components/i18n/errors.ts +msgid "Cannot edit this message." +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +msgid "Change" +msgstr "變更" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Avatar" +msgstr "更改頭貼" + +#. placeholder {0}: props.member.server!.name +#: components/modal/modals/ServerIdentity.tsx +msgid "Change identity on {0}" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Change login email" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +msgid "Change login password" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change Nickname" +msgstr "更改暱稱" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change other members' nicknames" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own avatar" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Change own nickname" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +msgid "Change username" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Change your profile per-server" +msgstr "" + +#: components/modal/modals/Changelog.tsx +msgid "Changelog" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Description" +msgstr "頻道簡介" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Info" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Channel Name" +msgstr "頻道名稱" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Channel Settings" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Channels" +msgstr "頻道" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Chat Input" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "Check your mail!" +msgstr "請檢查您的電子郵件!" + +#: components/modal/modals/Onboarding.tsx +msgid "Choose username" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Clear status" +msgstr "清除狀態" + +#: components/modal/modals/PolicyChange.tsx +msgid "Click on the items below to learn more about different changes!" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +msgid "Click to show full description" +msgstr "" + +#: components/ui/components/utils/Spoiler.tsx +msgid "Click to show spoiler" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Client Settings" +msgstr "用戶端設定" + +#: components/modal/modals/UserProfileRoles.tsx +#: components/modal/modals/UserProfileMutualGroups.tsx +#: components/modal/modals/UserProfileMutualFriends.tsx +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/PolicyChange.tsx +#: components/modal/modals/LinkWarning.tsx +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/ChannelInfo.tsx +#: components/modal/modals/Changelog.tsx +#: components/modal/modals/AddMembersToGroup.tsx +#: components/modal/modals/AddFriend.tsx +msgid "Close" +msgstr "關閉" + +#: components/app/menus/UserContextMenu.tsx +msgid "Close chat" +msgstr "" + +#. placeholder {0}: props.channel.recipient?.displayName +#: components/modal/modals/DeleteChannel.tsx +msgid "Close conversation with {0}?" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Code" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure a way to get back into your account in case your 2FA is lost" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Configure one-time password authentication" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Confirm" +msgstr "確定" + +#: components/modal/modals/MFAFlow.tsx +msgid "Confirm action" +msgstr "確定操作" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect" +msgstr "連接" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Connect to voice channel" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connected" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Connecting" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Content breaks one or more laws" +msgstr "內容違反一條或多條規定" + +#: components/modal/modals/MFAEnableTOTP.tsx +#: components/modal/modals/LinkWarning.tsx +msgid "Continue" +msgstr "繼續" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Continue to app" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Contribute a language" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Conversations" +msgstr "對話" + +#: components/app/menus/CategoryContextMenu.tsx +msgid "Copy category ID" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy channel ID" +msgstr "複製頻道 ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy ID" +msgstr "複製 ID" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Invite URL" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Copy link" +msgstr "複製連結" + +#: components/modal/modals/CreateInvite.tsx +msgid "Copy Link" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy message ID" +msgstr "複製訊息 ID" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Copy role ID" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Copy server ID" +msgstr "複製伺服器 ID" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Copy text" +msgstr "複製文字" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Copy Token" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: components/app/menus/UserContextMenu.tsx +msgid "Copy user ID" +msgstr "複製使用者 ID" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Copy webhook URL" +msgstr "" + +#: components/i18n/errors.ts +msgid "Could not find what you requested." +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/modal/modals/CreateServer.tsx +#: components/modal/modals/CreateRole.tsx +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/CreateChannel.tsx +#: components/modal/modals/CreateCategory.tsx +#: components/modal/modals/CreateBot.tsx +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Create" +msgstr "創建" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create a channel before inviting others!" +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "Create a group" +#~ msgstr "建立群組" + +#: src/interface/Home.tsx +msgid "Create a group or server" +msgstr "" + +#: components/modal/modals/CreateBot.tsx +msgid "Create a new bot" +msgstr "新建機器人" + +#: components/modal/modals/CreateCategory.tsx +msgid "Create a new category" +msgstr "" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: components/modal/modals/CreateGroup.tsx +msgid "Create a new group" +msgstr "" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create a new role" +msgstr "新建身份組" + +#: components/modal/modals/CreateWebhook.tsx +msgid "Create a webhook" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Create an account" +msgstr "建立帳號" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit server roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create and edit webhooks" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Create Bot" +msgstr "" + +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Create category" +msgstr "新建分類" + +#: components/modal/modals/CreateChannel.tsx +#: components/app/menus/ServerSidebarContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +msgid "Create channel" +msgstr "建立頻道" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Create invite" +msgstr "新建邀請" + +#: components/modal/modals/CreateInvite.tsx +msgid "Create Invite" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create invites for others to use" +msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Create Role" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +msgid "Create server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Create server emoji" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/WebhooksList.tsx +msgid "Create Webhook" +msgstr "" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Created <0/>" +msgstr "" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Current Password" +msgstr "目前密碼" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Current Session" +msgstr "" + +#: components/modal/modals/CustomStatus.tsx +msgid "Custom status" +msgstr "自訂狀態" + +#: components/app/interface/settings/user/Native.tsx +msgid "Custom window frame" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Customisation" +msgstr "自訂" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Dark" +msgstr "" + +#. placeholder {0}: err.location +#: components/i18n/errors.ts +msgid "Database error, please contact support. ({0})" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Deafen Members" +msgstr "靜音成員" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Default" +msgstr "預設" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Default Permissions" +msgstr "" + +#: components/modal/modals/EmojiPreview.tsx +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteMessage.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete" +msgstr "移除" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.role.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Delete {0}?" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Delete Account" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Delete and pin messages sent by other members" +msgstr "" + +#: components/modal/modals/DeleteCategory.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Delete category" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Delete channel" +msgstr "刪除頻道" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Delete Channel" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Delete Invite" +msgstr "" + +#: components/modal/modals/DeleteMessage.tsx +#: components/app/menus/MessageContextMenu.tsx +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Delete message" +msgstr "刪除訊息" + +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Delete Role" +msgstr "刪除身份組" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Delete Server" +msgstr "" + +#. placeholder {0}: props.invite.username +#: components/modal/modals/AddBot.tsx +msgid "Description provided by {0}" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Desktop" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Developer Documentation" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable Account" +msgstr "凍結帳號" + +#: components/app/interface/settings/user/Account.tsx +msgid "Disable one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Disabled" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Disconnected" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Discord RPC" +msgstr "" + +#: src/interface/Home.tsx +msgid "Discover Upryzing" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Display & Text" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Display Name" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Do Not Disturb" +msgstr "請勿打擾" + +#: components/modal/modals/LinkWarning.tsx +msgid "Don't ask me again for " +msgstr "" + +#: components/modal/modals/LinkWarning.tsx +#~ msgid "Don't ask me again for <0>{0}" +#~ msgstr "" + +#: components/modal/modals/LeaveServer.tsx +msgid "Don't notify others that you've left" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Donate" +msgstr "" + +#: src/interface/Home.tsx +msgid "Donate to Upryzing" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Donated to Upryzing" +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Done" +msgstr "完成" + +#: components/modal/modals/ReportContent.tsx +msgid "Drugs or illegal goods" +msgstr "" + +#. placeholder {0}: props.member.displayName +#: components/modal/modals/UserProfileRoles.tsx +msgid "Edit {0}'s roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit and delete channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit any permissions on the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit channel-specific role and default permissions" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Edit Global Profile" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit group name and description" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit identity" +msgstr "編輯身份" + +#: components/modal/modals/ServerInfo.tsx +msgid "Edit Identity" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Edit message" +msgstr "編輯訊息" + +#: components/app/menus/UserContextMenu.tsx +msgid "Edit roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Edit the server's information and settings" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +#: components/app/menus/ServerContextMenu.tsx +msgid "Edit your identity" +msgstr "編輯身分" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Edited" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Effective <0/> (<1/>)" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Email" +msgstr "電子郵件" + +#: components/app/interface/settings/server/emojis/EmojiList.tsx +msgid "Emoji Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Emoji Pack (affects your messages only)" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Emojis" +msgstr "表情符號" + +#: components/app/interface/settings/user/Account.tsx +msgid "Enable Authenticator" +msgstr "" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enable authenticator app" +msgstr "開啟二步驟驗證程式" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Enable Desktop Notifications" +msgstr "開啟桌面通知" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Enable transparency glass/blur effects (slow on older machines)" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Enter a new name for this session" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "Enter a new password." +msgstr "輸入新密碼。" + +#: src/interface/channels/AgeGate.tsx +msgid "Enter Channel" +msgstr "進入頻道" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Enter Code" +msgstr "輸入代碼" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your current password." +msgstr "輸入目前的密碼。" + +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/EditPassword.tsx +#: components/modal/modals/EditEmail.tsx +msgid "Enter your current password..." +msgstr "" + +#: components/auth/src/flows/Form.tsx +msgid "Enter your preferred username." +msgstr "輸入您的用戶名。" + +#: components/modal/modals/LinkWarning.tsx +msgid "External links can be dangerous!" +msgstr "外部連結可能有危險!" + +#: components/modal/modals/ReportContent.tsx +msgid "Extortion or blackmail" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Extreme violence, gore or animal cruelty" +msgstr "" + +#: components/i18n/errors.ts +msgid "Failed to process the image you provided." +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Failed to send" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Failed to verify!" +msgstr "驗證失敗!" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Feedback" +msgstr "意見回饋" + +#: src/interface/Home.tsx +msgid "Find a community based on your hobbies or interests." +msgstr "根據您的愛好或興趣尋找社群。" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Find your com<0/>munity,<1/>connect with the world." +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Focus" +msgstr "專注" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 1 hour" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 15 minutes" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 24 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 3 hours" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "For 8 hours" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Friends" +msgstr "好友" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Fruit Salad" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Generate a new token if it gets lost or compromised" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Generate Recovery Codes" +msgstr "產生恢復代碼" + +#: components/modal/modals/CreateInvite.tsx +msgid "Generating invite…" +msgstr "正在建立邀請…" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get a new set of recovery codes" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Get active recovery codes" +msgstr "" + +#: src/interface/Home.tsx +msgid "Give feedback on Upryzing" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Give us some detail" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowVerify.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Go back to login" +msgstr "返回登入頁面" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Go to account settings to edit your username" +msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Go to the Upryzing Garden" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#~ msgid "Go to the testers server" +#~ msgstr "前往測試者伺服器" + +#: components/modal/modals/Onboarding.tsx +msgid "Good" +msgstr "" + +#. placeholder {0}: countBits(props.context.rolePermissions![role.id].a) +#. placeholder {1}: countBits(props.context.rolePermissions![role.id].d) +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "Grants {0} permissions and denies {1} permissions" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Group Name" +msgstr "群組名稱" + +#: components/modal/modals/ReportContent.tsx +msgid "Harassment or cyberbullying" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Hardware Acceleration" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Hear other people and see their video" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Hello!" +msgstr "您好!" + +#: components/app/interface/settings/user/Language.tsx +msgid "Help contribute to an existing or new language" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Helped translate Upryzing" +msgstr "" + +#. placeholder {0}: link() +#: components/modal/modals/CreateInvite.tsx +msgid "Here is your new invite code: <0>{0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "High Contrast" +msgstr "" + +#: src/interface/Home.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +msgid "Home" +msgstr "首頁" + +#: src/interface/channels/AgeGate.tsx +msgid "I confirm that I am at least 18 years old." +msgstr "我確認我已滿18歲。" + +#: components/modal/modals/LinkWarning.tsx +msgid "I understand the consequences" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Idle" +msgstr "閒置" + +#: components/modal/modals/ReportContent.tsx +msgid "Illegal hacking or cracking" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Image by @fakurian" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Impersonation" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Instead of closing, Upryzing will hide in your tray." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Interface Font" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Invisible" +msgstr "隱形" + +#: src/interface/Home.tsx +msgid "Invite all of your friends, some cool bots, and throw a big party." +msgstr "邀請您所有的朋友,一些很酷的機器人,並舉辦一個盛大的派對。" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Invite Bot" +msgstr "" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Invite Code" +msgstr "邀請碼" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Invite Others" +msgstr "邀請其他人" + +#: components/app/interface/settings/server/invites/ListServerInvites.tsx +msgid "Inviter" +msgstr "邀請者" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "Invites" +msgstr "邀請" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 1" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "irrelevant joke badge 2" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "ISO Standard (YYYY-MM-DD)" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +#: components/modal/modals/Invite.tsx +msgid "Join" +msgstr "" + +#: components/modal/modals/JoinServer.tsx +msgid "Join a server" +msgstr "" + +#: src/interface/channels/ChannelHeader.tsx +#~ msgid "Join call" +#~ msgstr "" + +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "Join the Upryzing Garden" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Join the voice channel" +msgstr "" + +#: components/ui/components/features/profiles/ProfileJoined.tsx +#: components/ui/components/features/messaging/elements/Invite.tsx +msgid "Joined" +msgstr "" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Jump to present" +msgstr "跳到最新" + +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "Jump to the beginning" +msgstr "跳回開頭" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Keep as is" +msgstr "" + +#: components/modal/modals/KickMember.tsx +msgid "Kick" +msgstr "踢出" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick lower-ranking members from the server" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Kick member" +msgstr "踢出成員" + +#: components/modal/modals/KickMember.tsx +msgid "Kick Member" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Kick Members" +msgstr "踢出成員" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sync.tsx +msgid "Language" +msgstr "語言" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Last sync <0/>" +msgstr "" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Latest" +msgstr "最新" + +#: components/app/interface/settings/user/Native.tsx +msgid "Launch Upryzing when you log into your computer." +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "Learn more about how to create bots on Upryzing." +msgstr "" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave" +msgstr "離開" + +#. placeholder {0}: props.server.name +#. placeholder {0}: props.channel.name +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "Leave {0}?" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Leave group" +msgstr "離開群組" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Leave server" +msgstr "離開伺服器" + +#: components/app/interface/settings/user/Native.tsx +msgid "Let Lavender Desktop use its own custom titlebar." +msgstr "" + +#: src/interface/Home.tsx +msgid "Let us know how we can improve our app by giving us feedback." +msgstr "通過向我們提供回饋,讓我們知道如何改進我們的應用程式。" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Light" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Listen" +msgstr "" + +#. placeholder {0}: humanFileSize(props.file.size ?? 0) +#: components/ui/components/features/messaging/elements/TextFile.tsx +msgid "Load file ({0})" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Log In" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out" +msgstr "登出" + +#: components/auth/src/flows/Form.tsx +msgid "Log out of all other sessions" +msgstr "從所有其他裝置登出" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Log Out Other Sessions" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Login" +msgstr "登入" + +#: components/app/interface/settings/user/Sessions.tsx +msgid "Logs you out of all sessions except this device." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Malware or phishing" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Customisation" +msgstr "管理表情符號" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Messages" +msgstr "管理訊息" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Nicknames" +msgstr "管理暱稱" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Permissions" +msgstr "管理權限" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Roles" +msgstr "管理身份組" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Server" +msgstr "管理伺服器" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Manage Webhooks" +msgstr "管理 Webhook" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/Overview.tsx +msgid "Mark as Mature" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/ChannelContextMenu.tsx +#: components/app/menus/CategoryContextMenu.tsx +msgid "Mark as read" +msgstr "標記為已讀" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Mark as unread" +msgstr "標記為未讀" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Mark this channel as mature?" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Masquerade" +msgstr "偽裝身份" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Members" +msgstr "成員" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mention" +msgstr "提及" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Everyone" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention everyone and online members inside the server" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention Roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mention specific roles" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mentions" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mentions Only" +msgstr "只限標註" + +#: components/app/menus/UserContextMenu.tsx +msgid "Message" +msgstr "訊息" + +#. placeholder {0}: props.channel.recipient?.username +#. placeholder {0}: props.channel.name +#: src/interface/channels/text/Composition.tsx +#: src/interface/channels/text/Composition.tsx +msgid "Message {0}" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Group Spacing" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Message not loaded, click to jump" +msgstr "訊息未載入,點擊跳轉" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Received" +msgstr "接收訊息" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Message Sent" +msgstr "送出訊息" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Message Size" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Message was sent on another platform" +msgstr "訊息傳送自其他平台" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Messaging" +msgstr "訊息" + +#: components/app/interface/settings/user/Native.tsx +msgid "Minimise to Tray" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +#: components/ui/components/features/voice/callCard/VoiceCallCardActions.tsx +msgid "Missing permission" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monochrome" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Monospace Font" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "More Contrast" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move Members" +msgstr "移動成員" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Move members between voice channels" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Mute" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Mute Channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute lower-ranking members in voice call" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Mute Members" +msgstr "禁言成員" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Mute Server" +msgstr "" + +#: src/interface/navigation/servers/ServerList.tsx +msgid "Muted" +msgstr "靜音" + +#: src/interface/navigation/servers/ServerList.tsx +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Muted until <0/>" +msgstr "" + +#: components/modal/modals/UserProfileMutualFriends.tsx +msgid "Mutual Friends" +msgstr "共同好友" + +#: components/modal/modals/UserProfileMutualGroups.tsx +msgid "Mutual Groups" +msgstr "共同群組" + +#: components/app/interface/settings/user/_AccountCard.tsx +msgid "My Account" +msgstr "我的帳號" + +#: components/app/interface/settings/UserSettings.tsx +msgid "My Bots" +msgstr "我的機器人" + +#: components/modal/modals/RenameSession.tsx +#: components/modal/modals/CreateCategory.tsx +msgid "Name" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Neutral" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageDivider.tsx +msgid "NEW" +msgstr "" + +#. placeholder {0}: dayjs(decodeTime(props.lastId()!)).fromNow() +#: components/ui/components/features/messaging/bars/NewMessages.tsx +msgid "New messages since {0}" +msgstr "" + +#: components/modal/modals/EditPassword.tsx +#: components/auth/src/flows/Form.tsx +msgid "New Password" +msgstr "新密碼" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to Upryzing" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "New to the server" +msgstr "" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Nickname" +msgstr "暱稱" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsOverview.tsx +msgid "No permissions set yet" +msgstr "" + +#: src/interface/Friends.tsx +msgid "Nobody here right now!" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "None" +msgstr "無" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Normal" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Not of minimum age to use the platform" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Notifications" +msgstr "通知" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Off" +msgstr "關閉" + +#: components/app/interface/channels/text/Message.tsx +msgid "Official Communication" +msgstr "官方社群" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Official Server" +msgstr "官方服務器" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Offline" +msgstr "離線" + +#: components/modal/modals/SignedOut.tsx +#: components/modal/modals/Error2.tsx +#: components/modal/modals/CreateInvite.tsx +#: components/auth/src/flows/FlowHome.tsx +msgid "OK" +msgstr "確定" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Oldest" +msgstr "最舊" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "On" +msgstr "開啟" + +#: components/modal/modals/DeleteServer.tsx +#: components/modal/modals/DeleteRole.tsx +#: components/modal/modals/DeleteChannel.tsx +#: components/modal/modals/DeleteCategory.tsx +#: components/modal/modals/DeleteBot.tsx +msgid "Once it's deleted, there's no going back." +msgstr "刪除之後,將無法復原。" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "One of the first 1000 users!" +msgstr "" + +#: src/interface/Friends.tsx +#: src/interface/navigation/servers/UserMenu.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/text/MemberSidebar.tsx +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Online" +msgstr "線上" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "Only mentions will notify you" +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "Open" +msgstr "" + +#. placeholder {0}: provider()![0] +#: components/auth/src/flows/MailProvider.tsx +msgid "Open {0}" +msgstr "" + +#: components/app/menus/ChannelContextMenu.tsx +msgid "Open channel settings" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Open file" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Open server settings" +msgstr "" + +#: src/interface/Home.tsx +msgid "Open settings" +msgstr "開啟設定" + +#: components/modal/modals/ReportContent.tsx +msgid "Other" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Output Volume" +msgstr "" + +#: components/app/interface/settings/ServerSettings.tsx +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Overview" +msgstr "概述" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Pardon User" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Password" +msgstr "密碼" + +#: src/interface/Friends.tsx +msgid "Pending" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Permissions" +msgstr "權限" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Pick a username that you want people to be able to find you by. This can be changed later in your user settings." +msgstr "請選擇一個使用者名稱以便其他人尋找,您隨後可以在設定中進行更改。" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Pin message" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Platform Moderator" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please confirm this action using the selected method." +msgstr "請使用已選擇的方式確認此操作。" + +#: components/auth/src/flows/Form.tsx +msgid "Please enter your email." +msgstr "請輸入您的電子郵件。" + +#: components/i18n/errors.ts +msgid "Please log in again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Please save these to a safe location." +msgstr "請將它們儲存在安全的位置。" + +#: components/modal/modals/MFAEnableTOTP.tsx +msgid "Please scan or use the token below in your authenticator app." +msgstr "請在二步驟驗證器內掃碼或填入以下金鑰。" + +#: components/modal/modals/MFAFlow.tsx +msgid "Please select a method to authenticate your request." +msgstr "請選擇一種方式驗證您的要求。" + +#: components/modal/modals/ReportContent.tsx +msgid "Please select a reason" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Privacy Policy" +msgstr "隱私政策" + +#: components/markdown/plugins/anchors.tsx +msgid "Private Channel" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Profile" +msgstr "個人資料" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Profile Bio" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Promotes harm" +msgstr "" + +#: components/i18n/errors.ts +msgid "Provided email or password is wrong." +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Raid or spam attack" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "React to messages with emoji" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read Message History" +msgstr "閱讀訊息歷史" + +#: components/modal/modals/Changelog.tsx +msgid "Read More" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Read past messages sent in channels" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "Reason" +msgstr "原因" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Receive notifications while the app is open and in the background." +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardStatus.tsx +msgid "Reconnecting" +msgstr "" + +#: components/modal/modals/MFAFlow.tsx +#: components/modal/modals/MFAFlow.tsx +msgid "Recovery Code" +msgstr "備份安全碼" + +#: components/app/interface/settings/user/Account.tsx +msgid "Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Reduced" +msgstr "" + +#: components/auth/src/flows/FlowCreate.tsx +msgid "Register" +msgstr "註冊" + +#: components/modal/modals/AddBot.tsx +msgid "Registered since <0/>" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Reject friend request" +msgstr "拒絕好友邀請" + +#: src/interface/channels/text/TextSearchSidebar.tsx +msgid "Relevance" +msgstr "最佳" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove all reactions" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Remove Authenticator" +msgstr "移除安全認證" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove Avatars" +msgstr "移除頭貼" + +#: components/app/menus/UserContextMenu.tsx +msgid "Remove friend" +msgstr "刪除好友" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Remove other members' avatars" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Remove reaction" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +#: components/app/interface/settings/user/Sessions.tsx +#: components/app/interface/settings/user/Sessions.tsx +msgid "Rename" +msgstr "" + +#: components/modal/modals/RenameSession.tsx +msgid "Rename Session" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Rep Upryzing using Discord rich presence." +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Reply" +msgstr "回覆" + +#: components/ui/components/features/messaging/composition/MessageReplyPreview.tsx +msgid "Replying to" +msgstr "回覆" + +#: components/modal/modals/ServerInfo.tsx +#: components/modal/modals/ReportContent.tsx +msgid "Report" +msgstr "檢舉" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Report message" +msgstr "檢舉訊息" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Report server" +msgstr "檢舉伺服器" + +#: components/app/menus/UserContextMenu.tsx +msgid "Report user" +msgstr "檢舉使用者" + +#: components/auth/src/flows/FlowResend.tsx +msgid "Resend" +msgstr "" + +#: components/auth/src/flows/FlowResend.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Resend verification" +msgstr "重新發送認證碼" + +#: components/ui/components/utils/Form2.tsx +#: components/modal/modals/ResetBotToken.tsx +#: components/modal/modals/MFARecovery.tsx +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset" +msgstr "重置" + +#. placeholder {0}: props.bot.user!.username +#: components/modal/modals/ResetBotToken.tsx +msgid "Reset {0}'s token?" +msgstr "" + +#: components/auth/src/flows/FlowReset.tsx +#: components/auth/src/flows/FlowLogin.tsx +#: components/auth/src/flows/FlowConfirmReset.tsx +msgid "Reset password" +msgstr "重設密碼" + +#: components/app/interface/settings/user/Account.tsx +msgid "Reset Recovery Codes" +msgstr "" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Reset Token" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Responsibly disclosed security issues" +msgstr "" + +#: components/app/menus/DraftMessageContextMenu.tsx +msgid "Retry sending" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Revenge or underage pornography" +msgstr "" + +#: components/modal/modals/PolicyChange.tsx +msgid "Review policy changes" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "Roadmap" +#~ msgstr "" + +#: components/modal/modals/CreateRole.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +msgid "Role Name" +msgstr "身份組名稱" + +#: components/ui/components/features/profiles/ProfileRoles.tsx +#: components/app/interface/settings/ServerSettings.tsx +msgid "Roles" +msgstr "身份組" + +#: components/modal/modals/ServerIdentity.tsx +#: components/modal/modals/CustomStatus.tsx +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +#: components/app/interface/settings/server/Overview.tsx +#: components/app/interface/settings/server/roles/ServerRoleEditor.tsx +#: components/app/interface/settings/channel/Overview.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Save" +msgstr "儲存" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Save file" +msgstr "" + +#: src/interface/channels/text/Composition.tsx +msgid "Save to your notes" +msgstr "儲存到記事本" + +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/navigation/channels/HomeSidebar.tsx +#: src/interface/channels/ChannelHeader.tsx +msgid "Saved Notes" +msgstr "記事本" + +#: components/modal/modals/ReportContent.tsx +msgid "Scams or fraud" +msgstr "" + +#: components/modal/modals/AddBot.tsx +msgid "Search for groups..." +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +#: components/modal/modals/AddMembersToGroup.tsx +msgid "Search for users..." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +#~ msgid "See what we're currently working on." +#~ msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio input" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Select audio output" +msgstr "" + +#: components/modal/modals/CreateGroup.tsx +msgid "Select members to add" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +msgid "Select your language" +msgstr "選擇語言" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send attachments to chat" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "Send email" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send embedded content such as link embeds or custom embeds" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Embeds" +msgstr "發送嵌入內容" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send Messages" +msgstr "發送訊息" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channel" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Send messages in channels" +msgstr "" + +#: components/modal/modals/AddFriend.tsx +msgid "Send Request" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Sending..." +msgstr "" + +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +#: components/ui/components/features/messaging/elements/Container.tsx +msgid "Sent" +msgstr "" + +#. placeholder {0}: message.attachments!.length +#: components/client/NotificationsWorker.tsx +msgid "Sent {0} attachments" +msgstr "" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent an attachment" +msgstr "上傳附件" + +#: components/ui/components/features/messaging/elements/MessageReply.tsx +msgid "Sent multiple attachments" +msgstr "上傳多個附件" + +#: components/modal/modals/ServerIdentity.tsx +msgid "Server Avatar" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Banner" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Server Default" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Description" +msgstr "伺服器簡介" + +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Icon" +msgstr "" + +#: components/app/interface/settings/user/profile/EditProfile.tsx +msgid "Server Identities" +msgstr "" + +#: components/modal/modals/CreateServer.tsx +#: components/app/interface/settings/server/Overview.tsx +msgid "Server Name" +msgstr "伺服器名稱" + +#: components/app/interface/settings/server/roles/ServerRoleOverview.tsx +msgid "Server Roles" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Sessions" +msgstr "裝置" + +#: components/modal/modals/CustomStatus.tsx +msgid "Set your status" +msgstr "" + +#: components/modal/modals/ServerInfo.tsx +msgid "Settings" +msgstr "設定" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup one-time password authenticator" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Setup recovery codes" +msgstr "" + +#: components/ui/components/features/messaging/composition/TypingIndicator.tsx +msgid "Several people are typing…" +msgstr "有好幾個人正在輸入…" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Share camera or screen in voice call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Show corrections and suggestions as you type." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Show send message button" +msgstr "" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Sign into Upryzing" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Sign Up" +msgstr "" + +#: components/app/interface/channels/text/Message.tsx +msgid "Silent" +msgstr "" + +#: components/modal/modals/EditEmail.tsx +msgid "someone@example.com" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Something cool about me..." +msgstr "" + +#. placeholder {0}: err.error +#: components/i18n/errors.ts +msgid "Something is wrong with your request, {0}." +msgstr "" + +#: components/i18n/errors.ts +msgid "Something went wrong! Try again later." +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "Sounds" +msgstr "聲音" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Source Code" +msgstr "原始碼" + +#: components/modal/modals/ReportContent.tsx +msgid "Spam or similar platform abuse" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Speak" +msgstr "發言" + +#: components/app/interface/settings/user/Native.tsx +msgid "Spellchecker" +msgstr "" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Start the call" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Start with Computer" +msgstr "" + +#: components/ui/components/features/profiles/ProfileStatus.tsx +msgid "Status" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +#~ msgid "Upryzing Desktop" +#~ msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Developer" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Lavender Desktop" +msgstr "" + +#: components/ui/components/features/profiles/ProfileBadges.tsx +msgid "Upryzing Founder" +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "Upryzing is one of the best ways to stay connected with your friends and community, anywhere, anytime." +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feature suggestion" +msgstr "提交功能建議" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Submit feedback" +msgstr "提供反應" + +#: components/app/interface/settings/user/bots/ViewBot.tsx +msgid "Submit to Discover" +msgstr "" + +#: components/app/interface/settings/UserSettings.tsx +msgid "Subscriptions" +msgstr "" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "Suggest new Upryzing features on GitHub discussions." +msgstr "" + +#: src/interface/Home.tsx +msgid "Support the project by donating - thank you!" +msgstr "通過捐贈支持本計劃 - 謝謝!" + +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "Switch to this voice channel" +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync appearance options, such as chosen emoji pack and message density." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your chosen theme, colours, and any custom CSS." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Sync your currently chosen language." +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "System" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "System message channels" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this server" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Tell us what's wrong with this user" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Temporarily prevent lower-ranking members from interacting" +msgstr "" + +#: components/auth/src/AuthPage.tsx +msgid "Terms of Service" +msgstr "服務條款" + +#: components/modal/modals/CreateChannel.tsx +msgid "Text Channel" +msgstr "文字頻道" + +#: components/i18n/errors.ts +msgid "That action had no effect." +msgstr "" + +#. placeholder {0}: file.name +#: src/interface/channels/text/Composition.tsx +msgid "The file \"{0}\" ({fileSize}) exceeds the maximum size limit of {maxSizeFormatted}." +msgstr "" + +#: components/app/interface/settings/user/Sync.tsx +msgid "Theme" +msgstr "主題" + +#: components/i18n/errors.ts +msgid "This bot is private and can only be added by the creator." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "This channel is about..." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is marked as mature." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This channel is not available in your region while we review options on legal compliance." +msgstr "" + +#: src/interface/channels/AgeGate.tsx +msgid "This content is not available in your region." +msgstr "" + +#: components/i18n/errors.ts +msgid "This feature is currently disabled." +msgstr "" + +#: components/i18n/errors.ts +msgid "This file type is not allowed." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "This group is too large, you can have up to {0} users." +msgstr "" + +#: components/i18n/errors.ts +msgid "This has already been sent." +msgstr "" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your conversation." +msgstr "這裡是聊天室的起始。" + +#: components/ui/components/features/messaging/elements/ConversationStart.tsx +msgid "This is the start of your notes." +msgstr "這裡是您筆記的開始。" + +#: components/i18n/errors.ts +msgid "This message is already pinned." +msgstr "" + +#: components/i18n/errors.ts +msgid "This message is empty and has not been sent." +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "This server is about..." +msgstr "" + +#: components/i18n/errors.ts +msgid "This user has blocked you." +msgstr "此使用者已封鎖您。" + +#: components/modal/modals/BanNonMember.tsx +msgid "This user is not part of the server and may already be banned" +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is already taken." +msgstr "" + +#: components/i18n/errors.ts +msgid "This username is not allowed." +msgstr "" + +#: components/modal/modals/ResetBotToken.tsx +msgid "This will invalidate the current token and stop any existing instances of the bot from running." +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Timeout Members" +msgstr "暫時禁言成員" + +#: src/interface/common/CommonHeader.tsx +msgid "Toggle main sidebar" +msgstr "" + +#: components/app/interface/settings/user/appearance/AppearanceMenu.tsx +msgid "Tonal Spot" +msgstr "" + +#: components/app/interface/settings/user/Language.tsx +#: components/app/interface/settings/user/Language.tsx +msgid "Traditional (DD/MM/YYYY)" +msgstr "" + +#: components/ui/components/features/messaging/composition/picker/GifPicker.tsx +msgid "Trending GIFs" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Unblock user" +msgstr "解除封鎖使用者" + +#: components/markdown/plugins/anchors.tsx +msgid "Unknown Server" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark as mature" +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Unmark as Mature" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Unmark this channel as mature?" +msgstr "" + +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Unmute Channel" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +msgid "Unmute Server" +msgstr "" + +#: components/app/menus/MessageContextMenu.tsx +msgid "Unpin message" +msgstr "" + +#: components/app/interface/channels/text/DraftMessage.tsx +msgid "Unsent message" +msgstr "" + +#: components/modal/modals/ReportContent.tsx +msgid "Unsolicited advertising or spam" +msgstr "" + +#: components/app/menus/ServerContextMenu.tsx +#: components/app/menus/shared/NotificationContextMenu.tsx +msgid "Until I turn it back on" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Upload Files" +msgstr "上傳檔案" + +#: components/modal/modals/JoinServer.tsx +msgid "Use a code or invite link" +msgstr "" + +#: components/app/interface/settings/user/Native.tsx +msgid "Use the graphics card to improve performance." +msgstr "" + +#: components/app/interface/settings/server/bans/ListBans.tsx +msgid "User" +msgstr "使用者" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Banned" +msgstr "" + +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "User broke a certain rule…" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Joined" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Joined Call" +msgstr "使用者加入語音" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Kicked" +msgstr "" + +#: components/app/interface/settings/server/Overview.tsx +msgid "User Left" +msgstr "" + +#: components/app/interface/settings/user/Notifications.tsx +msgid "User Left Call" +msgstr "使用者離開語音" + +#: components/app/interface/settings/ServerSettings.tsx +msgid "User Management" +msgstr "使用者管理" + +#: components/app/interface/settings/UserSettings.tsx +msgid "User Settings" +msgstr "使用者設定" + +#: components/modal/modals/ReportContent.tsx +msgid "User's profile has inappropriate content" +msgstr "" + +#: components/modal/modals/Onboarding.tsx +#: components/modal/modals/EditUsername.tsx +#: components/modal/modals/CreateBot.tsx +#: components/modal/modals/AddFriend.tsx +#: components/auth/src/flows/Form.tsx +#: components/app/interface/settings/user/Account.tsx +msgid "Username" +msgstr "使用者名稱" + +#: components/modal/modals/AddFriend.tsx +msgid "username#1234" +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will be asked to confirm their age before joining this channel." +msgstr "" + +#: components/app/interface/settings/channel/Overview.tsx +msgid "Users will be asked to confirm their age before opening this channel." +msgstr "" + +#: components/modal/modals/ChannelToggleMature.tsx +msgid "Users will no longer be asked to confirm their age before joining this channel.<0/> Please ensure the content is appropriate for all ages." +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default microphone" +msgstr "" + +#: components/app/interface/settings/user/voice/VoiceInputOptions.tsx +msgid "Using default speaker" +msgstr "" + +#: src/interface/navigation/channels/ServerSidebar.tsx +msgid "Verified" +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Verifying your account…" +msgstr "驗證您的帳號…" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/user/Native.tsx +msgid "Version:" +msgstr "" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Video" +msgstr "影片" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "View Channel" +msgstr "查看頻道" + +#: components/app/interface/settings/user/Feedback.tsx +msgid "View currently active bug reports here." +msgstr "查看當前活躍的錯誤回報。" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View members" +msgstr "" + +#: components/modal/modals/Changelog.tsx +#~ msgid "View older updates" +#~ msgstr "查看以前的更新" + +#: src/interface/channels/ChannelHeader.tsx +msgid "View pinned messages" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "View Recovery Codes" +msgstr "查看恢復代碼" + +#: components/ui/components/features/messaging/bars/JumpToBottom.tsx +msgid "Viewing older messages" +msgstr "查看歷史訊息" + +#: components/app/interface/settings/UserSettings.tsx +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Voice" +msgstr "" + +#: components/modal/modals/CreateChannel.tsx +msgid "Voice Channel" +msgstr "語音頻道" + +#: components/app/interface/settings/user/voice/VoiceProcessingOptions.tsx +msgid "Voice Processing" +msgstr "" + +#: components/app/menus/UserContextMenu.tsx +msgid "Volume" +msgstr "" + +#: components/app/interface/settings/user/profile/UserProfileEditor.tsx +msgid "Want to change username?" +msgstr "" + +#: components/auth/src/flows/FlowCheck.tsx +msgid "We've sent you a verification email. Please allow up to 10 minutes for it to arrive." +msgstr "請等待電子郵件送達,最多可能會需要 10 分鐘。" + +#: components/app/interface/channels/text/Message.tsx +msgid "Webhook" +msgstr "" + +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Icon" +msgstr "" + +#: components/modal/modals/CreateWebhook.tsx +#: components/app/interface/settings/channel/webhooks/ViewWebhook.tsx +msgid "Webhook Name" +msgstr "" + +#: components/app/interface/settings/ChannelSettings.tsx +msgid "Webhooks" +msgstr "Webhooks" + +#: src/interface/Home.tsx +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome to" +msgstr "歡迎來到" + +#: components/auth/src/flows/FlowLogin.tsx +msgid "Welcome!" +msgstr "歡迎!" + +#: components/app/interface/settings/channel/permissions/ChannelPermissionsEditor.tsx +msgid "Whether other users can edit these settings" +msgstr "" + +#. placeholder {0}: names.join(", ") +#: components/ui/components/features/voice/callCard/VoiceCallCardPreview.tsx +msgid "With {0}" +msgstr "" + +#: components/modal/modals/CreateGroupOrServer.tsx +msgid "Would you like to create a new group or server?" +msgstr "" + +#: components/modal/modals/CreateOrJoinServer.tsx +msgid "Would you like to create a new server or join an existing one?" +msgstr "" + +#: components/app/interface/settings/user/bots/MyBots.tsx +msgid "You agree that your bot is subject to the Acceptable Usage Policy." +msgstr "" + +#. placeholder {0}: props.user?.username +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/BanNonMember.tsx +#: components/modal/modals/BanMember.tsx +msgid "You are about to ban {0}" +msgstr "" + +#. placeholder {0}: props.member.user?.username +#: components/modal/modals/KickMember.tsx +msgid "You are about to kick {0}" +msgstr "" + +#: components/i18n/errors.ts +msgid "You are banned from this server." +msgstr "" + +#: src/interface/Home.tsx +msgid "You can also click the gear icon in the bottom left." +msgstr "" + +#: src/interface/Home.tsx +#~ msgid "You can also right-click the user icon in the top left, or left click it if you're already home." +#~ msgstr "您也可以右鍵點擊左上角的使用者頭像,或是在首頁點擊左鍵。" + +#: components/modal/modals/DeleteChannel.tsx +msgid "You can re-open it later, but it will disappear on both sides." +msgstr "您可以稍後重新打開它,但它會同時對對話雙方隱藏。" + +#: src/interface/Home.tsx +#: src/interface/Home.tsx +#: components/app/interface/settings/user/Feedback.tsx +#: components/app/interface/settings/user/Feedback.tsx +msgid "You can report issues and discuss improvements with us directly here." +msgstr "您可以直接在此處報告問題並與我們討論改進。" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't be in more than {0} servers, please leave one and try again." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} channels on this server." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You can't have more than {0} emojis on this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot give yourself missing permissions." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot join this call." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot remove yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot report yourself." +msgstr "" + +#: components/i18n/errors.ts +msgid "You cannot timeout yourself." +msgstr "" + +#: components/modal/modals/SignOutSessions.tsx +msgid "You cannot undo this action." +msgstr "您無法撤銷此操作。" + +#. placeholder {0}: props.display +#: components/modal/modals/LinkWarning.tsx +msgid "You clicked on \"{0}\"" +msgstr "" + +#: components/i18n/errors.ts +msgid "You do not have permission to do this." +msgstr "" + +#: components/ui/components/features/messaging/composition/MessageBox.tsx +msgid "You don't have permission to send messages in this channel." +msgstr "您沒有權限在此頻道發言。" + +#: components/i18n/errors.ts +msgid "You have this user blocked." +msgstr "" + +#: components/ui/components/features/voice/VoiceStatefulUserIcons.tsx +msgid "You muted this user." +msgstr "" + +#: components/auth/src/flows/FlowHome.tsx +msgid "You were logged out!" +msgstr "" + +#: src/interface/navigation/servers/UserMenu.tsx +msgid "You will not receive any notifications" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "You won't be able to access your account unless you contact support - however, your data will not be deleted." +msgstr "除非您聯絡支援人員,否則您將無法存取您的帳戶 - 但您的資料不會被刪除。" + +#: components/modal/modals/LeaveServer.tsx +#: components/modal/modals/DeleteChannel.tsx +msgid "You won't be able to rejoin unless you are re-invited." +msgstr "您將無法再加入除非您再度被邀請。" + +#: components/i18n/errors.ts +msgid "You're already part of this group." +msgstr "" + +#: components/modal/modals/Invite.tsx +#: components/i18n/errors.ts +msgid "You're already part of this server." +msgstr "" + +#: components/i18n/errors.ts +msgid "You've already sent a request to this user." +msgstr "" + +#: components/modal/modals/Invite.tsx +msgid "You've been invited to join this server.<0/>Would you like to join?" +msgstr "" + +#: components/modal/modals/SignedOut.tsx +msgid "You've been signed out of Upryzing!" +msgstr "" + +#: components/i18n/errors.ts +msgid "You've reached your personal bot limit." +msgstr "" + +#. placeholder {0}: err.max +#: components/i18n/errors.ts +msgid "You've sent too many friend requests, the maximum is {0}" +msgstr "" + +#: components/app/interface/settings/user/Account.tsx +msgid "Your account and all of your data (including your messages and friends list) will be queued for deletion. A confirmation email will be sent - you can cancel this within 7 days by contacting support." +msgstr "" + +#: components/auth/src/flows/FlowVerify.tsx +msgid "Your account has been verified!" +msgstr "您的帳號已驗證!" + +#: components/i18n/errors.ts +msgid "Your discriminator change has been ratelimited, please try again later." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your message is too long, please remove some characters and try again." +msgstr "" + +#: components/modal/modals/MFARecovery.tsx +msgid "Your recovery codes" +msgstr "您的恢復代碼" + +#: components/i18n/errors.ts +msgid "Your role ranking is too low to take this action." +msgstr "" + +#: components/i18n/errors.ts +msgid "Your user has already been created? Try logging in again or refreshing the app." +msgstr "" diff --git a/packages/client/components/i18n/dayjs-locale.d.ts b/packages/client/components/i18n/dayjs-locale.d.ts new file mode 100644 index 00000000..a23d77b1 --- /dev/null +++ b/packages/client/components/i18n/dayjs-locale.d.ts @@ -0,0 +1,4 @@ +declare module "dayjs/esm/locale/*.js" { + const content: ILocale; + export default content; +} diff --git a/packages/client/components/i18n/dayjs.ts b/packages/client/components/i18n/dayjs.ts deleted file mode 100644 index 123357c6..00000000 --- a/packages/client/components/i18n/dayjs.ts +++ /dev/null @@ -1,15 +0,0 @@ -import dayJS from "dayjs"; -import advancedFormat from "dayjs/plugin/advancedFormat"; -import calendar from "dayjs/plugin/calendar"; -import localizedFormat from "dayjs/plugin/localizedFormat"; -import relativeTime from "dayjs/plugin/relativeTime"; - -/** - * Export our dayjs function - */ -export const dayjs = dayJS; - -dayjs.extend(calendar); -dayjs.extend(localizedFormat); -dayjs.extend(relativeTime); -dayjs.extend(advancedFormat); diff --git a/packages/client/components/i18n/dayjs.tsx b/packages/client/components/i18n/dayjs.tsx new file mode 100644 index 00000000..e25156a0 --- /dev/null +++ b/packages/client/components/i18n/dayjs.tsx @@ -0,0 +1,132 @@ +import { createSignal } from "solid-js"; + +import { i18n } from "@lingui/core"; +import dayjs from "dayjs"; +import locale_en_GB from "dayjs/esm/locale/en-gb.js"; +import advancedFormat from "dayjs/plugin/advancedFormat"; +import calendar from "dayjs/plugin/calendar"; +import localizedFormat from "dayjs/plugin/localizedFormat"; +import relativeTime from "dayjs/plugin/relativeTime"; +import updateLocale from "dayjs/plugin/updateLocale"; + +import { type LocaleOptions, LanguageEntry, Languages } from "./Languages"; + +dayjs.extend(calendar); +dayjs.extend(localizedFormat); +dayjs.extend(relativeTime); +dayjs.extend(advancedFormat); +dayjs.extend(updateLocale); + +/** + * Internal signal, don't try to use this unless you know what you're doing! + */ +const [timeLocale, setTimeLocale] = createSignal<[string, ILocale]>([ + null!, + null!, +]); + +export { dayjs, timeLocale }; + +export async function loadTimeLocale( + language: LanguageEntry, + localeOptions: LocaleOptions, + useLocale?: ILocale, +) { + const target = language.dayjs ?? language.i18n; + const locale = + useLocale ?? + LOCALE_OVERRIDES[target] ?? + ((await import(`../../node_modules/dayjs/esm/locale/${target}.js`).then( + (module) => module.default, + )) as ILocale); + + // merge options for calendar + (locale as unknown as { calendar: Record }).calendar = { + lastDay: i18n._(`[Yesterday at] LT`), + sameDay: i18n._(`[Today at] LT`), + nextDay: i18n._(`[Tomorrow at] LT`), + lastWeek: i18n._(`[Last] dddd [at] LT`), + nextWeek: i18n._(`dddd [at] LT`), + sameElse: "L", + }; + + // merge locale options + const options = { + ...language.localeOptions, + ...localeOptions, + }; + + updateTimeLocaleOptions(options, target, locale); +} + +/** + * Update dayjs locale given locale options + * @param options Options + * @param target Target locale (uses current if none specified) + * @param useLocale Override locale data + */ +export function updateTimeLocaleOptions( + options: LocaleOptions, + target?: string, + useLocale?: ILocale, +) { + const [currentTarget, currentLocale] = timeLocale(); + target = target ?? currentTarget; + useLocale = useLocale ?? currentLocale; + + const locale = { + ...useLocale, + formats: { + ...useLocale.formats, + L: options.dateFormat ?? useLocale.formats.L, + LT: options.timeFormat ?? useLocale.formats.LT, + }, + }; + + setTimeLocale([target, locale]); +} + +/** + * Initialisation function + */ +export function initTime() { + loadTimeLocale(Languages.en, {}, locale_en_GB); +} + +/** + * Create dayjs time objects with locale and extensions + * @returns Dayjs creator + */ +export function useTime() { + // eslint-disable-next-line solid/reactivity + return (date?: dayjs.ConfigType) => dayjs(date).locale(...timeLocale()); +} + +/** + * Define a custom en_US locale because dayjs doesn't include an exhaustive definition + */ +const locale_en_US: ILocale & { yearStart: number } = { + name: "en", + weekdays: locale_en_GB["weekdays"], + weekdaysShort: locale_en_GB["weekdaysShort"], + weekdaysMin: locale_en_GB["weekdaysMin"], + months: locale_en_GB["months"], + monthsShort: locale_en_GB["monthsShort"], + weekStart: locale_en_GB["weekStart"], + yearStart: (locale_en_GB as never as { yearStart: number })["yearStart"], + relativeTime: locale_en_GB["relativeTime"], + formats: { + LT: "h:mm A", + LTS: "h:mm:ss A", + L: "MM/DD/YYYY", + LL: "MMMM D, YYYY", + LLL: "MMMM D, YYYY h:mm A", + LLLL: "dddd, MMMM D, YYYY h:mm A", + }, + ordinal: locale_en_GB["ordinal"], +}; + +const LOCALE_OVERRIDES: Record = { + "en-gb": locale_en_GB, + en: locale_en_US, +}; diff --git a/packages/client/components/i18n/errors.ts b/packages/client/components/i18n/errors.ts new file mode 100644 index 00000000..8378a3ce --- /dev/null +++ b/packages/client/components/i18n/errors.ts @@ -0,0 +1,146 @@ +import { useLingui } from "@lingui-solid/solid/macro"; +import { API } from "upryzing.js"; + +/** + * Translate any error + */ +export function useError() { + const { t } = useLingui(); + + return (error: unknown) => { + // TODO: HTTP errors + + // handle Revolt API errors + if ( + (error as { type?: never } | undefined)?.type && + typeof (error as { type: never }).type === "string" + ) { + const err = error as API.Error; + + switch (err.type) { + case "AlreadyFriends": + return t`Already friends with this user.`; + case "AlreadyInGroup": + return t`You're already part of this group.`; + case "AlreadyInServer": + return t`You're already part of this server.`; + case "AlreadyOnboarded": + return t`Your user has already been created? Try logging in again or refreshing the app.`; + case "AlreadyPinned": + return t`This message is already pinned.`; + case "AlreadySentRequest": + return t`You've already sent a request to this user.`; + case "Banned": + return t`You are banned from this server.`; + case "Blocked": + return t`You have this user blocked.`; + case "BlockedByOther": + return t`This user has blocked you.`; + case "BotIsPrivate": + return t`This bot is private and can only be added by the creator.`; + case "CannotEditMessage": + return t`Cannot edit this message.`; + case "CannotGiveMissingPermissions": + return t`You cannot give yourself missing permissions.`; + case "CannotJoinCall": + return t`You cannot join this call.`; + case "CannotRemoveYourself": + return t`You cannot remove yourself.`; + case "CannotReportYourself": + return t`You cannot report yourself.`; + case "CannotTimeoutYourself": + return t`You cannot timeout yourself.`; + case "DatabaseError": + return t`Database error, please contact support. (${err.location})`; + case "DiscriminatorChangeRatelimited": + return t`Your discriminator change has been ratelimited, please try again later.`; + case "DuplicateNonce": + return t`This has already been sent.`; + case "EmptyMessage": + return t`This message is empty and has not been sent.`; + case "FailedValidation": + return t`Something is wrong with your request, ${err.error}.`; + case "FeatureDisabled": + return t`This feature is currently disabled.`; + case "FileTypeNotAllowed": + return t`This file type is not allowed.`; + case "GroupTooLarge": + return t`This group is too large, you can have up to ${err.max} users.`; + case "ImageProcessingFailed": + return t`Failed to process the image you provided.`; + case "InternalError": + return t`An internal error occurred. (${err.location})`; + case "InvalidCredentials": + return t`Provided email or password is wrong.`; + case "InvalidSession": + return t`Please log in again.`; + case "InvalidUsername": + return t`This username is not allowed.`; + case "MissingPermission": + case "MissingUserPermission": + return t`You do not have permission to do this.`; + case "NoEffect": + return t`That action had no effect.`; + case "NotElevated": + return t`Your role ranking is too low to take this action.`; + case "NotFound": + return t`Could not find what you requested.`; + case "ReachedMaximumBots": + return t`You've reached your personal bot limit.`; + case "UsernameTaken": + return t`This username is already taken.`; + case "TooManyEmoji": + return t`You can't have more than ${err.max} emojis on this server.`; + case "TooManyChannels": + return t`You can't have more than ${err.max} channels on this server.`; + case "TooManyServers": + return t`You can't be in more than ${err.max} servers, please leave one and try again.`; + case "TooManyPendingFriendRequests": + return t`You've sent too many friend requests, the maximum is ${err.max}`; + case "PayloadTooLarge": + return t`Your message is too long, please remove some characters and try again.`; + + // unreachable errors (in theory) + case "FileTooLarge": + case "FileTooSmall": + case "InvalidFlagValue": + case "InvalidOperation": + case "InvalidProperty": + case "InvalidRole": + case "IsBot": + case "IsNotBot": + case "LabelMe": + case "NoEmbedData": + case "NotAuthenticated": + case "NotFriends": + case "NotInGroup": + case "NotOwner": + case "NotPinned": + case "NotPrivileged": + case "ProxyError": + case "TooManyAttachments": // todo: maybe handle these: + case "TooManyEmbeds": + case "TooManyReplies": + case "TooManyRoles": // ... to here + case "UnknownAttachment": + case "UnknownChannel": + case "UnknownMessage": + case "UnknownServer": + case "UnknownUser": + case "VosoUnavailable": + return err.type + " " + err.location; + } + } + + // pass-through pre-localised errors with new Error({ message: <> }) + if ( + (error as { message?: never } | undefined)?.message && + typeof (error as { message: never }).message === "string" + ) { + const message = (error as { message: string }).message.trim(); + if (message) return message; + } + + return t`Something went wrong! Try again later.`; + }; +} diff --git a/packages/client/components/i18n/index.tsx b/packages/client/components/i18n/index.tsx index cb0dfda0..85f4a951 100644 --- a/packages/client/components/i18n/index.tsx +++ b/packages/client/components/i18n/index.tsx @@ -1,60 +1,39 @@ -import { - createContext, - createSignal, - useContext, - useTransition, -} from "solid-js"; +import type { JSX } from "solid-js"; -import * as i18n from "@solid-primitives/i18n"; +import { I18nProvider as LinguiProvider } from "@lingui-solid/solid"; +import { i18n } from "@lingui/core"; -import { Language, Languages } from "./locales/Languages"; -import en from "./locales/en.json"; +import { type LocaleOptions, Language, Languages } from "./Languages"; +import { messages as en } from "./catalogs/en/messages"; +import { initTime, loadTimeLocale } from "./dayjs"; -export { Language, Languages } from "./locales/Languages"; -export * from "./dayjs"; - -/** - * Default dictionary object - */ -export const dict = { - en, -}; - -export type RawDictionary = typeof dict.en; -export type Dictionary = i18n.Flatten; - -/** - * Currently set language - */ -const [language, _setLanguage] = createSignal("en" as Language); -export { language }; - -/** - * Use translation function as a hook - */ - -export const I18nContext = createContext( - i18n.translator(() => i18n.flatten(dict.en), i18n.resolveTemplate) -); - -export const useTranslation = () => useContext(I18nContext); - -const [duringI18nTransition, startI18nTransition] = useTransition(); +export function I18nProvider(props: { children: JSX.Element }) { + return {props.children}; +} -export { duringI18nTransition }; +export { Language, Languages } from "./Languages"; +export { timeLocale, useTime } from "./dayjs"; +export { useError } from "./errors"; + +export async function loadAndSwitchLocale( + key: Language, + localeOptions: LocaleOptions, +) { + if (key !== i18n.locale) { + const data = + Languages[key].i18n === "en" + ? en + : (await import(`./catalogs/${Languages[key].i18n}/messages.ts`)) + .messages; + + i18n.load({ + [key]: data, + }); -export async function fetchLanguage(key: Language): Promise { - const data = (await import( - `./locales/${Languages[key].i18n}.json` - )) as typeof dict.en; - return i18n.flatten(data); -} + i18n.activate(key); -/** - * Set a language by the given key - */ -export function setLanguage(key: Language) { - startI18nTransition(() => _setLanguage(key)); + loadTimeLocale(Languages[key], localeOptions); + } } /** @@ -63,7 +42,7 @@ export function setLanguage(key: Language) { */ export function browserPreferredLanguage() { const languages = Object.keys(Languages).map( - (x) => [x, Languages[x as keyof typeof Languages]] as const + (x) => [x, Languages[x as keyof typeof Languages]] as const, ); // Get the user's system language. Check for exact @@ -81,12 +60,16 @@ export function browserPreferredLanguage() { } /** - * Use quantity translation function as a hook + * Initialise i18n engine */ -export const useQuantity = () => { - const t = useTranslation(); - return (id: "members" | "dropFiles", count: number) => - t(`quantities.${id}.${count > 1 ? "many" : "one"}`, { - count: count.toString(), - }); -}; +export function initI18n() { + i18n.load({ + en, + }); + + i18n.activate("en"); + + initTime(); +} + +initI18n(); diff --git a/packages/client/components/keybinds/actions.ts b/packages/client/components/keybinds/actions.ts deleted file mode 100644 index 7212331d..00000000 --- a/packages/client/components/keybinds/actions.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { KeyComboSequence } from "."; - -export enum KeybindAction { - // Navigation - NavigateChannelUp = "navigate_channel_up", - NavigateChannelDown = "navigate_channel_down", - NavigateServerUp = "navigate_server_up", - NavigateServerDown = "navigate_server_down", - - AutoCompleteUp = "auto_complete_up", - AutoCompleteDown = "auto_complete_down", - AutoCompleteSelect = "auto_complete_select", - - NavigatePreviousContext = "navigate_previous_context", - NavigatePreviousContextModal = "navigate_previous_context_modal", - NavigatePreviousContextSettings = "navigate_previous_context_settings", - - InputSubmit = "input_submit", - InputCancel = "input_cancel", - InputForceSubmit = "input_force_submit", - - MessagingMarkChannelRead = "messaging_mark_channel_read", - MessagingScrollToBottom = "messaging_scroll_to_bottom", - MessagingEditPreviousMessage = "messaging_edit_previous_message", - - // Developer - DeveloperToggleAllExperiments = "developer_toggle_all_experiments", -} - -export type KeybindActions = Record; diff --git a/packages/client/components/keybinds/index.ts b/packages/client/components/keybinds/index.ts deleted file mode 100644 index 661dbbaf..00000000 --- a/packages/client/components/keybinds/index.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { debounce } from "@revolt/common"; - -// note: order dependent! -export const KEYBINDING_MODIFIER_KEYS = ["Control", "Alt", "Meta", "Shift"]; - -/** - * Keys that must be pressed at the same time, order should not matter. - * Should only be include modifiers and one key at the moment. - */ -export type KeyCombo = string[]; -export type KeyComboSequence = KeyCombo[]; - -export const KeyCombo = { - fromKeyboardEvent(event: KeyboardEvent): KeyCombo { - const pressed = KEYBINDING_MODIFIER_KEYS.filter((key) => - event.getModifierState(key) - ); - - if (!KEYBINDING_MODIFIER_KEYS.includes(event.key)) { - pressed.push(event.key.replace(" ", "Space")); - } - - return pressed; - }, - - // todo: add matches function to better handle browser inconsistencies - // todo: handle undefines better - matches(keyComboA?: KeyCombo, keyComboB?: KeyCombo) { - return ( - keyComboA?.length == keyComboB?.length && - keyComboA?.every((key, i) => key == keyComboB?.[i]) - ); - }, -}; - -export const KeybindSequence = { - /** - * Parse a stringified keybind seqeuence. - * - * @example - * ``` - * parse('Alt+ArrowUp') - * parse('Control+k b') - * ``` - */ - parse(sequence: string): KeyComboSequence { - return sequence.split(" ").map((expr) => expr.split("+")); - }, - - /** Stringify a keybind sequence */ - stringify(sequence: KeyComboSequence) { - return sequence.map((combo) => combo.join("+")).join(" "); - }, - - /** Checks to see if two key sequences match */ - matches(keySequenceA?: KeyComboSequence, keySequenceB?: KeyComboSequence) { - return ( - keySequenceA?.length == keySequenceB?.length && - keySequenceA?.every((key, i) => KeyCombo.matches(key, keySequenceB?.[i])) - ); - }, -}; - -// having the type be 'keybind' would be more idiomatic but this works better as an api -export class KeybindEvent extends KeyboardEvent { - constructor(public action: T, eventInitDict?: KeyboardEventInit | undefined) { - super(action, eventInitDict); - } -} - -export class KeybindEventHandler< - KeybindAction extends string -> extends EventTarget { - possibleSequences = new Map(); - - // todo: measure memory and performance between this and manually setting a `keybinds` property - constructor( - public getKeybinds: () => Record - ) { - super(); - } - - resetPossibleSequences = () => - debounce(() => this.possibleSequences.clear(), 1000); - - handleEvent(event: Event) { - if (!(event instanceof KeyboardEvent)) return; - if (event.repeat) return; - - const combo = KeyCombo.fromKeyboardEvent(event); - - const keybinds = this.getKeybinds(); - actionLoop: for (const action in keybinds) { - const keybindings = keybinds[action as KeybindAction]; - for (const sequence of keybindings) { - // skip unassigned keybinds - if (sequence.length === 0) continue; - - const expectedSequence = - this.possibleSequences.get(sequence) ?? sequence; - - const matched = KeyCombo.matches(expectedSequence[0], combo); - - if (matched) { - if (expectedSequence.length > 1) { - this.possibleSequences.set(sequence, expectedSequence.slice(1)); - } else { - this.possibleSequences.delete(sequence); - console.info("dispatch", action, event); - this.dispatchEvent( - new KeybindEvent(action as KeybindAction, event) - ); - break actionLoop; - } - } else if (KEYBINDING_MODIFIER_KEYS.includes(event.key)) { - this.possibleSequences.delete(sequence); - } - } - } - - this.resetPossibleSequences(); - } - - // todo: use typed event target, internal events, or solid events? - declare addEventListener: ( - type: KeybindAction, - callback: - | ((event: KeybindEvent) => void) - | EventListenerObject - | null, - options?: AddEventListenerOptions | boolean - ) => void; - - /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */ - declare dispatchEvent: (event: KeybindEvent) => boolean; - - /** Removes the event listener in target's event listener list with the same type, callback, and options. */ - declare removeEventListener: ( - type: KeybindAction, - callback: - | ((event: KeybindEvent) => void) - | EventListenerObject - | null, - options?: EventListenerOptions | boolean - ) => void; -} - -export * from "./actions"; diff --git a/packages/client/components/keybinds/index.tsx b/packages/client/components/keybinds/index.tsx new file mode 100644 index 00000000..b8444862 --- /dev/null +++ b/packages/client/components/keybinds/index.tsx @@ -0,0 +1,2 @@ +export { KeybindAction } from "./keybindActions"; +export { Keybind, KeybindContext, createKeybind } from "./keybindHandler"; diff --git a/packages/client/components/keybinds/keybindActions.ts b/packages/client/components/keybinds/keybindActions.ts new file mode 100644 index 00000000..8b90753c --- /dev/null +++ b/packages/client/components/keybinds/keybindActions.ts @@ -0,0 +1,127 @@ +import { ReactiveSet } from "@solid-primitives/set"; + +export enum KeybindAction { + /** + * Navigate to channel above current channel + */ + NAVIGATION_CHANNEL_UP = "navigation_channel_up", + + /** + * Navigate to channel below current channel + */ + NAVIGATION_CHANNEL_DOWN = "navigation_channel_down", + + /** + * Navigate to server above current server + */ + NAVIGATION_SERVER_UP = "navigation_server_up", + + /** + * Navigate to server below current server + */ + NAVIGATION_SERVER_DOWN = "navigation_server_down", + + /** + * Mark channel as read, jump to the end of conversation, and focus composition + */ + CHAT_JUMP_END = "chat_jump_end", + + /** + * Mark server as read + */ + CHAT_MARK_SERVER_AS_READ = "chat_mark_server_as_read", + + /** + * Focus the message composition + */ + CHAT_FOCUS_COMPOSITION = "chat_focus_composition", + + /** + * Remove attachment or reply from message composition + */ + CHAT_REMOVE_COMPOSITION_ELEMENT = "chat_remove_composition_element", + + /** + * Cancel editing the current message + */ + CHAT_CANCEL_EDITING = "chat_cancel_editing", + + /** + * Close the currently active modal + */ + CLOSE_MODAL = "close_modal", + + /** + * Close the currently floating element + */ + CLOSE_FLOATING = "close_floating", + + /** + * Close the open and ephemeral sidebar + */ + CLOSE_SIDEBAR = "close_sidebar", +} + +/** + * Priority of actions relative to each other + */ +export const ACTION_PRIORITY: KeybindAction[] = [ + // 'Escape' bindings + KeybindAction.CLOSE_FLOATING, + KeybindAction.CLOSE_MODAL, + KeybindAction.CLOSE_SIDEBAR, + KeybindAction.CHAT_CANCEL_EDITING, + KeybindAction.CHAT_REMOVE_COMPOSITION_ELEMENT, + KeybindAction.CHAT_MARK_SERVER_AS_READ, + KeybindAction.CHAT_JUMP_END, + + // Navigation conflicts + KeybindAction.NAVIGATION_SERVER_UP, + KeybindAction.NAVIGATION_SERVER_DOWN, + KeybindAction.NAVIGATION_CHANNEL_UP, + KeybindAction.NAVIGATION_CHANNEL_DOWN, + + // ... all others + KeybindAction.CHAT_FOCUS_COMPOSITION, +]; + +/** + * Filter keybinds with special logic + * @param keybind Keybind to filter + * @param currentlyBound Other keybinds currently bound + * @returns Whether to include this keybind + */ +export function keybindFilter( + keybind: KeybindAction, + activeKeys: ReactiveSet, + currentlyBound: Record, + target: HTMLElement | null, +) { + if (keybind === KeybindAction.CHAT_FOCUS_COMPOSITION) { + // don't allow focusing if modal/floating is open + // or if we're editing a message + if ( + currentlyBound[KeybindAction.CLOSE_FLOATING] || + currentlyBound[KeybindAction.CLOSE_MODAL] || + currentlyBound[KeybindAction.CHAT_CANCEL_EDITING] + ) + return false; + + // don't allow focusing if another input element is currently being typed into + if ( + target instanceof HTMLInputElement || + target instanceof HTMLTextAreaElement || + target?.nodeName === "MDUI-TEXT-FIELD" + ) + return false; + + // don't allow focusing if modifier key is pressed... except for paste + if ( + (activeKeys.has("Control") || activeKeys.has("Meta")) && + !(activeKeys.has("v") || activeKeys.has("a")) + ) + return false; + } + + return true; +} diff --git a/packages/client/components/keybinds/keybindHandler.tsx b/packages/client/components/keybinds/keybindHandler.tsx new file mode 100644 index 00000000..203172f6 --- /dev/null +++ b/packages/client/components/keybinds/keybindHandler.tsx @@ -0,0 +1,180 @@ +import { + type JSXElement, + createContext, + createEffect, + onCleanup, + useContext, +} from "solid-js"; + +import { ReactiveSet } from "@solid-primitives/set"; + +import { + ACTION_PRIORITY, + KeybindAction, + keybindFilter, +} from "./keybindActions"; +import { DEFAULT_MAC_SEQUENCES, DEFAULT_SEQUENCES } from "./keybindSequences"; + +type KeybindContext = { + createKeybind: (keybind: KeybindAction, callback: () => void) => void; +}; + +const keybindContext = createContext(null! as KeybindContext); + +export function KeybindContext(props: { children: JSXElement }) { + /** + * Last event target, used for filtering + */ + let target: HTMLElement | null; + + /** + * Keep track of pressed keys to match sequences + */ + const activeKeys = new ReactiveSet(); + + /** + * Keep track of which keybinds are currently bound + * to filter the firing keybindings list + */ + const currentlyBound = ACTION_PRIORITY.reduce( + (d, k) => ({ ...d, [k]: 0 }), + {} as Record, + ); + + /** + * Sequences for use + */ + const sequences = navigator.platform.startsWith("Mac") + ? DEFAULT_MAC_SEQUENCES + : DEFAULT_SEQUENCES; + + /** + * Get the currently firing keybind + */ + function firing() { + return ( + ACTION_PRIORITY + // filter to those keybinds that are bound + .filter((keybind) => currentlyBound[keybind]) + // apply custom filtering logic + .filter((keybind) => + keybindFilter(keybind, activeKeys, currentlyBound, target), + ) + // check whether the keybind is being pressed + .filter((keybind) => + sequences[keybind].every((key) => + key instanceof RegExp + ? [...activeKeys].findIndex((item) => key.test(item)) !== -1 + : activeKeys.has(key), + ), + ) + // return the highest priority keybind + .shift() + ); + } + + /** + * Debug currently pressed sequences + */ + if (import.meta.env.DEV) { + createEffect(() => + console.debug( + "[keybinds] Currently pressing", + [...activeKeys], + "which selects", + ACTION_PRIORITY + // filter to those keybinds that are bound + .filter((keybind) => currentlyBound[keybind]) + // apply custom filtering logic + .filter((keybind) => + keybindFilter(keybind, activeKeys, currentlyBound, target), + ) + // check whether the keybind is being pressed + .reduce( + (d, keybind) => ({ + ...d, + [keybind]: sequences[keybind].every((key) => + key instanceof RegExp + ? [...activeKeys].findIndex((item) => key.test(item)) !== -1 + : activeKeys.has(key), + ), + }), + {}, + ), + ), + ); + } + + /** + * Check whether a given keybind fired + * @param keybind Keybind + */ + function isFired(keybind: KeybindAction) { + return firing() === keybind; + } + + /** + * Handle key down event by adding it to active keys + */ + function onKeyDown(event: KeyboardEvent) { + target = event.target as HTMLElement; + activeKeys.add(event.key); + } + + /** + * Handle key up event by removing it from active keys + */ + function onKeyUp(event: KeyboardEvent) { + target = event.target as HTMLElement; + activeKeys.delete(event.key); + } + + document.body.addEventListener("keydown", onKeyDown); + document.body.addEventListener("keyup", onKeyUp); + + onCleanup(() => { + document.body.removeEventListener("keydown", onKeyDown); + document.body.removeEventListener("keyup", onKeyUp); + }); + + return ( + currentlyBound[keybind]--); + + createEffect(() => { + const _ = [...activeKeys]; // track dependency + if (isFired(keybind)) { + callback(); + } + }); + }, + }} + > + {props.children} + + ); +} + +/** + * Wrapper for contextual createKeybind function + * @param keybind Keybind + * @param callback Callback + */ +export function createKeybind(keybind: KeybindAction, callback: () => void) { + const { createKeybind } = useContext(keybindContext); + createKeybind(keybind, callback); +} + +/** + * Declarative keybind component + */ +export function Keybind(props: { + keybind: KeybindAction; + onPressed: () => void; +}) { + createEffect(() => createKeybind(props.keybind, props.onPressed)); + return null; +} diff --git a/packages/client/components/keybinds/keybindSequences.ts b/packages/client/components/keybinds/keybindSequences.ts new file mode 100644 index 00000000..d3e088dc --- /dev/null +++ b/packages/client/components/keybinds/keybindSequences.ts @@ -0,0 +1,47 @@ +import { KeybindAction } from "./keybindActions"; + +/** + * Sequences are a set of keys that must be pressed at the same time + */ +export const DEFAULT_SEQUENCES: Record = { + [KeybindAction.NAVIGATION_CHANNEL_UP]: ["Alt", "ArrowDown"], + [KeybindAction.NAVIGATION_CHANNEL_DOWN]: ["Alt", "ArrowDown"], + [KeybindAction.NAVIGATION_SERVER_UP]: ["Control", "Alt", "ArrowUp"], + [KeybindAction.NAVIGATION_SERVER_DOWN]: ["Control", "Alt", "ArrowDown"], + [KeybindAction.CHAT_JUMP_END]: ["Escape"], + [KeybindAction.CHAT_MARK_SERVER_AS_READ]: ["Shift", "Escape"], + [KeybindAction.CHAT_FOCUS_COMPOSITION]: [/^[a-z0-9]$/], + [KeybindAction.CHAT_REMOVE_COMPOSITION_ELEMENT]: ["Escape"], + [KeybindAction.CHAT_CANCEL_EDITING]: ["Escape"], + [KeybindAction.CLOSE_MODAL]: ["Escape"], + [KeybindAction.CLOSE_FLOATING]: ["Escape"], + [KeybindAction.CLOSE_SIDEBAR]: ["Escape"], +}; + +/** + * Sequences are a set of keys that must be pressed at the same time + * (macOS version) + */ +export const DEFAULT_MAC_SEQUENCES: Record = + { + [KeybindAction.NAVIGATION_CHANNEL_UP]: ["Alt" /* Command */, "ArrowUp"], + [KeybindAction.NAVIGATION_CHANNEL_DOWN]: ["Alt" /* Command */, "ArrowDown"], + [KeybindAction.NAVIGATION_SERVER_UP]: [ + "Control", + "Alt" /* Command */, + "ArrowUp", + ], + [KeybindAction.NAVIGATION_SERVER_DOWN]: [ + "Control", + "Alt" /* Command */, + "ArrowDown", + ], + [KeybindAction.CHAT_JUMP_END]: ["Escape"], + [KeybindAction.CHAT_MARK_SERVER_AS_READ]: ["Shift", "Escape"], + [KeybindAction.CHAT_FOCUS_COMPOSITION]: [/^[a-z0-9]$/], + [KeybindAction.CHAT_REMOVE_COMPOSITION_ELEMENT]: ["Escape"], + [KeybindAction.CHAT_CANCEL_EDITING]: ["Escape"], + [KeybindAction.CLOSE_MODAL]: ["Escape"], + [KeybindAction.CLOSE_FLOATING]: ["Escape"], + [KeybindAction.CLOSE_SIDEBAR]: ["Escape"], + }; diff --git a/packages/client/components/markdown/elements.ts b/packages/client/components/markdown/elements.ts index b0c09f3d..ccd87761 100644 --- a/packages/client/components/markdown/elements.ts +++ b/packages/client/components/markdown/elements.ts @@ -7,8 +7,8 @@ const inlineCodeStyles: SystemStyleObject = { padding: "1px 4px", borderRadius: "var(--borderRadius-md)", - color: "var(--colours-messaging-component-code-block-foreground)", - background: "var(--colours-messaging-component-code-block-background)", + color: "#c9d1d9", + background: "#0d1117", }; export const paragraph = styled("p", { @@ -18,13 +18,13 @@ export const paragraph = styled("p", { variants: { emojiSize: { small: { - "--emoji-size": "var(--layout-emoji-small)", + // inherit default }, medium: { - "--emoji-size": "var(--layout-emoji-medium)", + "--emoji-size": "var(--emoji-size-medium)", }, large: { - "--emoji-size": "var(--layout-emoji-large)", + "--emoji-size": "var(--emoji-size-large)", }, }, }, @@ -36,6 +36,18 @@ export const emphasis = styled("em", { }, }); +export const strong = styled("strong", { + base: { + fontWeight: "bold", + }, +}); + +export const strikethrough = styled("del", { + base: { + textDecoration: "line-through", + }, +}); + export const heading1 = styled("h1", { base: { fontSize: "2em", @@ -101,8 +113,18 @@ export const orderedList = styled("ol", { base: { listStylePosition: "outside", paddingLeft: "1.5em", + listStyleType: "none", + counterReset: "list-counter var(--start-number, 0)", + + "& li": { + display: "list-item", + counterIncrement: "list-counter", - listStyleType: "decimal", + "&::before": { + content: 'counter(list-counter) ". "', + fontWeight: "inherit", + }, + }, }, }); @@ -110,11 +132,25 @@ export const blockquote = styled("blockquote", { base: { margin: "var(--gap-sm) 0", padding: "var(--gap-sm) var(--gap-md)", - borderRadius: "var(--borderRadius-md)", - color: "var(--colours-messaging-component-blockquote-foreground)", - background: "var(--colours-messaging-component-blockquote-background)", - borderInlineStart: - "var(--gap-sm) solid var(--colours-messaging-component-blockquote-foreground)", + borderRadius: "var(--borderRadius-sm)", + borderInlineStart: "var(--gap-sm) solid var(--border)", + + "&, & > blockquote > blockquote": { + color: "var(--md-sys-color-on-secondary-container)", + background: "var(--md-sys-color-secondary-container)", + "--border": "var(--md-sys-color-secondary)", + }, + + "& > blockquote, & > blockquote > blockquote > blockquote": { + color: "var(--md-sys-color-on-tertiary-container)", + background: "var(--md-sys-color-tertiary-container)", + "--border": "var(--md-sys-color-tertiary)", + }, + + "& blockquote": { + borderBlock: "1px solid var(--border)", + borderInlineEnd: "1px solid var(--border)", + }, }, }); @@ -128,14 +164,14 @@ export const tableHeader = styled("th", { base: { fontWeight: 600, padding: "var(--gap-sm)", - border: "1px solid var(--colours-foreground)", + border: "1px solid var(--md-sys-color-outline)", }, }); export const tableElement = styled("td", { base: { padding: "var(--gap-sm)", - border: "1px solid var(--colours-foreground)", + border: "1px solid var(--md-sys-color-outline)", }, }); diff --git a/packages/client/components/markdown/emoji/CustomEmoji.tsx b/packages/client/components/markdown/emoji/CustomEmoji.tsx index d2f2361d..4f1d5ae0 100644 --- a/packages/client/components/markdown/emoji/CustomEmoji.tsx +++ b/packages/client/components/markdown/emoji/CustomEmoji.tsx @@ -11,7 +11,7 @@ export function CustomEmoji( props: { id: string } & Omit< ComponentProps, "loading" | "class" | "draggable" | "src" - > + >, ) { const [local, remote] = splitProps(props, ["id"]); const client = useClient(); diff --git a/packages/client/components/markdown/emoji/Emoji.tsx b/packages/client/components/markdown/emoji/Emoji.tsx index 5f65eaf6..bedbdd1a 100644 --- a/packages/client/components/markdown/emoji/Emoji.tsx +++ b/packages/client/components/markdown/emoji/Emoji.tsx @@ -10,12 +10,15 @@ import { CustomEmoji, UnicodeEmoji } from "."; export const EmojiBase = styled("img", { base: { objectFit: "contain", - display: "inline", + display: "inline-block", width: "var(--emoji-size)", height: "var(--emoji-size)", margin: "0 0.05em 0 0.1em", verticalAlign: "-0.3em", + // hide alt text + color: "transparent", + "&:before": { content: "' '", display: "block", diff --git a/packages/client/components/markdown/emoji/TextWithEmoji.tsx b/packages/client/components/markdown/emoji/TextWithEmoji.tsx index a7c93c21..ac8aa5a2 100644 --- a/packages/client/components/markdown/emoji/TextWithEmoji.tsx +++ b/packages/client/components/markdown/emoji/TextWithEmoji.tsx @@ -38,7 +38,7 @@ export function TextWithEmoji(props: { content?: string }) { ) : ( - ) + ), ); match = RE_ANY_EMOJI.exec(content); diff --git a/packages/client/components/markdown/emoji/UnicodeEmoji.tsx b/packages/client/components/markdown/emoji/UnicodeEmoji.tsx index 3728278c..f204777e 100644 --- a/packages/client/components/markdown/emoji/UnicodeEmoji.tsx +++ b/packages/client/components/markdown/emoji/UnicodeEmoji.tsx @@ -1,15 +1,73 @@ import { ComponentProps, splitProps } from "solid-js"; +import emojiRegex from "emoji-regex"; + import { EmojiBase, toCodepoint } from "."; +export type UnicodeEmojiPacks = + | "fluent-3d" + | "fluent-color" + | "fluent-flat" + | "mutant" + | "noto" + | "openmoji" + | "twemoji"; + +export const UNICODE_EMOJI_PACKS: UnicodeEmojiPacks[] = [ + "fluent-3d", + "fluent-color", + "fluent-flat", + "mutant", + "noto", + "openmoji", + "twemoji", +]; + +export const UNICODE_EMOJI_PACK_PUA: Record = { + // omit fluent-3d as it is the default (canonically \uE0E1) + "fluent-flat": "\uE0E2", + mutant: "\uE0E3", + noto: "\uE0E4", + openmoji: "\uE0E5", + twemoji: "\uE0E6", +}; + +/** + * Regex for matching emoji + */ +export const RE_UNICODE_EMOJI = new RegExp( + "([\uE0E0-\uE0E6]?(?:" + emojiRegex().source + "))", + "g", +); + +export const UNICODE_EMOJI_MIN_PACK = "\uE0E0".codePointAt(0)!; +export const UNICODE_EMOJI_MAX_PACK = "\uE0E6".codePointAt(0)!; + +export const UNICODE_EMOJI_PUA_PACK: Record = { + ["\uE0E0"]: "fluent-3d", // default entry + ["\uE0E1"]: "fluent-3d", + ["\uE0E2"]: "fluent-flat", + ["\uE0E3"]: "mutant", + ["\uE0E4"]: "noto", + ["\uE0E5"]: "openmoji", + ["\uE0E6"]: "twemoji", +}; + +export function unicodeEmojiUrl( + pack: UnicodeEmojiPacks = "fluent-3d", + text: string, +) { + return `https://static.stoat.chat/emoji/${pack}/${toCodepoint(text)}.svg?v=1`; +} + /** * Display Unicode emoji */ export function UnicodeEmoji( - props: { emoji: string } & Omit< + props: { emoji: string; pack?: UnicodeEmojiPacks } & Omit< ComponentProps, "loading" | "class" | "alt" | "draggable" | "src" - > + >, ) { const [local, remote] = splitProps(props, ["emoji"]); @@ -20,9 +78,7 @@ export function UnicodeEmoji( class="emoji" alt={local.emoji} draggable={false} - src={`https://static.revolt.chat/emoji/fluent-3d/${toCodepoint( - local.emoji - )}.svg?v=1`} + src={unicodeEmojiUrl(props.pack, props.emoji)} /> ); } diff --git a/packages/client/components/markdown/emoji/index.ts b/packages/client/components/markdown/emoji/index.ts index b70cebe7..254c3faa 100644 --- a/packages/client/components/markdown/emoji/index.ts +++ b/packages/client/components/markdown/emoji/index.ts @@ -1,4 +1,4 @@ export { CustomEmoji } from "./CustomEmoji"; +export { Emoji, EmojiBase } from "./Emoji"; export { UnicodeEmoji } from "./UnicodeEmoji"; -export { EmojiBase, Emoji } from "./Emoji"; export * from "./util"; diff --git a/packages/client/components/markdown/emoji/util.ts b/packages/client/components/markdown/emoji/util.ts index 5238f989..8f42c68a 100644 --- a/packages/client/components/markdown/emoji/util.ts +++ b/packages/client/components/markdown/emoji/util.ts @@ -11,8 +11,8 @@ export const RE_CUSTOM_EMOJI = /:([0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}):/g; * Regex for any emoji */ export const RE_ANY_EMOJI = new RegExp( - RE_CUSTOM_EMOJI.source + "|" + emojiRegex().source, - "g" + RE_CUSTOM_EMOJI.source + "|[\uE0E0-\uE0E6]?(?:" + emojiRegex().source + ")", + "g", ); /** @@ -31,7 +31,7 @@ export function isOnlyEmoji(text: string) { */ export function injectEmojiSize( props: MarkdownProps, - hastNode: { children?: { properties: Record }[] } + hastNode: { children?: { properties: Record }[] }, ) { const content = props.content ?? ""; @@ -85,7 +85,7 @@ export function toCodepoint(input: string) { pairs.push( (input.charCodeAt(i) - 0xd800) * 0x400 + (input.charCodeAt(i + 1) - 0xdc00) + - 0x10000 + 0x10000, ); } } else if (input.charCodeAt(i) < 0xd800 || input.charCodeAt(i) > 0xdfff) { diff --git a/packages/client/components/markdown/index.tsx b/packages/client/components/markdown/index.tsx index c884d9c1..e40cfc62 100644 --- a/packages/client/components/markdown/index.tsx +++ b/packages/client/components/markdown/index.tsx @@ -1,8 +1,8 @@ -import { createEffect, createResource, createSignal, on } from "solid-js"; +import { ComponentProps, JSX, createEffect, createSignal, on } from "solid-js"; -import rehypeShiki from "@shikijs/rehype"; import "katex/dist/katex.min.css"; import { html } from "property-information"; +import rehypeHighlight from "rehype-highlight"; import rehypeKatex from "rehype-katex"; import remarkBreaks from "remark-breaks"; import remarkGfm from "remark-gfm"; @@ -28,6 +28,7 @@ import { mentionHandler, remarkMentions, } from "./plugins/mentions"; +import { remarkLinkify } from "./plugins/remarkLinkify"; import { RenderSpoiler, remarkSpoiler, @@ -52,6 +53,24 @@ import { defaults } from "./solid-markdown/defaults"; */ const Null = () => null; +function RenderOrderedList(props: { + start?: string; + style?: Record; + [key: string]: unknown; +}) { + return ( + + ); +} + /** * Custom Markdown components */ @@ -65,6 +84,8 @@ const components = () => ({ a: RenderAnchor, p: elements.paragraph, em: elements.emphasis, + strong: elements.strong, + del: elements.strikethrough, h1: elements.heading1, h2: elements.heading2, h3: elements.heading3, @@ -74,7 +95,7 @@ const components = () => ({ pre: RenderCodeblock, li: elements.listItem, ul: elements.unorderedList, - ol: elements.orderedList, + ol: RenderOrderedList, blockquote: elements.blockquote, table: elements.table, th: elements.tableHeader, @@ -94,24 +115,97 @@ const components = () => ({ style: Null, }); +const replyComponents = () => ({ + unicodeEmoji: RenderUnicodeEmoji, + customEmoji: RenderCustomEmoji, + mention: (props: ComponentProps) => { + // eslint-disable-next-line solid/reactivity + props.disabled = true; + return RenderMention(props); + }, + spoiler: (props: ComponentProps) => { + // eslint-disable-next-line solid/reactivity + props.disabled = true; + return RenderSpoiler(props); + }, + a: (props: ComponentProps) => { + // eslint-disable-next-line solid/reactivity + props.disabled = true; + return RenderAnchor(props); + }, + + strong: elements.strong, + em: elements.emphasis, + code: elements.code, + del: elements.strikethrough, + + p: (props: { children: JSX.Element }) => <>{props.children}, + h1: (props: { children: JSX.Element }) => <>{props.children}, + h2: (props: { children: JSX.Element }) => <>{props.children}, + h3: (props: { children: JSX.Element }) => <>{props.children}, + h4: (props: { children: JSX.Element }) => <>{props.children}, + h5: (props: { children: JSX.Element }) => <>{props.children}, + h6: (props: { children: JSX.Element }) => <>{props.children}, + li: (props: { children: JSX.Element }) => <>{props.children}, + ul: (props: { children: JSX.Element }) => <>{props.children}, + ol: (props: { children: JSX.Element }) => <>{props.children}, + blockquote: (props: { children: JSX.Element }) => <>{props.children}, + td: (props: { children: JSX.Element }) => <>{props.children}, + th: (props: { children: JSX.Element }) => <>{props.children}, + time: RenderTimestamp, + timestamp: RenderTimestamp, + pre: Null, + table: Null, + img: Null, + video: Null, + figure: Null, + picture: Null, + source: Null, + audio: Null, + script: Null, + style: Null, +}); + /** * Unified Markdown renderer */ -const pipeline = unified() +export const unifiedPipeline = unified() .use(remarkParse) .use(remarkBreaks) .use(remarkGfm) .use(remarkMath, { // TODO: fork for \[\] support singleDollarTextMath: false, - }) - .use(remarkMentions) - .use(remarkTimestamps) - .use(remarkChannels) - .use(remarkUnicodeEmoji) - .use(remarkCustomEmoji) - .use(remarkSpoiler) - .use(remarkHtmlToText) + }); + +/** + * for schema only, todo: clean up + */ +export const UNIFIED_PLUGINS = [ + remarkMentions, + remarkTimestamps, + remarkChannels, + remarkUnicodeEmoji, + remarkCustomEmoji, + remarkSpoiler, + remarkHtmlToText, +]; + +const HTML_UNIFIED_PLUGINS = [ + remarkMentions, + remarkTimestamps, + remarkChannels, + remarkUnicodeEmoji, + remarkCustomEmoji, + remarkSpoiler, + remarkLinkify, + remarkHtmlToText, +]; + +const htmlPipeline = HTML_UNIFIED_PLUGINS.reduce( + (pipeline, plugin) => pipeline.use(plugin) as never, + unifiedPipeline, +) // @ts-expect-error non-standard elements not recognised by typing .use(remarkRehype, { handlers: { @@ -129,11 +223,29 @@ const pipeline = unified() trust: false, strict: false, output: "html", - errorColor: "var(--customColours-error-color)", + errorColor: "var(--md-sys-color-error)", }) - .use(rehypeShiki, { - theme: "github-dark", - }); + .use(rehypeHighlight); + +const replyPipeline = unified() + .use(remarkParse) + .use(remarkBreaks) + .use(remarkGfm) + .use(remarkMentions) + .use(remarkUnicodeEmoji) + .use(remarkCustomEmoji) + .use(remarkSpoiler) + .use(remarkLinkify) + // @ts-expect-error non-standard elements not recognized by typing + .use(remarkRehype, { + handlers: { + unicodeEmoji: unicodeEmojiHandler, + customEmoji: customEmojiHandler, + mention: mentionHandler, + spoiler: spoilerHandler, + }, + }) + .use(remarkInsertBreaks); export interface MarkdownProps { /** @@ -147,8 +259,32 @@ export interface MarkdownProps { disallowBigEmoji?: boolean; } -export { TextWithEmoji } from "./emoji/TextWithEmoji"; export { Emoji } from "./emoji/Emoji"; +export { TextWithEmoji } from "./emoji/TextWithEmoji"; + +export function renderSimpleMarkdown(content: string) { + const file = new VFile(); + file.value = sanitise(content); + + const hastNode = replyPipeline.runSync(replyPipeline.parse(file), file); + + if (hastNode.type !== "root") { + throw new TypeError("Expected a `root` node"); + } + + return childrenToSolid( + { + options: { + ...defaults, + // @ts-expect-error it doesn't like the td component + components: replyComponents(), + }, + schema: html, + listDepth: 0, + }, + hastNode, + ); +} /** * Remark renderer component @@ -158,26 +294,17 @@ export function Markdown(props: MarkdownProps) { * Render some given Markdown content * @param content content */ - async function render(content = "") { + function render(content = "") { const file = new VFile(); file.value = sanitise(content); - const parsedFile = pipeline.parse(file); - - let hastNode = await pipeline.run(parsedFile, file); - - console.log(hastNode.children); + const hastNode = htmlPipeline.runSync(htmlPipeline.parse(file), file); if (hastNode.type !== "root") { throw new TypeError("Expected a `root` node"); } - // @ts-expect-error i know. i know. this is fucking terrible. but shiki does some fuckery where the node is nothing and the *child* is the root. i have no clue why - if (hastNode.children[0].type === "root") { - hastNode = hastNode.children[0]; - } - - injectEmojiSize(props, hastNode as any); + injectEmojiSize(props, hastNode as never); return childrenToSolid( { @@ -189,22 +316,21 @@ export function Markdown(props: MarkdownProps) { schema: html, listDepth: 0, }, - hastNode + hastNode, ); } // Render once immediately - const [content, setContent] = createSignal(props.content); - - const [children] = createResource(content, render); + // eslint-disable-next-line solid/reactivity + const [children, setChildren] = createSignal(render(props.content)); // If it ever updates, re-render the whole tree: createEffect( on( () => props.content, - (content) => setContent(content), - { defer: true } - ) + (content) => setChildren(render(content)), + { defer: true }, + ), ); // Give it to Solid: diff --git a/packages/client/components/markdown/plugins/Codeblock.tsx b/packages/client/components/markdown/plugins/Codeblock.tsx index 7db0426e..835f39f0 100644 --- a/packages/client/components/markdown/plugins/Codeblock.tsx +++ b/packages/client/components/markdown/plugins/Codeblock.tsx @@ -7,6 +7,8 @@ const Codeblock = styled("pre", { color: "#c9d1d9", background: "#0d1117", + width: "fit-content", + padding: "var(--gap-md)", marginY: "var(--gap-sm)", borderRadius: "var(--borderRadius-md)", diff --git a/packages/client/components/markdown/plugins/anchors.tsx b/packages/client/components/markdown/plugins/anchors.tsx index 233adadf..ac256ec5 100644 --- a/packages/client/components/markdown/plugins/anchors.tsx +++ b/packages/client/components/markdown/plugins/anchors.tsx @@ -1,20 +1,26 @@ -import { JSX, Switch, splitProps } from "solid-js"; +import { JSX, Match, Show, Switch, splitProps } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; import { cva } from "styled-system/css"; import { useClient } from "@revolt/client"; +import { useModals } from "@revolt/modal"; import { paramsFromPathname } from "@revolt/routing"; +import { useState } from "@revolt/state"; import { Avatar, iconSize } from "@revolt/ui"; +import { Invite } from "@revolt/ui/components/features/messaging/elements/Invite"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; import MdChat from "@material-design-icons/svg/outlined/chat.svg?component-solid"; import MdChevronRight from "@material-design-icons/svg/outlined/chevron_right.svg?component-solid"; +import MdPeople from "@material-design-icons/svg/outlined/people.svg?component-solid"; // import { determineLink } from "../../../lib/links"; // import { modalController } from "../../../controllers/modals/ModalController"; -import MdTag from "@material-design-icons/svg/outlined/tag.svg?component-solid"; const link = cva({ base: { - color: "var(--colours-link) !important", + cursor: "pointer", + color: "var(--md-sys-color-primary) !important", }, }); @@ -32,85 +38,196 @@ const internalLink = cva({ cursor: "pointer", fontWeight: 600, borderRadius: "var(--borderRadius-lg)", - color: "var(--colours-messaging-component-mention-foreground)", - background: "var(--colours-messaging-component-mention-background)", + fill: "var(--md-sys-color-on-primary)", + color: "var(--md-sys-color-on-primary)", + background: "var(--md-sys-color-primary)", }, }); export function RenderAnchor( - props: JSX.AnchorHTMLAttributes + props: { disabled?: boolean } & JSX.AnchorHTMLAttributes, ) { - const [localProps, remoteProps] = splitProps(props, ["href"]); + /* eslint-disable solid/reactivity */ + /* eslint-disable solid/components-return-once */ + + const [localProps, remoteProps] = splitProps(props, [ + "href", + "target", + "disabled", + ]); - // Pass-through no href or if anchor - if (!localProps.href) return ; + // Handle case where there is no link + if (!localProps.href) return {remoteProps.children}; - let internal = false; + // Handle links that navigate internally try { - const url = new URL(localProps.href); + let url = new URL(localProps.href); + + // Remap discover links to native links + if (url.origin === "https://rvlt.gg" || url.origin === "https://stt.gg") { + if (/^\/[\w\d]+$/.test(url.pathname)) { + url = new URL(`/invite${url.pathname}`, location.origin); + } else if (url.pathname.startsWith("/discover")) { + url = new URL(url.pathname, location.origin); + } + } + + // Determine whether it's in our scope if ( [ location.origin, + // legacy "https://app.revolt.chat", "https://revolt.chat", + // new + "https://stoat.chat", ].includes(url.origin) ) { - const newUrl = new URL(url.pathname, location.origin); - const client = useClient(); const params = paramsFromPathname(url.pathname); + if (params.exactChannel) { + const channel = () => client().channels.get(params.channelId!); + + const internalUrl = () => + new URL( + channel()!.serverId + ? `/server/${channel()!.serverId}/channel/${channel()!.id}` + : `/channel/${channel()!.id}`, + location.origin, + ).toString(); + return ( - - - {client().channels.get(params.channelId!)?.name} - {params.exactMessage && ( - <> - - - - )} - + + tag + Private Channel + + } + > + + + tag + {channel()!.name} + {params.exactMessage && ( + <> + + + + )} + + + ); } else if (params.exactServer) { const server = () => client().servers.get(params.serverId!); + const internalUrl = () => + new URL(`/server/${server()!.id}`, location.origin).toString(); + return ( - - {server()?.name} - + + + Unknown Server + + } + > + + + {server()?.name} + + + ); + } else if ( + params.inviteId && + // only display invites if it is just the plain link: + Array.isArray(remoteProps.children) && + remoteProps.children[0] === localProps.href && + !localProps.disabled + ) { + return ; } else { + const internalUrl = () => + new URL(url.pathname, location.origin).toString(); + return ( - ); } } - } catch (e) {} - - // TODO: link warning - // Determine type of link - - /*const link = determineLink(localProps.href); - if (link.type === "none") return ; - - // Render direct link if internal - if (link.type === "navigate") { - return ; - }*/ - - return ( - modalController.openLink(href) && ev.preventDefault()} - /> - ); + + // ... all other links: + const state = useState(); + const { openModal } = useModals(); + + function onHandleWarning( + event: MouseEvent & { currentTarget: HTMLAnchorElement }, + ) { + if (event.button === 0 || event.button === 1) { + event.preventDefault(); + event.stopPropagation(); + + openModal({ + type: "link_warning", + url, + display: event.currentTarget!.innerText, + }); + } + } + + return ( + + } + > + + + ); + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (_) { + // invalid URL + return {props.children}; + } +} + +function LinkComponent( + props: { disabled?: boolean } & JSX.AnchorHTMLAttributes, +) { + const [localProps, remoteProps] = splitProps(props, ["disabled"]); + if (localProps.disabled) { + return {remoteProps.children}; + } + return ; } diff --git a/packages/client/components/markdown/plugins/channels.tsx b/packages/client/components/markdown/plugins/channels.tsx index 03a47f3d..9d8fc9ab 100644 --- a/packages/client/components/markdown/plugins/channels.tsx +++ b/packages/client/components/markdown/plugins/channels.tsx @@ -1,8 +1,6 @@ import { Plugin } from "unified"; import { visit } from "unist-util-visit"; -import { clientController } from "@revolt/client"; - const RE_CHANNEL = /<#([A-z0-9]{26})>/g; export const remarkChannels: Plugin = () => (tree) => { @@ -12,23 +10,17 @@ export const remarkChannels: Plugin = () => (tree) => { ( node: { type: "text"; value: string }, idx, - parent: { children: any[] } + parent: { children: unknown[] }, ) => { - let elements = node.value.split(RE_CHANNEL); + const elements = node.value.split(RE_CHANNEL); if (elements.length === 1) return; // no matches - const client = clientController.getCurrentClient(); - let newNodes = elements.map((value, index) => { + const newNodes = elements.map((value, index) => { if (index % 2) { - const channel = client.channels.get(value); - if (channel) { - return { - type: "link", - url: `${location.origin}${ - channel.server ? `/server/${channel.serverId}` : "" - }/channel/${channel.id}`, - }; - } + return { + type: "link", + url: `${location.origin}/channel/${value}`, + }; } return { @@ -39,6 +31,6 @@ export const remarkChannels: Plugin = () => (tree) => { parent.children.splice(idx, 1, ...newNodes); return idx + newNodes.length; - } + }, ); }; diff --git a/packages/client/components/markdown/plugins/customEmoji.tsx b/packages/client/components/markdown/plugins/customEmoji.tsx index f1a94970..de2418bc 100644 --- a/packages/client/components/markdown/plugins/customEmoji.tsx +++ b/packages/client/components/markdown/plugins/customEmoji.tsx @@ -30,7 +30,7 @@ export function RenderCustomEmoji(props: { id: string }) { */ const server = () => client()!.servers.get( - (emoji()!.parent as { type: "Server"; id: string }).id + (emoji()!.parent as { type: "Server"; id: string }).id, )!; return ( @@ -114,9 +114,9 @@ export const remarkCustomEmoji: Plugin = () => (tree) => { ( node: { type: "text"; value: string }, idx, - parent: { children: any[] } + parent: { children: unknown[] }, ) => { - let elements = node.value.split(RE_CUSTOM_EMOJI); + const elements = node.value.split(RE_CUSTOM_EMOJI); if (elements.length === 1) return; // no matches // Generate initial node @@ -149,7 +149,7 @@ export const remarkCustomEmoji: Plugin = () => (tree) => { parent.children.splice(idx, 1, ...newNodes); return idx + newNodes.length; - } + }, ); }; diff --git a/packages/client/components/markdown/plugins/mentions.tsx b/packages/client/components/markdown/plugins/mentions.tsx index 37df7e01..94eb2c56 100644 --- a/packages/client/components/markdown/plugins/mentions.tsx +++ b/packages/client/components/markdown/plugins/mentions.tsx @@ -1,43 +1,53 @@ -import { Match, Show, Switch } from "solid-js"; +import { Match, Switch } from "solid-js"; import { Handler } from "mdast-util-to-hast"; import { cva } from "styled-system/css"; +import { styled } from "styled-system/jsx"; import { Plugin } from "unified"; import { visit } from "unist-util-visit"; import { UserContextMenu } from "@revolt/app"; -import { Avatar, ColouredText } from "@revolt/ui"; +import { useClient } from "@revolt/client"; +import { useSmartParams } from "@revolt/routing"; +import { Avatar, ColouredText, iconSize } from "@revolt/ui"; -import { useUser } from "../users"; +import MdAt from "@material-design-icons/svg/filled/alternate_email.svg?component-solid"; -const mention = cva({ - base: { - verticalAlign: "bottom", - - gap: "4px", - paddingLeft: "2px", - paddingRight: "6px", - alignItems: "center", - display: "inline-flex", +import { useUser } from "../users"; - cursor: "pointer", - fontWeight: 600, - borderRadius: "var(--borderRadius-lg)", - color: "var(--colours-messaging-component-mention-foreground)", - background: "var(--colours-messaging-component-mention-background)", - }, - variants: { - valid: { - false: { - paddingLeft: "6px", - cursor: "not-allowed", - }, - }, - }, -}); +export function RenderMention(props: { + mentions?: string; + disabled?: boolean; +}) { + return ( + Invalid Mention Element}> + + + + + + + everyone + + + + + + online + + + + + + + ); +} -export function RenderMention(props: { userId: string }) { - const user = useUser(props.userId); +export function UserMention(props: { userId: string; disabled?: boolean }) { + const user = useUser(() => props.userId); return (
( + + ), } - : undefined, - contextMenu: () => , - }} + } > - - {user().username} - + {user().username}
); } -const RE_MENTION = /^mailto:@([0-9ABCDEFGHJKMNPQRSTVWXYZ]{26})$/; +export function RoleMention(props: { roleId: string }) { + // some jank involved... + const client = useClient(); + const params = useSmartParams(); + const role = () => + client().servers.get(params().serverId!)?.roles.get(props.roleId); -export const remarkMentions: Plugin = () => (tree) => { - // <@abc> is auto-linkified somewhere in the chain, and I cannot - // avoid this behaviour even when putting myself first in the - // chain, so instead we just convert these links where appropriate! - visit( - tree, - "link", - (node: { type: "link"; url: string }, idx, parent: { children: any[] }) => { - const match = RE_MENTION.exec(node.url); - if (match) { - parent.children.splice(idx, 1, { - type: "mention", - userId: match[1], - }); - } - } + return ( + Unknown Role} + > + +
+ + {role()!.name} +
+
+
); +} + +const RoleIcon = styled("div", { + base: { + margin: "1px", + width: "14px", + height: "14px", + aspectRatio: "1/1", + borderRadius: "100%", + }, +}); - // This does not work: - /* visit( +const RE_MENTION = + /(<@[0-9ABCDEFGHJKMNPQRSTVWXYZ]{26}>|@everyone|@online|<%[0-9ABCDEFGHJKMNPQRSTVWXYZ]{26}>)/; + +export const remarkMentions: Plugin = () => (tree) => { + visit( tree, "text", ( node: { type: "text"; value: string }, idx, - parent: { children: any[] } + parent: { children: unknown[] }, ) => { - let elements = node.value.split(RE_MENTIONS); + const elements = node.value.split(RE_MENTION); if (elements.length === 1) return; // no matches - let newNodes = elements.map((value, index) => + const newNodes = elements.map((value, index) => index % 2 - ? { - type: "mention", - userId: value, - } + ? value.startsWith("<@") + ? { + type: "mention", + mentions: "user:" + value.substring(2, value.length - 1), + } + : value === "@everyone" + ? { + type: "mention", + mentions: "everyone", + } + : value === "@online" + ? { + type: "mention", + mentions: "online", + } + : { + type: "mention", + mentions: "role:" + value.substring(2, value.length - 1), + } : { type: "text", value, - } + }, ); parent.children.splice(idx, 1, ...newNodes); return idx + newNodes.length; - } - ); */ + }, + ); }; export const mentionHandler: Handler = (h, node) => { @@ -125,7 +173,51 @@ export const mentionHandler: Handler = (h, node) => { tagName: "mention", children: [], properties: { - userId: node.userId, + mentions: node.mentions, }, }; }; + +export const mention = cva({ + base: { + verticalAlign: "bottom", + + gap: "4px", + paddingLeft: "2px", + paddingRight: "6px", + alignItems: "center", + display: "inline-flex", + + fontWeight: 600, + borderRadius: "var(--borderRadius-lg)", + + color: "var(--md-sys-color-on-primary-container)", + background: "var(--md-sys-color-primary-container)", + }, + variants: { + isLink: { + true: { + cursor: "pointer", + }, + }, + valid: { + false: { + paddingLeft: "6px", + cursor: "not-allowed", + }, + }, + inEditor: { + true: { + color: "var(--md-sys-color-on-primary)", + background: "var(--md-sys-color-primary)", + + "& img": { + width: "16px", + height: "16px", + objectFit: "cover", + borderRadius: "var(--borderRadius-full)", + }, + }, + }, + }, +}); diff --git a/packages/client/components/markdown/plugins/remarkLinkify.ts b/packages/client/components/markdown/plugins/remarkLinkify.ts new file mode 100644 index 00000000..6135091e --- /dev/null +++ b/packages/client/components/markdown/plugins/remarkLinkify.ts @@ -0,0 +1,58 @@ +import LinkifyIt from "linkify-it"; +import { Plugin } from "unified"; +import { visit } from "unist-util-visit"; + +const linkify = new LinkifyIt({ + fuzzyLink: false, +}); + +export const remarkLinkify: Plugin = () => (tree) => { + visit( + tree, + "text", + ( + node: { type: "text"; value: string }, + idx, + parent: { children: unknown[] }, + ) => { + const links = linkify.match(node.value); + if (links === null) return; // no matches + + const newNodes: ( + | { type: "text"; value: string } + | { + type: "link"; + children: { type: "text"; value: string }[]; + } + )[] = [ + { + type: "text", + value: node.value.slice(0, links[0].index), + }, + ...links.flatMap((link, idx) => [ + { + type: "link" as const, + url: link.url, + title: link.text, + children: [ + { + type: "text" as const, + value: link.text, + }, + ], + }, + { + type: "text" as const, + value: node.value.slice( + link.lastIndex, + links[idx + 1]?.index ?? node.value.length, + ), + }, + ]), + ]; + + parent.children.splice(idx, 1, ...newNodes); + return idx + newNodes.length; + }, + ); +}; diff --git a/packages/client/components/markdown/plugins/spoiler.tsx b/packages/client/components/markdown/plugins/spoiler.tsx index 5fba4641..c7342ad4 100644 --- a/packages/client/components/markdown/plugins/spoiler.tsx +++ b/packages/client/components/markdown/plugins/spoiler.tsx @@ -13,8 +13,8 @@ const Spoiler = styled("span", { variants: { shown: { true: { - color: "var(--colours-background)", - background: "var(--colours-foreground)", + color: "var(--md-sys-color-inverse-on-surface)", + background: "var(--md-sys-color-inverse-surface)", }, false: { cursor: "pointer", @@ -31,11 +31,17 @@ const Spoiler = styled("span", { }, }); -export function RenderSpoiler(props: { children: Element }) { +export function RenderSpoiler(props: { + children: Element; + disabled?: boolean; +}) { const [shown, setShown] = createSignal(false); return ( - setShown(true)}> + setShown(true)} + > {props.children} ); @@ -49,12 +55,12 @@ export const remarkSpoiler: Plugin = () => (tree) => { node: { children: ( | { type: "text"; value: string } - | { type: "paragraph"; children: any[] } - | { type: "spoiler"; children: any[] } + | { type: "paragraph"; children: unknown[] } + | { type: "spoiler"; children: unknown[] } )[]; }, - idx, - parent + _idx, + _parent, ) => { // Visitor state let searchingForEnd = -1; @@ -74,7 +80,7 @@ export const remarkSpoiler: Plugin = () => (tree) => { // Get all preceding elements const elements = node.children.splice( searchingForEnd, - i - searchingForEnd + i - searchingForEnd, ); // Create a spoiler @@ -122,7 +128,7 @@ export const remarkSpoiler: Plugin = () => (tree) => { { type: "text", value: components.shift()!, - } + }, ); i += 2; @@ -139,7 +145,7 @@ export const remarkSpoiler: Plugin = () => (tree) => { } } } - } + }, ); }; diff --git a/packages/client/components/markdown/plugins/timestamps.tsx b/packages/client/components/markdown/plugins/timestamps.tsx index 47ba4c76..2a38c59c 100644 --- a/packages/client/components/markdown/plugins/timestamps.tsx +++ b/packages/client/components/markdown/plugins/timestamps.tsx @@ -1,11 +1,11 @@ import { createEffect, createSignal } from "solid-js"; -import { Dayjs } from "dayjs"; +import { type Dayjs } from "dayjs"; import type { Handler } from "mdast-util-to-hast"; import { Plugin } from "unified"; import { visit } from "unist-util-visit"; -import { dayjs } from "@revolt/i18n"; +import { dayjs, timeLocale } from "@revolt/i18n/dayjs"; import { time as Time } from "../elements"; @@ -37,7 +37,7 @@ export function RenderTimestamp(props: { format: string; date: Dayjs }) { createEffect(() => { // Update every second if we are rendering relative time if (props.format === "R") { - let interval = setInterval(update, 1000); + const interval = setInterval(update, 1000); return () => clearInterval(interval); } }); @@ -60,7 +60,7 @@ export function RenderTimestamp(props: { format: string; date: Dayjs }) { /** * Regex for matching timestamps */ -const RE_TIMESTAMP = //g; +export const RE_TIMESTAMP = //g; export const remarkTimestamps: Plugin = () => (tree) => { visit( @@ -69,9 +69,9 @@ export const remarkTimestamps: Plugin = () => (tree) => { ( node: { type: "text"; value: string }, idx, - parent: { children: any[] } + parent: { children: unknown[] }, ) => { - let elements = node.value.split(RE_TIMESTAMP); + const elements = node.value.split(RE_TIMESTAMP); if (elements.length === 1) return; // no matches // Generate initial node @@ -92,7 +92,9 @@ export const remarkTimestamps: Plugin = () => (tree) => { // Process all timestamps for (let i = 0; i < elements.length / 3; i++) { // Process timestamp - const date = dayjs.unix(parseInt(elements[i * 3])); + const date = dayjs + .unix(parseInt(elements[i * 3])) + .locale(timeLocale()[1]); // Insert components newNodes.push({ @@ -109,7 +111,7 @@ export const remarkTimestamps: Plugin = () => (tree) => { parent.children.splice(idx, 1, ...newNodes); return idx + newNodes.length; - } + }, ); }; diff --git a/packages/client/components/markdown/plugins/unicodeEmoji.tsx b/packages/client/components/markdown/plugins/unicodeEmoji.tsx index 9797e5da..3d11e23e 100644 --- a/packages/client/components/markdown/plugins/unicodeEmoji.tsx +++ b/packages/client/components/markdown/plugins/unicodeEmoji.tsx @@ -1,21 +1,47 @@ -import emojiRegex from "emoji-regex"; import { Handler } from "mdast-util-to-hast"; import { Plugin } from "unified"; import { visit } from "unist-util-visit"; import { UnicodeEmoji } from "../emoji"; +import { + RE_UNICODE_EMOJI, + UNICODE_EMOJI_MAX_PACK, + UNICODE_EMOJI_MIN_PACK, + UNICODE_EMOJI_PUA_PACK, + UnicodeEmojiPacks, +} from "../emoji/UnicodeEmoji"; /** * Render Unicode emoji */ -export function RenderUnicodeEmoji(props: { str: string }) { - return ; +export function RenderUnicodeEmoji(props: { + str: string; + pack: UnicodeEmojiPacks; +}) { + return ; } -/** - * Regex for matching emoji - */ -const RE_EMOJI = new RegExp("(" + emojiRegex().source + ")", "g"); +export function parseUnicodeEmoji(str: string): { + str: string; + pack?: UnicodeEmojiPacks; +} { + const selectorChar = str[0]; + const selector = selectorChar.codePointAt(0); + if ( + selector && + selector >= UNICODE_EMOJI_MIN_PACK && + selector <= UNICODE_EMOJI_MAX_PACK + ) { + return { + str: str.substring(1), + pack: UNICODE_EMOJI_PUA_PACK[selectorChar], + }; + } else { + return { + str, + }; + } +} export const remarkUnicodeEmoji: Plugin = () => (tree) => { visit( @@ -24,9 +50,9 @@ export const remarkUnicodeEmoji: Plugin = () => (tree) => { ( node: { type: "text"; value: string }, idx, - parent: { children: any[] } + parent: { children: unknown[] }, ) => { - let elements = node.value.split(RE_EMOJI); + const elements = node.value.split(RE_UNICODE_EMOJI); if (elements.length === 1) return; // no matches // Generate initial node @@ -35,6 +61,7 @@ export const remarkUnicodeEmoji: Plugin = () => (tree) => { | { type: "unicodeEmoji"; str: string; + pack?: UnicodeEmojiPacks; } )[] = [ { @@ -45,10 +72,9 @@ export const remarkUnicodeEmoji: Plugin = () => (tree) => { // Process all timestamps for (let i = 0; i < elements.length / 2; i++) { - // Insert components newNodes.push({ type: "unicodeEmoji", - str: elements[i * 2], + ...parseUnicodeEmoji(elements[i * 2]), }); newNodes.push({ @@ -59,7 +85,7 @@ export const remarkUnicodeEmoji: Plugin = () => (tree) => { parent.children.splice(idx, 1, ...newNodes); return idx + newNodes.length; - } + }, ); }; @@ -70,6 +96,7 @@ export const unicodeEmojiHandler: Handler = (h, node) => { children: [], properties: { str: node.str, + pack: node.pack, }, }; }; diff --git a/packages/client/components/markdown/prosemirror/from-model.ts b/packages/client/components/markdown/prosemirror/from-model.ts new file mode 100644 index 00000000..e96f56a0 --- /dev/null +++ b/packages/client/components/markdown/prosemirror/from-model.ts @@ -0,0 +1,193 @@ +import type { ListItem, PhrasingContent, Root, RootContent } from "mdast"; +import { CodeBlockNodeName } from "prosemirror-codemirror-block"; +import { Node } from "prosemirror-model"; +import remarkStringify from "remark-stringify"; + +import { unifiedPipeline } from ".."; +import { UNICODE_EMOJI_PACK_PUA } from "../emoji/UnicodeEmoji"; + +import { schema } from "./schema"; + +const pipeline = unifiedPipeline.use(remarkStringify); + +// NB. https://github.com/syntax-tree/mdast + +function map(node: Node): RootContent { + // apply marks + if (node.marks.length) { + const mark = node.marks[0]; + switch (mark.type.name as keyof (typeof schema)["marks"]) { + case "strong": + return { + type: "strong", + children: [ + map({ + ...node, + marks: node.marks.slice(1), + } as never) as PhrasingContent, + ], + }; + case "em": + return { + type: "emphasis", + children: [ + map({ + ...node, + marks: node.marks.slice(1), + } as never) as PhrasingContent, + ], + }; + // todo: enable the gfm delete plugin ONLY + // case "strikethrough": + // return { + // type: "delete", + // children: [ + // map({ + // ...node, + // marks: node.marks.slice(1), + // } as never) as PhrasingContent, + // ], + // }; + case "link": + return { + type: "link", + url: node.attrs.href, + title: node.attrs.title ?? node.attrs.href, + children: [ + map({ + ...node, + marks: node.marks.slice(1), + } as never) as PhrasingContent, + ], + }; + case "code": + return { + type: "inlineCode", + value: node.text ?? "", + }; + } + } + + // apply node + switch (node.type.name as keyof (typeof schema)["nodes"]) { + case "paragraph": + return { + type: "paragraph", + children: node.children.map(map) as PhrasingContent[], + }; + case "text": + return { + type: "text", + value: node.text!, + }; + case CodeBlockNodeName: + return { + type: "code", + lang: node.attrs.lang, + value: node.textContent, + }; + case "heading": + return { + type: "heading", + depth: node.attrs.level, + children: node.children.map(map) as PhrasingContent[], + }; + case "bullet_list": + return { + type: "list", + ordered: false, + children: node.children.map(map) as ListItem[], + }; + case "ordered_list": + return { + type: "list", + ordered: true, + start: node.attrs.order, + children: node.children.map(map) as ListItem[], + }; + case "list_item": + return { + type: "listItem", + children: node.children.map(map) as never, + }; + + // RFM + + case "rfm_custom_emoji": + return { + type: "text", + value: `:${node.attrs.id}:`, + }; + case "rfm_unicode_emoji": + return { + type: "text", + value: `${UNICODE_EMOJI_PACK_PUA[node.attrs.pack as never] ?? ""}${node.attrs.id}`, + }; + case "rfm_user_mention": + return { + type: "text", + value: `<@${node.attrs.id}>`, + }; + case "rfm_role_mention": + return { + type: "text", + value: `<%${node.attrs.id}>`, + }; + case "rfm_channel_mention": + return { + type: "text", + value: `<#${node.attrs.id}>`, + }; + + default: + console.info("Failing node:", node); + return { + type: "text", + value: `[missing ${node.type.name} serializer]`, + }; + } +} + +/** + * Regex for matching double new lines + */ +const RE_DOUBLE_NEW_LINES = /\n\n/g; + +/** + * Regex for matching special marker in codeblock + */ +const RE_CODEBLOCK_MARKER = /(?<=`{3}[\s\S]*)\uF8FF(?=[\s\S]*`{3})/gm; + +/** + * Regex for matching special marker + */ +const RE_MARKER = /\uF8FF/g; + +export function markdownFromProseMirrorModel(model: Node) { + // console.info(model); + + if (model.type.name !== "doc") { + throw "root node should be 'doc'?"; + } + + const root: Root = { + type: "root", + children: model.children.map(map), + }; + + // console.info(JSON.stringify(root)); + // console.info(pipeline.stringify(root)); + + return ( + pipeline + .stringify(root) + // Replace double newlines with special marker + .replace(RE_DOUBLE_NEW_LINES, "\uF8FF") + // Skip the ones in codeblocks + .replace(RE_CODEBLOCK_MARKER, "\n\n") + // And now put a single newline + .replace(RE_MARKER, "\n") + // Strip spaces and newlines at start and end + .trim() + ); +} diff --git a/packages/client/components/markdown/prosemirror/index.ts b/packages/client/components/markdown/prosemirror/index.ts new file mode 100644 index 00000000..6eb28ba8 --- /dev/null +++ b/packages/client/components/markdown/prosemirror/index.ts @@ -0,0 +1,3 @@ +export * from "./from-model"; +export * from "./schema"; +export * from "./to-model"; diff --git a/packages/client/components/markdown/prosemirror/schema.ts b/packages/client/components/markdown/prosemirror/schema.ts new file mode 100644 index 00000000..27aa0162 --- /dev/null +++ b/packages/client/components/markdown/prosemirror/schema.ts @@ -0,0 +1,415 @@ +import { CodeBlockNodeName } from "prosemirror-codemirror-block"; +import { MarkSpec, Schema } from "prosemirror-model"; + +import { mention } from "../plugins/mentions"; + +/// Document schema for the data model used by CommonMark. +export const schema = new Schema({ + nodes: { + doc: { + content: "block+", + }, + + paragraph: { + content: "inline*", + group: "block", + parseDOM: [{ tag: "p" }], + toDOM() { + return ["p", 0]; + }, + }, + + blockquote: { + content: "block+", + group: "block", + parseDOM: [{ tag: "blockquote" }], + toDOM() { + return ["blockquote", 0]; + }, + }, + + horizontal_rule: { + group: "block", + parseDOM: [{ tag: "hr" }], + toDOM() { + return ["div", ["hr"]]; + }, + }, + + heading: { + attrs: { level: { default: 1 } }, + content: + "(text | image | rfm_custom_emoji | rfm_user_mention | rfm_role_mention | rfm_channel_mention)*", + group: "block", + defining: true, + parseDOM: [ + { tag: "h1", attrs: { level: 1 } }, + { tag: "h2", attrs: { level: 2 } }, + { tag: "h3", attrs: { level: 3 } }, + { tag: "h4", attrs: { level: 4 } }, + { tag: "h5", attrs: { level: 5 } }, + { tag: "h6", attrs: { level: 6 } }, + ], + toDOM(node) { + return ["h" + node.attrs.level, 0]; + }, + }, + + [CodeBlockNodeName]: { + content: "text*", + group: "block", + code: true, + defining: true, + marks: "", + attrs: { params: { default: "" }, lang: { default: null } }, + parseDOM: [ + { + tag: "pre", + preserveWhitespace: "full", + getAttrs: (node) => ({ + params: (node as HTMLElement).getAttribute("data-params") || "", + }), + }, + ], + toDOM(node) { + return [ + "pre", + node.attrs.params ? { "data-params": node.attrs.params } : {}, + ["code", 0], + ]; + }, + }, + + ordered_list: { + content: "list_item+", + group: "block", + attrs: { order: { default: 1 }, tight: { default: false } }, + parseDOM: [ + { + tag: "ol", + getAttrs(dom) { + return { + order: (dom as HTMLElement).hasAttribute("start") + ? +(dom as HTMLElement).getAttribute("start")! + : 1, + tight: (dom as HTMLElement).hasAttribute("data-tight"), + }; + }, + }, + ], + toDOM(node) { + return [ + "ol", + { + start: node.attrs.order == 1 ? null : node.attrs.order, + "data-tight": node.attrs.tight ? "true" : null, + }, + 0, + ]; + }, + }, + + bullet_list: { + content: "list_item+", + group: "block", + attrs: { tight: { default: false } }, + parseDOM: [ + { + tag: "ul", + getAttrs: (dom) => ({ + tight: (dom as HTMLElement).hasAttribute("data-tight"), + }), + }, + ], + toDOM(node) { + return ["ul", { "data-tight": node.attrs.tight ? "true" : null }, 0]; + }, + }, + + list_item: { + content: "block+", + defining: true, + parseDOM: [{ tag: "li" }], + toDOM() { + return ["li", 0]; + }, + }, + + text: { + group: "inline", + }, + + image: { + inline: true, + attrs: { + src: {}, + alt: { default: null }, + title: { default: null }, + style: { default: null }, + }, + group: "inline", + draggable: true, + parseDOM: [ + { + tag: "img[src]", + getAttrs(dom) { + return { + src: (dom as HTMLElement).getAttribute("src"), + title: (dom as HTMLElement).getAttribute("title"), + alt: (dom as HTMLElement).getAttribute("alt"), + }; + }, + }, + ], + toDOM(node) { + return ["img", node.attrs]; + }, + }, + + hard_break: { + inline: true, + group: "inline", + selectable: false, + parseDOM: [{ tag: "br" }], + toDOM() { + return ["br"]; + }, + }, + + rfm_custom_emoji: { + inline: true, + attrs: { + id: {}, + src: {}, + }, + group: "inline", + draggable: true, + parseDOM: [ + { + tag: "img[emoji-id]", + getAttrs(dom) { + return { + id: (dom as HTMLElement).getAttribute("emoji-id"), + src: (dom as HTMLElement).getAttribute("src"), + }; + }, + }, + ], + toDOM(node) { + return [ + "img", + { + "emoji-id": node.attrs.id, + src: node.attrs.src, + style: + "width: var(--emoji-size); height: var(--emoji-size); display: inline; object-fit: contain", + }, + ]; + }, + }, + + rfm_unicode_emoji: { + inline: true, + attrs: { + id: {}, + pack: { default: null }, + src: {}, + }, + group: "inline", + draggable: true, + parseDOM: [ + { + tag: "img[unicode]", + getAttrs(dom) { + return { + id: (dom as HTMLElement).getAttribute("unicode"), + pack: (dom as HTMLElement).getAttribute("pack"), + src: (dom as HTMLElement).getAttribute("src"), + }; + }, + }, + ], + toDOM(node) { + return [ + "img", + { + unicode: node.attrs.id, + pack: node.attrs.pack, + src: node.attrs.src, + style: + "width: var(--emoji-size); height: var(--emoji-size); display: inline; object-fit: contain", + }, + ]; + }, + }, + + rfm_user_mention: { + inline: true, + attrs: { + id: {}, + username: {}, + avatar: {}, + }, + group: "inline", + draggable: true, + parseDOM: [ + { + tag: "span[user-id]", + getAttrs(dom) { + return { + id: (dom as HTMLElement).getAttribute("user-id"), + username: (dom as HTMLElement).innerText, + }; + }, + }, + ], + toDOM(node) { + return [ + "span", + { + "user-id": node.attrs.id, + class: mention({ inEditor: true }), + }, + [ + "img", + { + src: node.attrs.avatar, + }, + ], + node.attrs.username, + ]; + }, + }, + + rfm_role_mention: { + inline: true, + attrs: { + id: {}, + name: {}, + }, + group: "inline", + draggable: true, + parseDOM: [ + { + tag: "span[role-id]", + getAttrs(dom) { + return { + id: (dom as HTMLElement).getAttribute("role-id"), + name: (dom as HTMLElement).innerText, + }; + }, + }, + ], + toDOM(node) { + return [ + "span", + { + "role-id": node.attrs.id, + class: mention({ inEditor: true }), + }, + "%" + node.attrs.name, + ]; + }, + }, + + rfm_channel_mention: { + inline: true, + attrs: { + id: {}, + name: {}, + }, + group: "inline", + draggable: true, + parseDOM: [ + { + tag: "span[channel-id]", + getAttrs(dom) { + return { + id: (dom as HTMLElement).getAttribute("channel-id"), + name: (dom as HTMLElement).innerText, + }; + }, + }, + ], + toDOM(node) { + return [ + "span", + { + "channel-id": node.attrs.id, + class: mention({ inEditor: true }), + }, + "#" + node.attrs.name, + ]; + }, + }, + }, + + marks: { + em: { + parseDOM: [ + { tag: "i" }, + { tag: "em" }, + { style: "font-style=italic" }, + { style: "font-style=normal", clearMark: (m) => m.type.name == "em" }, + ], + toDOM() { + return ["em"]; + }, + }, + + strong: { + parseDOM: [ + { tag: "strong" }, + { + tag: "b", + getAttrs: (node) => node.style.fontWeight != "normal" && null, + }, + { style: "font-weight=400", clearMark: (m) => m.type.name == "strong" }, + { + style: "font-weight", + getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null, + }, + ], + toDOM() { + return ["strong"]; + }, + } as MarkSpec, + + strikethrough: { + parseDOM: [{ tag: "s" }], + toDOM() { + return ["s"]; + }, + } as MarkSpec, + + link: { + attrs: { + href: {}, + title: { default: null }, + }, + inclusive: false, + parseDOM: [ + { + tag: "a[href]", + getAttrs(dom) { + return { + href: (dom as HTMLElement).getAttribute("href"), + title: dom.getAttribute("title"), + }; + }, + }, + ], + toDOM(node) { + return ["a", node.attrs]; + }, + }, + + code: { + code: true, + parseDOM: [{ tag: "code" }], + toDOM() { + return ["code"]; + }, + }, + }, +}); diff --git a/packages/client/components/markdown/prosemirror/to-model.ts b/packages/client/components/markdown/prosemirror/to-model.ts new file mode 100644 index 00000000..fc2f55e0 --- /dev/null +++ b/packages/client/components/markdown/prosemirror/to-model.ts @@ -0,0 +1,186 @@ +import { Dayjs } from "dayjs"; +import { Root, RootContent } from "mdast"; +import { Mark, Node } from "prosemirror-model"; +import { Client } from "upryzing.js"; + +import { UNIFIED_PLUGINS, unifiedPipeline } from ".."; +import { UnicodeEmojiPacks, unicodeEmojiUrl } from "../emoji/UnicodeEmoji"; + +import { schema } from "./schema"; + +export function blankModel() { + return schema.nodes.doc.createChecked( + null, + schema.nodes.paragraph.createChecked(null), + ); +} + +interface Context { + parent?: RootContent["type"]; + marks?: Mark[]; +} + +type RfmComponents = + | { + type: "mention"; + mentions: string; + } + | { + type: "customEmoji"; + id: string; + } + | { + type: "unicodeEmoji"; + str: string; + pack?: UnicodeEmojiPacks; + } + | { + type: "timestamp"; + format: string; + date: Dayjs; + }; + +function map( + node: RootContent | RfmComponents, + client: Client, + context: Context = {}, +): Node[] | Node { + switch (node.type) { + case "paragraph": + return schema.nodes.paragraph.createChecked( + null, + node.children.flatMap((child) => + map(child, client, { parent: "paragraph" }), + ), + ); + case "text": { + if (!node.value) return []; + return schema.text(node.value, context.marks); + } + case "strong": + return node.children.flatMap((child) => + map(child, client, { + marks: [...(context.marks ?? []), schema.marks.strong.create()], + }), + ); + case "emphasis": + return node.children.flatMap((child) => + map(child, client, { + marks: [...(context.marks ?? []), schema.marks.em.create()], + }), + ); + case "link": + return node.children.flatMap((child) => + map(child, client, { + marks: [ + ...(context.marks ?? []), + schema.marks.link.create({ + href: node.url, + }), + ], + }), + ); + case "delete": + return node.children.flatMap((child) => + map(child, client, { + marks: [ + ...(context.marks ?? []), + schema.marks.strikethrough.create(), + ], + }), + ); + case "heading": + return schema.nodes.heading.createChecked( + { level: node.depth }, + node.children.flatMap((child) => + map(child, client, { parent: "heading" }), + ), + ); + case "list": + if (node.ordered) { + return schema.nodes.ordered_list.createChecked( + { + start: node.start, + }, + node.children.flatMap((child) => + map(child, client, { parent: "list" }), + ), + ); + } else { + return schema.nodes.bullet_list.createChecked( + null, + node.children.flatMap((child) => + map(child, client, { parent: "list" }), + ), + ); + } + case "listItem": + return schema.nodes.list_item.createChecked( + null, + node.children.flatMap((child) => + map(child, client, { parent: "listItem" }), + ), + ); + case "inlineCode": + return schema.text(node.value, [ + ...(context.marks ?? []), + schema.marks.code.create(), + ]); + + // RFM + case "mention": + if (node.mentions.startsWith("user:")) { + const id = node.mentions.substring(5); + const user = client.users.get(id); + if (user) { + return schema.nodes.rfm_user_mention.createAndFill({ + id, + username: user.username, + avatar: user.animatedAvatarURL, + })!; + } else { + return schema.text(`<@${id}>`); + } + } else { + return schema.text("no"); + } + case "customEmoji": + return schema.nodes.rfm_custom_emoji.createAndFill({ + id: node.id, + src: `https://cdn.revoltusercontent.com/emojis/${node.id}`, + })!; + case "unicodeEmoji": + return schema.nodes.rfm_unicode_emoji.createAndFill({ + id: node.str, + pack: node.pack, + src: unicodeEmojiUrl(node.pack, node.str), + })!; + case "timestamp": + return schema.text(``); + + default: { + console.info("Failing node:", node); + + const text = schema.text(`[missing ${node.type} serializer]`); + if (context.parent === "paragraph") return [text]; + return [schema.nodes.paragraph.createChecked(null, text)]; + } + } +} + +export function markdownToProseMirrorModel(content: string, client: Client) { + if (!content) return blankModel(); + + const tree = unifiedPipeline.parse(content); + + for (const plugin of UNIFIED_PLUGINS) { + (plugin as never as () => (tree: Root) => void)()(tree); + } + + // console.info(tree); + + return schema.nodes.doc.createChecked( + null, + tree.children.flatMap((child) => map(child, client)), + ); +} diff --git a/packages/client/components/markdown/sanitise.ts b/packages/client/components/markdown/sanitise.ts index 8ab74e9b..bc9b93b4 100644 --- a/packages/client/components/markdown/sanitise.ts +++ b/packages/client/components/markdown/sanitise.ts @@ -76,7 +76,9 @@ export function remarkInsertBreaks() { * @param element Element * @returns Element */ - function recurse(element: any): any { + function recurse( + element: Record & { children: unknown[] }, + ): unknown { if (element.type === "text") { if (element.value === "\uF800") { return { @@ -90,10 +92,10 @@ export function remarkInsertBreaks() { return { ...element, - children: element.children?.map((child: typeof tree) => recurse(child)), + children: element.children?.map((child) => recurse(child as never)), }; } - return recurse(tree) as typeof tree; + return recurse(tree as never) as typeof tree; }; } diff --git a/packages/client/components/markdown/solid-markdown/ast-to-solid.tsx b/packages/client/components/markdown/solid-markdown/ast-to-solid.tsx index 7d91e2da..0b0efe11 100644 --- a/packages/client/components/markdown/solid-markdown/ast-to-solid.tsx +++ b/packages/client/components/markdown/solid-markdown/ast-to-solid.tsx @@ -1,6 +1,5 @@ /* eslint-disable */ // @ts-nocheck - /** * This file is provided under the MIT License * Copyright (c) 2015 Espen Hovlandsdal @@ -42,7 +41,7 @@ type Context = { type TransformLink = ( href: string, children: ElementContent[], - title?: string + title?: string, ) => string; type TransformImage = (src: string, alt: string, title?: string) => string; type TransformLinkTargetType = @@ -55,7 +54,7 @@ type TransformLinkTargetType = type TransformLinkTarget = ( href: string, children: ElementContent[], - title?: string + title?: string, ) => TransformLinkTargetType | undefined; type SolidMarkdownNames = keyof JSX.IntrinsicElements; @@ -128,7 +127,7 @@ const tableElements = new Set(["table", "thead", "tbody", "tfoot", "tr"]); export function childrenToSolid( context: Context, - node: Element | Root + node: Element | Root, ): JSX.Element[] { const children: JSX.Element[] = []; let childIndex = -1; @@ -168,7 +167,7 @@ function toSolid( context: Context, node: Element, index: number, - parent: Element | Root + parent: Element | Root, ): JSX.Element { const options = context.options; const parentSchema = context.schema; @@ -236,7 +235,7 @@ function toSolid( ? options.linkTarget( String(properties.href || ""), node.children, - typeof properties.title === "string" ? properties.title : undefined + typeof properties.title === "string" ? properties.title : undefined, ) : options.linkTarget; } @@ -245,7 +244,7 @@ function toSolid( properties.href = options.transformLinkUri( String(properties.href || ""), node.children, - typeof properties.title === "string" ? properties.title : undefined + typeof properties.title === "string" ? properties.title : undefined, ); } @@ -274,7 +273,7 @@ function toSolid( properties.src = options.transformImageUri( String(properties.src || ""), String(properties.alt || ""), - typeof properties.title === "string" ? properties.title : undefined + typeof properties.title === "string" ? properties.title : undefined, ); } @@ -350,7 +349,7 @@ function getInputElement(node: Element | Root): Element | null { function getElementsBeforeCount( parent: Element | Root, - node?: Element + node?: Element, ): number { let index = -1; let count = 0; @@ -367,13 +366,13 @@ function addProperty( props: Record, prop: string, value: unknown, - ctx: Context + ctx: Context, ) { const info = find(ctx.schema, prop); let result = value; // Ignore nullish and `NaN` values. - // eslint-disable-next-line no-self-compare + if (result === null || result === undefined || result !== result) { return; } @@ -426,7 +425,7 @@ function flattenPosition( | { start: { line: null; column: null; offset: null }; end: { line: null; column: null; offset: null }; - } + }, ): string { return [ pos.start.line, diff --git a/packages/client/components/markdown/solid-markdown/complex-types.ts b/packages/client/components/markdown/solid-markdown/complex-types.ts index ac22f323..0cb24601 100644 --- a/packages/client/components/markdown/solid-markdown/complex-types.ts +++ b/packages/client/components/markdown/solid-markdown/complex-types.ts @@ -1,5 +1,3 @@ -/* eslint-disable */ - /** * This file is provided under the MIT License * Copyright (c) 2015 Espen Hovlandsdal diff --git a/packages/client/components/markdown/solid-markdown/defaults.ts b/packages/client/components/markdown/solid-markdown/defaults.ts index 93b5e056..a220fa1c 100644 --- a/packages/client/components/markdown/solid-markdown/defaults.ts +++ b/packages/client/components/markdown/solid-markdown/defaults.ts @@ -1,5 +1,3 @@ -/* eslint-disable */ - /** * This file is provided under the MIT License * Copyright (c) 2015 Espen Hovlandsdal diff --git a/packages/client/components/markdown/users.ts b/packages/client/components/markdown/users.ts index dbe3135c..5c7fb930 100644 --- a/packages/client/components/markdown/users.ts +++ b/packages/client/components/markdown/users.ts @@ -1,9 +1,9 @@ import { Accessor, createMemo } from "solid-js"; -import { ServerMember, User } from "@upryzing/upryzing.js"; +import { ServerMember, User } from "upryzing.js"; import { useClient } from "@revolt/client"; -import { useParams } from "@revolt/routing"; +import { useSmartParams } from "@revolt/routing"; // TODO: move to @revolt/common? @@ -60,13 +60,13 @@ export function userInformation(user?: User, member?: ServerMember) { * @returns User information */ export function useUsers( - ids: string[] | Accessor, - filterNull?: boolean -): Accessor<(UserInformation | undefined)[]> { + ids: string[] | Accessor, + filterNull?: boolean, +): Accessor { const clientAccessor = useClient(); // TODO: use a context here for when we do multi view :) - const { server } = useParams<{ server: string }>(); + const params = useSmartParams(); // eslint-disable-next-line solid/reactivity return createMemo(() => { @@ -77,12 +77,12 @@ export function useUsers( if (user) { return userInformation( user, - server + params().serverId ? client.serverMembers.getByKey({ - server, + server: params().serverId!, user: user.id, }) - : undefined + : undefined, ); } }); @@ -96,7 +96,7 @@ export function useUsers( * @param id ID * @returns User information */ -export function useUser(id: string): Accessor { - const users = useUsers([id]); +export function useUser(id: string | Accessor): Accessor { + const users = useUsers(typeof id === "function" ? () => [id()] : [id]); return () => users()[0] ?? { username: "Unknown User" }; } diff --git a/packages/client/components/modal/form.tsx b/packages/client/components/modal/form.tsx deleted file mode 100644 index d2b4329f..00000000 --- a/packages/client/components/modal/form.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import { Show, createSignal, splitProps } from "solid-js"; -import { createStore } from "solid-js/store"; - -import { styled } from "styled-system/jsx"; - -import { mapAnyError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; -import { Column, Form, Typography, typography } from "@revolt/ui"; -import type { - Action, - Props as ModalProps, -} from "@revolt/ui/components/design/atoms/display/Modal"; -import { getInitialValues } from "@revolt/ui/components/tools/Form"; -import type { - Props as FormProps, - FormTemplate, - MapFormToValues, -} from "@revolt/ui/components/tools/Form"; - -import { modalController } from "."; -import { Modals, PropGenerator } from "./types"; - -type Props = Omit< - FormProps, - "onChange" | "store" | "setStore" | "submitBtn" | "onSubmit" -> & { - /** - * Form submission callback - */ - callback: (values: MapFormToValues) => Promise; - - /** - * Submit button properties - */ - submit?: Omit; - - /** - * Custom actions after submit button - */ - actions?: Action[]; - - /** - * Props for the modal - */ - modalProps?: Omit; -}; - -/** - * Create a modal from form data - */ -export function createFormModal< - T extends FormTemplate, - P extends Modals["type"] ->(props: Props): ReturnType> { - const t = useTranslation(); - const [localProps, formProps] = splitProps(props, [ - "callback", - "submit", - "actions", - "modalProps", - ]); - - const [store, setStore] = createStore( - getInitialValues(formProps.schema, formProps.defaults) - ); - - const [error, setError] = createSignal(null!); - const [processing, setProcessing] = createSignal(false); - - const onSubmit = async () => { - try { - setProcessing(true); - await localProps.callback(store); - return true; - } catch (err) { - setError(mapAnyError(err)); - setProcessing(false); - return false; - } - }; - - return { - ...localProps.modalProps, - disabled: processing(), - actions: [ - { - onClick: onSubmit, - children: t("actions.submit"), - confirmation: true, - ...props.submit, - }, - ...(props.actions ?? [ - { - onClick: () => true, - children: t("app.special.modals.actions.cancel"), - variant: "plain", - }, - ]), - ], - children: ( - -
{ - if (await onSubmit()) { - modalController.pop(); - } - }} - /> - - {t(`error.${error()}` as any, undefined, error())} - - - ), - }; -} - -/** - * Error text - */ -const Error = styled("div", { - base: { - color: "var(--customColours-error-color)", - - ...typography.raw({ class: "label", size: "small" }), - }, -}); diff --git a/packages/client/components/modal/index.tsx b/packages/client/components/modal/index.tsx index 9e33738c..34366bbf 100644 --- a/packages/client/components/modal/index.tsx +++ b/packages/client/components/modal/index.tsx @@ -1,15 +1,16 @@ -import { For, createEffect, onMount } from "solid-js"; +import { + For, + JSXElement, + Show, + batch, + createContext, + useContext, +} from "solid-js"; import { SetStoreFunction, createStore } from "solid-js/store"; -import type { MFA, MFATicket } from "@upryzing/upryzing.js"; - -import { registerController } from "@revolt/common"; +import type { MFA, MFATicket } from "upryzing.js"; -import { - registerKeybindWithPriority, - unregisterKeybindWithPriority, -} from "../../src/shared/lib/priorityKeybind"; -import "../ui/styled.d.ts"; +import { Keybind, KeybindAction } from "@revolt/keybinds"; import { RenderModal } from "./modals"; import { Modals } from "./types"; @@ -31,15 +32,6 @@ export type ActiveModal = { props: Modals; }; -/** - * Handle key press - * @param event Event - */ -function keyDown(event: KeyboardEvent) { - event.stopPropagation(); - modalController.pop(); -} - /** * Global modal controller for layering and displaying one or more modal to the user */ @@ -52,26 +44,44 @@ export class ModalController { */ constructor() { const [modals, setModals] = createStore([]); + // eslint-disable-next-line solid/reactivity this.modals = modals; this.setModals = setModals; + this.openModal = this.openModal.bind(this); this.pop = this.pop.bind(this); + this.remove = this.remove.bind(this); + this.isOpen = this.isOpen.bind(this); + this.closeAll = this.closeAll.bind(this); } /** * Add a modal to the stack * @param props Modal parameters */ - push(props: Modals) { - this.setModals([ - ...this.modals, + openModal(props: Modals) { + const id = Math.random().toString(); + this.setModals((modals) => [ + ...modals, { // just need something unique - id: Math.random().toString(), + id, show: true, props, }, ]); + + // after modal commits to DOM, + // we can begin animations! + // setTimeout( + // () => + // this.setModals((modals) => + // modals.map((modal) => + // modal.id === id ? { ...modal, show: true } : modal, + // ), + // ), + // 0, + // ); } /** @@ -85,6 +95,17 @@ export class ModalController { } } + /** + * Remove all modals + */ + closeAll() { + batch(() => { + for (const modal of this.modals) { + this.remove(modal.id); + } + }); + } + /** * Close modal by id */ @@ -100,8 +121,10 @@ export class ModalController { * Whether a modal is currently open * @returns Boolean */ - isOpen() { - return !!this.modals.find((x) => x.show); + isOpen(type?: string) { + return type + ? !!this.modals.find((x) => x.show && x.props.type === type) + : !!this.modals.find((x) => x.show); } } @@ -114,7 +137,11 @@ export class ModalControllerExtended extends ModalController { */ constructor() { super(); - registerController("modal", this); + + this.mfaFlow = this.mfaFlow.bind(this); + this.mfaEnableTOTP = this.mfaEnableTOTP.bind(this); + this.showError = this.showError.bind(this); + this.openLink = this.openLink.bind(this); } /** @@ -123,12 +150,12 @@ export class ModalControllerExtended extends ModalController { */ mfaFlow(mfa: MFA) { return new Promise((callback: (ticket?: MFATicket) => void) => - this.push({ + this.openModal({ type: "mfa_flow", state: "known", mfa, callback, - }) + }), ); } @@ -138,28 +165,34 @@ export class ModalControllerExtended extends ModalController { */ mfaEnableTOTP(secret: string, identifier: string) { return new Promise((callback: (value?: string) => void) => - this.push({ + this.openModal({ type: "mfa_enable_totp", identifier, secret, callback, - }) + }), ); } + /** + * Show any error + * @param error Error + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + showError(error: any) { + this.openModal({ + type: "error2", + error, + }); + } + /** * Write text to the clipboard * @param text Text to write + * @deprecated use navigator clipboard directly */ writeText(text: string) { - if (navigator.clipboard) { - navigator.clipboard.writeText(text); - } else { - this.push({ - type: "clipboard", - text, - }); - } + navigator.clipboard.writeText(text); } /** @@ -168,7 +201,7 @@ export class ModalControllerExtended extends ModalController { * @param trusted Whether we trust this link * @returns Whether to cancel default event */ - openLink(href?: string, trusted?: boolean) { + openLink(/*href?: string, trusted?: boolean*/) { /*const link = determineLink(href); const settings = getApplicationState().settings; @@ -194,26 +227,52 @@ export class ModalControllerExtended extends ModalController { } } -export const modalController = new ModalControllerExtended(); +const ModalControllerContext = createContext( + null as unknown as ModalControllerExtended, +); -export function ModalRenderer() { - createEffect(() => { - if (modalController.modals.length === 0) - return unregisterKeybindWithPriority(keyDown); +/** + * Mount the modal controller + */ +export function ModalContext(props: { children: JSXElement }) { + const controller = new ModalControllerExtended(); + + return ( + + {props.children} + + ); +} - return registerKeybindWithPriority("Escape", keyDown, 1, "user-visible"); - }); +/** + * Use the modal controller + */ +export function useModals() { + return useContext(ModalControllerContext); +} - createEffect(() => { - console.info( - "[DEBUG] (2) Modal render targets updated:", - modalController.modals - ); - }); +/** + * Render modals + */ +export function ModalRenderer() { + const modalController = useModals(); return ( - - {(entry) => } - + <> + + {(entry) => ( + modalController.remove(entry.id)} + /> + )} + + + modalController.pop()} + /> + + ); } diff --git a/packages/client/components/modal/modals.tsx b/packages/client/components/modal/modals.tsx new file mode 100644 index 00000000..9bd71ee2 --- /dev/null +++ b/packages/client/components/modal/modals.tsx @@ -0,0 +1,191 @@ +import { mergeProps, splitProps } from "solid-js"; + +import { CONFIGURATION } from "@revolt/common"; + +import { type ActiveModal } from "."; +import { AddBotModal } from "./modals/AddBot"; +import { AddFriendModal } from "./modals/AddFriend"; +import { AddMembersToGroupModal } from "./modals/AddMembersToGroup"; +import { BanMemberModal } from "./modals/BanMember"; +import { BanNonMemberModal } from "./modals/BanNonMember"; +import { ChangelogModal } from "./modals/Changelog"; +import { ChannelInfoModal } from "./modals/ChannelInfo"; +import { ChannelToggleMatureModal } from "./modals/ChannelToggleMature"; +import { CreateBotModal } from "./modals/CreateBot"; +import { CreateCategoryModal } from "./modals/CreateCategory"; +import { CreateChannelModal } from "./modals/CreateChannel"; +import { CreateGroupModal } from "./modals/CreateGroup"; +import { CreateGroupOrServer } from "./modals/CreateGroupOrServer"; +import { CreateInviteModal } from "./modals/CreateInvite"; +import { CreateOrJoinServerModal } from "./modals/CreateOrJoinServer"; +import { CreateRoleModal } from "./modals/CreateRole"; +import { CreateServerModal } from "./modals/CreateServer"; +import { CreateWebhookModal } from "./modals/CreateWebhook"; +import { CustomStatusModal } from "./modals/CustomStatus"; +import { DeleteBotModal } from "./modals/DeleteBot"; +import { DeleteCategoryModal } from "./modals/DeleteCategory"; +import { DeleteChannelModal } from "./modals/DeleteChannel"; +import { DeleteMessageModal } from "./modals/DeleteMessage"; +import { DeleteRoleModal } from "./modals/DeleteRole"; +import { DeleteServerModal } from "./modals/DeleteServer"; +import { EditEmailModal } from "./modals/EditEmail"; +import { EditPasswordModal } from "./modals/EditPassword"; +import { EditUsernameModal } from "./modals/EditUsername"; +import { EmojiPreviewModal } from "./modals/EmojiPreview"; +import { Error2Modal } from "./modals/Error2"; +import { ImageViewerModal } from "./modals/ImageViewer"; +import { InviteModal } from "./modals/Invite"; +import { JoinServerModal } from "./modals/JoinServer"; +import { KickMemberModal } from "./modals/KickMember"; +import { LeaveServerModal } from "./modals/LeaveServer"; +import { LinkWarningModal } from "./modals/LinkWarning"; +import { MFAEnableTOTPModal } from "./modals/MFAEnableTOTP"; +import { MFAFlowModal } from "./modals/MFAFlow"; +import { MFARecoveryModal } from "./modals/MFARecovery"; +import { OnboardingModal } from "./modals/Onboarding"; +import { PolicyChangeModal } from "./modals/PolicyChange"; +import { RenameSessionModal } from "./modals/RenameSession"; +import { ReportContentModal } from "./modals/ReportContent"; +import { ResetBotTokenModal } from "./modals/ResetBotToken"; +import { ServerIdentityModal } from "./modals/ServerIdentity"; +import { ServerInfoModal } from "./modals/ServerInfo"; +import { SettingsModal } from "./modals/Settings"; +import { SignOutSessionsModal } from "./modals/SignOutSessions"; +import { SignedOutModal } from "./modals/SignedOut"; +import { UserProfileModal } from "./modals/UserProfile"; +import { UserProfileMutualFriendsModal } from "./modals/UserProfileMutualFriends"; +import { UserProfileMutualGroupsModal } from "./modals/UserProfileMutualGroups"; +import { UserProfileRolesModal } from "./modals/UserProfileRoles"; + +/** + * Render the modal + */ +/* eslint-disable solid/reactivity */ +/* eslint-disable solid/components-return-once */ +export function RenderModal(props: ActiveModal & { onClose: () => void }) { + if (CONFIGURATION.DEBUG) { + console.info( + "components/modal — modal renderer created for type:", + props.props.type, + ); + } + + const [modal2Props] = splitProps(props, ["show", "onClose"]); + const modalProps = mergeProps(props.props, modal2Props); + + switch (modalProps.type) { + case "add_bot": + return ; + case "add_friend": + return ; + case "ban_member": + return ; + case "ban_non_member": + return ; + case "changelog": + return ; + case "add_members_to_group": + return ; + case "channel_info": + return ; + case "channel_toggle_mature": + return ; + case "create_bot": + return ; + case "create_category": + return ; + case "create_channel": + return ; + case "create_group": + return ; + case "create_invite": + return ; + case "create_or_join_server": + return ; + case "create_group_or_server": + return ; + case "create_role": + return ; + case "create_server": + return ; + case "create_webhook": + return ; + case "custom_status": + return ; + case "delete_bot": + return ; + case "delete_channel": + return ; + case "delete_category": + return ; + case "delete_message": + return ; + case "delete_role": + return ; + case "delete_server": + return ; + case "edit_email": + return ; + case "edit_password": + return ; + case "edit_username": + return ; + case "emoji_preview": + return ; + case "error2": + return ; + case "image_viewer": + return ; + case "invite": + return ; + case "join_server": + return ; + case "kick_member": + return ; + case "leave_server": + return ; + case "link_warning": + return ; + case "mfa_enable_totp": + return ; + case "mfa_flow": + return ; + case "mfa_recovery": + return ; + case "onboarding": + return ; + case "policy_change": + return ; + case "rename_session": + return ; + case "report_content": + return ; + case "server_identity": + return ; + case "server_info": + return ; + case "settings": + return ; + case "signed_out": + return ; + case "sign_out_sessions": + return ; + case "user_profile": + return ; + case "user_profile_roles": + return ; + case "user_profile_mutual_friends": + return ; + case "user_profile_mutual_groups": + return ; + case "reset_bot_token": + return ; + + default: + console.error( + "Failed to create modal for", + props.props.type, + "as it is not registered.", + ); + } +} diff --git a/packages/client/components/modal/modals/AddBot.tsx b/packages/client/components/modal/modals/AddBot.tsx new file mode 100644 index 00000000..81eecdcc --- /dev/null +++ b/packages/client/components/modal/modals/AddBot.tsx @@ -0,0 +1,222 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { Show, createMemo, createSignal } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { Server } from "upryzing.js"; +import { cva } from "styled-system/css"; +import { styled } from "styled-system/jsx"; +import { decodeTime } from "ulid"; + +import { useClient } from "@revolt/client"; +import { Markdown } from "@revolt/markdown"; +import { + Avatar, + Column, + Dialog, + DialogProps, + Form2, + Ripple, + Text, + TextField, + Time, +} from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Modal to join a server + */ +export function AddBotModal(props: DialogProps & Modals & { type: "add_bot" }) { + const { t } = useLingui(); + const client = useClient(); + const { showError } = useModals(); + + const [filter, setFilter] = createSignal(""); + + const filterLowercase = createMemo(() => filter().toLowerCase()); + + const availableGroups = createMemo(() => { + const instance = client(); + + return [ + ...instance.servers + .filter((server) => server.havePermission("ManageServer")) + // this won't always work, but we might as well try: + .filter((server) => !server.getMember(props.invite.id)), + ...instance.channels + .filter((channel) => channel.type === "Group") + .filter((channel) => !channel.recipientIds.has(props.invite.id)), + ] + .filter((group) => group.name.toLowerCase().includes(filterLowercase())) + .toSorted((a, b) => a.name.localeCompare(b.name)) + .map((item) => ({ item, value: item.id })); + }); + + const group = createFormGroup({ + id: createFormControl([] as string[], { + required: true, + }), + }); + + async function onSubmit() { + try { + const entry = availableGroups().find( + (entry) => entry.value === group.controls.id.value[0], + )!; + + if (entry.item instanceof Server) { + await props.invite.addToServer(entry.item); + } else { + await props.invite.addToGroup(entry.item); + } + + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Cancel }, + { + text: Add, + onClick: () => { + onSubmit(); // doesn't go through submitHandler! + // much like other modals don't either + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > + + + + + {props.invite.username} + + + Registered since{" "} + + + + + +
+ + + + Description provided by {props.invite.username} + + +
+ + +
+ + + setFilter(e.currentTarget.value)} + /> + + + {(item, selected) => ( + + + {" "} + {item.name} + + )} + + + + + Bots are not verified by Upryzing. + + + The bot will not be granted any permissions. + + + + +
+ ); +} + +const description = cva({ + base: { + position: "relative", + maxHeight: "120px", + padding: "var(--gap-md)", + borderRadius: "var(--borderRadius-lg)", + color: "var(--md-sys-color-on-secondary-container)", + background: "var(--md-sys-color-secondary-container)", + }, +}); + +const ProvidedBy = styled("div", { + base: { + bottom: 0, + position: "sticky", + background: "var(--md-sys-color-secondary-container)", + }, +}); + +const CoverText = styled("div", { + base: { + position: "relative", + + "& *": { + top: 0, + width: "100%", + position: "absolute", + height: "var(--gap-md)", + background: "var(--md-sys-color-secondary-container)", + }, + }, +}); + +const Item = styled("div", { + base: { + height: "40px", + display: "flex", + position: "relative", + alignItems: "center", + gap: "var(--gap-md)", + padding: "var(--gap-md)", + borderRadius: "var(--borderRadius-sm)", + }, + variants: { + selected: { + true: { + color: "var(--md-sys-color-on-primary)", + background: "var(--md-sys-color-primary)", + }, + }, + }, +}); diff --git a/packages/client/components/modal/modals/AddFriend.tsx b/packages/client/components/modal/modals/AddFriend.tsx index 4bf3e6a0..ab1412ee 100644 --- a/packages/client/components/modal/modals/AddFriend.tsx +++ b/packages/client/components/modal/modals/AddFriend.tsx @@ -1,32 +1,65 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal for adding another user as a friend + * Add a new friend by username */ -const AddFriend: PropGenerator<"add_friend"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.context_menu.add_friend"), - }, - schema: { - username: "text", - }, - data: { - username: { - field: "Username", - }, - }, - callback: async ({ username }) => - void (await props.client.api.post(`/users/friend`, { username })), - submit: { - children: t("app.special.modals.actions.ok"), - }, +export function AddFriendModal( + props: DialogProps & Modals & { type: "add_friend" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + username: createFormControl("", { required: true }), }); -}; -export default AddFriend; + async function onSubmit() { + try { + await props.client.api.post(`/users/friend`, { + username: group.controls.username.value, + }); + + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Add a new friend} + actions={[ + { text: Close }, + { + text: Send Request, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + +
+ ); +} diff --git a/packages/client/components/modal/modals/AddMembersToGroup.tsx b/packages/client/components/modal/modals/AddMembersToGroup.tsx new file mode 100644 index 00000000..dde37b3d --- /dev/null +++ b/packages/client/components/modal/modals/AddMembersToGroup.tsx @@ -0,0 +1,111 @@ +import { createFormControl, createFormGroup } from "solid-forms"; +import { createMemo, createSignal } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { useClient } from "@revolt/client"; +import { + Avatar, + Column, + Dialog, + DialogProps, + Form2, + Row, + TextField, +} from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Add members to an existing group + */ +export function AddMembersToGroupModal( + props: DialogProps & Modals & { type: "add_members_to_group" }, +) { + const { t } = useLingui(); + const client = useClient(); + const { showError } = useModals(); + + const group = createFormGroup({ + users: createFormControl([] as string[], { required: true }), + }); + + async function onSubmit() { + try { + for (const user of group.controls.users.value) { + await props.group.addMember(user); + } + + props.onClose(); + } catch (err) { + showError(err); + } + } + + const [filter, setFilter] = createSignal(""); + + const filterLowercase = createMemo(() => filter().toLowerCase()); + + const users = createMemo(() => + client() + .users.filter((user) => user.relationship === "Friend") + .filter((user) => !props.group.recipientIds.has(user.id)) + .filter((user) => + user.displayName.toLowerCase().includes(filterLowercase()), + ) + .toSorted((a, b) => a.displayName.localeCompare(b.displayName)) + .map((user) => ({ item: user, value: user.id })), + ); + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Add friends to group} + actions={[ + { text: Close }, + { + text: Add, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + setFilter(e.currentTarget.value)} + /> + + + {(item) => ( + + {" "} + {item.displayName} + + )} + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/BanMember.tsx b/packages/client/components/modal/modals/BanMember.tsx index b5a7a021..87220854 100644 --- a/packages/client/components/modal/modals/BanMember.tsx +++ b/packages/client/components/modal/modals/BanMember.tsx @@ -1,47 +1,71 @@ -import { useTranslation } from "@revolt/i18n"; -import { Avatar, Column } from "@revolt/ui"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Avatar, Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal to ban server member + * Ban a server member with reason */ -const BanMember: PropGenerator<"ban_member"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.context_menu.ban_member"), - }, - schema: { - member: "custom", - reason: "text", - }, - data: { - member: { - element: ( - - - {t("app.special.modals.prompt.confirm_ban", { - name: props.member.user?.username as string, - })} - - ), - }, - reason: { - field: t("app.special.modals.prompt.confirm_ban_reason"), - }, - }, - callback: async ({ reason }) => - void (await props.member.server!.banUser(props.member.id.user, { - reason, - })), - submit: { - variant: "error", - children: t("app.special.modals.actions.ban"), - }, +export function BanMemberModal( + props: DialogProps & Modals & { type: "ban_member" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + reason: createFormControl(""), }); -}; -export default BanMember; + async function onSubmit() { + try { + await props.member.ban({ + reason: group.controls.reason.value, + }); + + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Ban Member} + actions={[ + { text: Cancel }, + { + text: Ban, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + You are about to ban {props.member.user?.username} + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/BanNonMember.tsx b/packages/client/components/modal/modals/BanNonMember.tsx new file mode 100644 index 00000000..4e8c6d5f --- /dev/null +++ b/packages/client/components/modal/modals/BanNonMember.tsx @@ -0,0 +1,76 @@ +import { createFormControl, createFormGroup } from "solid-forms"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Avatar, Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Ban a server non-member with reason + */ +export function BanNonMemberModal( + props: DialogProps & Modals & { type: "ban_non_member" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + reason: createFormControl(""), + }); + + async function onSubmit() { + try { + await props.server.banUser(props.user.id, { + reason: group.controls.reason.value, + }); + + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Ban User} + actions={[ + { text: Cancel }, + { + text: Ban, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + You are about to ban {props.user?.username} + + + + This user is not part of the server and may already be banned + + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/Changelog.tsx b/packages/client/components/modal/modals/Changelog.tsx index 936d2049..1495a509 100644 --- a/packages/client/components/modal/modals/Changelog.tsx +++ b/packages/client/components/modal/modals/Changelog.tsx @@ -1,12 +1,14 @@ import { For, Match, Switch, createSignal } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; import { styled } from "styled-system/jsx"; -import { dayjs, useTranslation } from "@revolt/i18n"; -import { CategoryButton, Column } from "@revolt/ui"; -import type { Action } from "@revolt/ui/components/design/atoms/display/Modal"; +import { CategoryButton, Column, Dialog, DialogProps } from "@revolt/ui"; +import type { DialogAction } from "@revolt/ui/components/design/Dialog"; -import { PropGenerator } from "../types"; +import { Markdown } from "@revolt/markdown"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; +import { Modals } from "../types"; /** * Changelog element @@ -14,26 +16,78 @@ import { PropGenerator } from "../types"; type Element = | string | { - type: "image"; - src: string; - }; + type: "image"; + src: string; + }; /** * Changelog post */ export interface ChangelogPost { + icon: string; date: Date; + link: string; title: string; content: Element[]; } +const ChangelogPosts: ChangelogPost[] = [ + // { + // icon: "key", + // date: new Date("2022-06-12T20:39:16.674Z"), + // title: "Secure your account with 2FA", + // content: [ + // "Two-factor authentication is now available to all users, you can now head over to settings to enable recovery codes and an authenticator app.", + // { + // type: "image", + // src: "https://autumn.revolt.chat/attachments/E21kwmuJGcASgkVLiSIW0wV3ggcaOWjW0TQF7cdFNY/image.png", + // }, + // "Once enabled, you will be prompted on login.", + // { + // type: "image", + // src: "https://autumn.revolt.chat/attachments/LWRYoKR2tE1ggW_Lzm547P1pnrkNgmBaoCAfWvHE74/image.png", + // }, + // "Other authentication methods coming later, stay tuned!", + // ], + // }, + { + icon: "voice_chat", + date: new Date("2025-11-08T14:00:00.000Z"), + link: "https://stoat.chat/updates/web-0013", + title: "Lavender: 0.0.13", + content: [ + `This update brings a host of improvements to voice chats along with an improved messaging experience. + +## Improved Voice Chats +A brand new user interface with picture-in-picture support to keep an eye on your voice chats while you multitask.`, + { + type: "image", + src: "https://stoat.chat/content/changelog/web-0.0.13/pip.gif", + }, + `You can now also see who is in a voice chat and who is speaking, making it easier to keep track of conversations. + +## Improved Text Editor +The text editor has been revamped to provide a smoother and more intuitive messaging experience. We've taken and improved the experience from our old web app, featuring rich text preview while not intruding on what you're typing.`, + { + type: "image", + src: "https://stoat.chat/content/changelog/web-0.0.13/text_editor.png", + }, + `For an in-depth look at all the new features and improvements, check out our blog post by pressing read more!`, + ], + }, +]; + +export const CHANGELOG_MODAL_CONST = { + index: 0, + until: new Date("2026-01-01T00:00:00.000Z"), +}; + /** * Modal to display changelog */ -const Changelog: PropGenerator<"changelog"> = (props) => { - const t = useTranslation(); - - // eslint-disable-next-line solid/reactivity +export function ChangelogModal( + props: DialogProps & Modals & { type: "changelog" }, +) { const [log, setLog] = createSignal(props.initial); /** @@ -41,48 +95,47 @@ const Changelog: PropGenerator<"changelog"> = (props) => { * @returns Log */ const currentLog = () => - typeof log() !== "undefined" ? props.posts[log()!] : undefined; + typeof log() !== "undefined" ? ChangelogPosts[log()!] : undefined; - return { - title: ( - - {currentLog()!.title} - - ), - description: ( - - - {dayjs(currentLog()!.date).calendar()} - - - ), - actions: () => { - const actions: Action[] = [ - { - variant: "primary", - children: t("app.special.modals.actions.close"), - onClick: () => true, + const actions = () => { + const actionList: DialogAction[] = [ + { + text: Read More, + onClick() { + window.open(currentLog()?.link, "_blank"); }, - ]; - - if (currentLog()) { - actions.push({ - variant: "plain", - children: t("app.special.modals.changelogs.older"), - onClick: () => { - setLog(undefined); - return false; - }, - }); - } + }, + { text: Close }, + ]; + + // if (currentLog()) { + // actionList.push({ + // text: View older updates, + // onClick: () => { + // setLog(undefined); + // return false; + // }, + // }); + // } + + return actionList; + }; - return actions; - }, - children: ( + return ( + Changelog}> + {currentLog()!.title} + + } + actions={actions()} + > - + {(entry, index) => { /** * Handle changing post @@ -90,7 +143,10 @@ const Changelog: PropGenerator<"changelog"> = (props) => { const onClick = () => setLog(index()); return ( - + {entry.icon}} + onClick={onClick} + > {entry.title} ); @@ -103,9 +159,9 @@ const Changelog: PropGenerator<"changelog"> = (props) => { - ), - }; -}; + + ); +} /** * Render a single changelog post @@ -116,9 +172,11 @@ function RenderLog(props: { post: ChangelogPost }) { {(entry) => ( - {entry as string} + + + - + )} @@ -132,8 +190,6 @@ function RenderLog(props: { post: ChangelogPost }) { */ const Image = styled("img", { base: { - borderRadius: "var(--border-radius)", + borderRadius: "var(--borderRadius-md)", }, }); - -export default Changelog; diff --git a/packages/client/components/modal/modals/ChannelInfo.tsx b/packages/client/components/modal/modals/ChannelInfo.tsx index c0d6cbd5..14c2830c 100644 --- a/packages/client/components/modal/modals/ChannelInfo.tsx +++ b/packages/client/components/modal/modals/ChannelInfo.tsx @@ -1,27 +1,21 @@ -import { BiRegularX } from "solid-icons/bi"; +import { Trans } from "@lingui-solid/solid/macro"; import { Markdown } from "@revolt/markdown"; -import { Button, Column, Row, Text, Typography } from "@revolt/ui"; +import { Dialog, DialogProps } from "@revolt/ui"; -import { PropGenerator } from "../types"; +import { Modals } from "../types"; -/** - * Modal to display channel information - */ -const ChannelInfo: PropGenerator<"channel_info"> = (props, onClose) => { - return { - title: ( - - - {`#${props.channel.name}`} - - - - ), - children: , - }; -}; - -export default ChannelInfo; +export function ChannelInfoModal( + props: DialogProps & Modals & { type: "channel_info" }, +) { + return ( + Close }]} + > + + + ); +} diff --git a/packages/client/components/modal/modals/ChannelToggleMature.tsx b/packages/client/components/modal/modals/ChannelToggleMature.tsx new file mode 100644 index 00000000..18192054 --- /dev/null +++ b/packages/client/components/modal/modals/ChannelToggleMature.tsx @@ -0,0 +1,65 @@ +import { Match, Switch } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; + +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +export function ChannelToggleMatureModal( + props: DialogProps & Modals & { type: "channel_toggle_mature" }, +) { + const { showError } = useModals(); + + const change = useMutation(() => ({ + mutationFn: (nsfw: boolean) => props.channel.edit({ nsfw }), + onError: showError, + })); + + return ( + Mark this channel as mature?}> + + Unmark this channel as mature? + + + } + actions={[ + { text: Keep as is }, + { + text: ( + Mark as mature}> + + Unmark as mature + + + ), + onClick: () => change.mutateAsync(!props.channel.mature), + }, + ]} + isDisabled={change.isPending} + > + + Users will be asked to confirm their age before joining this + channel. + + } + > + + + Users will no longer be asked to confirm their age before joining + this channel. + Please ensure the content is appropriate for all ages. + + + + + ); +} diff --git a/packages/client/components/modal/modals/Clipboard.tsx b/packages/client/components/modal/modals/Clipboard.tsx deleted file mode 100644 index c534722e..00000000 --- a/packages/client/components/modal/modals/Clipboard.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { useTranslation } from "@revolt/i18n"; - -import { PropGenerator } from "../types"; - -/** - * Modal to display some text which could not be written to the browser clipboard - */ -const Clipboard: PropGenerator<"clipboard"> = (props) => { - const t = useTranslation(); - - return { - title: t("app.special.modals.clipboard.unavailable"), - description: - location.protocol !== "https:" - ? t("app.special.modals.clipboard.https") - : undefined, - actions: [ - { - onClick: () => true, - confirmation: true, - children: t("app.special.modals.actions.close"), - }, - ], - children: ( - <> - {t("app.special.modals.clipboard.copy")} -
- - {props.text} - - - ), - }; -}; - -export default Clipboard; diff --git a/packages/client/components/modal/modals/CreateBot.tsx b/packages/client/components/modal/modals/CreateBot.tsx index ed2d0dc1..93bc8837 100644 --- a/packages/client/components/modal/modals/CreateBot.tsx +++ b/packages/client/components/modal/modals/CreateBot.tsx @@ -1,38 +1,76 @@ -import { mapAndRethrowError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal to create a new bot + * Create a new bot */ -const CreateBot: PropGenerator<"create_bot"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.special.popovers.create_bot.title"), - }, - schema: { - name: "text", - }, - data: { - name: { - field: t("login.username"), - }, - }, - callback: async ({ name }) => { - const bot = await props.client.bots - .createBot(name) - .catch(mapAndRethrowError); +export function CreateBotModal( + props: DialogProps & Modals & { type: "create_bot" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); - props.onCreate(bot); - }, - submit: { - children: t("app.special.modals.actions.create"), - }, + const group = createFormGroup({ + username: createFormControl("", { required: true }), }); -}; -export default CreateBot; + async function onSubmit() { + try { + const bot = await props.client.bots.createBot( + group.controls.username.value, + ); + + props.onCreate(bot); + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Create a new bot} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + By creating this bot, you agree to the{" "} + + Acceptable Use Policy + + . + + + + + + + ); +} diff --git a/packages/client/components/modal/modals/CreateCategory.tsx b/packages/client/components/modal/modals/CreateCategory.tsx index d910b1ce..9c7fc787 100644 --- a/packages/client/components/modal/modals/CreateCategory.tsx +++ b/packages/client/components/modal/modals/CreateCategory.tsx @@ -1,47 +1,72 @@ +import { createFormControl, createFormGroup } from "solid-forms"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; import { ulid } from "ulid"; -import { mapAndRethrowError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; +import { Dialog, DialogProps, Form2 } from "@revolt/ui"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to create a new category */ -const CreateCategory: PropGenerator<"create_category"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.context_menu.create_category"), - }, - schema: { - name: "text", - }, - data: { - name: { - field: t("app.main.servers.channel_name"), - }, - }, - callback: async ({ name }) => { - await props.server - .edit({ - categories: [ - ...(props.server.categories ?? []), - { - id: ulid(), - title: name, - channels: [], - }, - ], - }) - .catch(mapAndRethrowError); - }, - submit: { - children: t("app.special.modals.actions.create"), - }, +export function CreateCategoryModal( + props: DialogProps & Modals & { type: "create_category" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + name: createFormControl("", { required: true }), }); -}; -export default CreateCategory; + async function onSubmit() { + try { + props.server.edit({ + categories: [ + ...(props.server.categories ?? []), + { + id: ulid(), + title: group.controls.name.value, + channels: [], + }, + ], + }); + + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Create a new category} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + +
+ ); +} diff --git a/packages/client/components/modal/modals/CreateChannel.tsx b/packages/client/components/modal/modals/CreateChannel.tsx index f2bc5d59..b39cbda1 100644 --- a/packages/client/components/modal/modals/CreateChannel.tsx +++ b/packages/client/components/modal/modals/CreateChannel.tsx @@ -1,66 +1,85 @@ -import { mapAndRethrowError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + import { useNavigate } from "@revolt/routing"; +import { Column, Dialog, DialogProps, Form2, Radio2 } from "@revolt/ui"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to create a new server channel */ -const CreateChannel: PropGenerator<"create_channel"> = (props) => { - const t = useTranslation(); +export function CreateChannelModal( + props: DialogProps & Modals & { type: "create_channel" }, +) { + const { t } = useLingui(); const navigate = useNavigate(); + const { showError } = useModals(); - return createFormModal({ - modalProps: { - title: t("app.context_menu.create_channel"), - }, - schema: { - name: "text", - type: "radio", - }, - data: { - name: { - field: t("app.main.servers.channel_name"), - }, - type: { - field: t("app.main.servers.channel_type"), - choices: [ - { - name: t("app.main.servers.text_channel"), - value: "Text", - }, - { - name: t("app.main.servers.voice_channel"), - value: "Voice", - }, - ], - }, - }, - defaults: { - type: "Text", - }, - callback: async ({ name, type }) => { - const channel = await props.server - .createChannel({ - type: type as "Text" | "Voice", - name, - }) - .catch((err) => { - throw mapAndRethrowError(err); - }); + const group = createFormGroup({ + name: createFormControl("", { required: true }), + type: createFormControl("Text"), + }); + + async function onSubmit() { + try { + const channel = await props.server.createChannel({ + type: group.controls.type.value as "Text" | "Voice", + name: group.controls.name.value, + }); if (props.cb) { props.cb(channel); } else { navigate(`/server/${props.server.id}/channel/${channel.id}`); } - }, - submit: { - children: t("app.special.modals.actions.create"), - }, - }); -}; -export default CreateChannel; + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Create channel} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + + + Text Channel + + + Voice Channel + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/CreateGroup.tsx b/packages/client/components/modal/modals/CreateGroup.tsx index ea555622..12092abf 100644 --- a/packages/client/components/modal/modals/CreateGroup.tsx +++ b/packages/client/components/modal/modals/CreateGroup.tsx @@ -1,40 +1,123 @@ -import { mapAndRethrowError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; -import { useNavigate } from "@revolt/routing"; +import { createFormControl, createFormGroup } from "solid-forms"; +import { createMemo, createSignal } from "solid-js"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { useClient } from "@revolt/client"; +import { + Avatar, + Column, + Dialog, + DialogProps, + Form2, + Row, + Text, + TextField, +} from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal to create a new group channel + * Create a new group and optionally add members */ -const CreateGroup: PropGenerator<"create_group"> = (props) => { - const t = useTranslation(); - const navigate = useNavigate(); - - return createFormModal({ - modalProps: { - title: t("app.main.groups.create"), - }, - schema: { - name: "text", - }, - data: { - name: { - field: t("app.main.groups.name"), - }, - }, - callback: async ({ name }) => { - const group = await props.client.channels - .createGroup(name, []) - .catch(mapAndRethrowError); - - navigate(`/channel/${group.id}`); - }, - submit: { - children: t("app.special.modals.actions.create"), - }, +export function CreateGroupModal( + props: DialogProps & Modals & { type: "create_group" }, +) { + const { t } = useLingui(); + const client = useClient(); + const { showError } = useModals(); + + const group = createFormGroup({ + name: createFormControl("", { required: true }), + users: createFormControl([] as string[]), }); -}; -export default CreateGroup; + async function onSubmit() { + try { + await props.client.channels.createGroup( + group.controls.name.value, + group.controls.users.value, + ); + + props.onClose(); + } catch (err) { + showError(err); + } + } + + const [filter, setFilter] = createSignal(""); + + const filterLowercase = createMemo(() => filter().toLowerCase()); + + const users = createMemo(() => + client() + .users.filter((user) => user.relationship === "Friend") + .filter((user) => + user.displayName.toLowerCase().includes(filterLowercase()), + ) + .toSorted((a, b) => a.displayName.localeCompare(b.displayName)) + .map((user) => ({ item: user, value: user.id })), + ); + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Create a new group} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + + Select members to add + + + setFilter(e.currentTarget.value)} + /> + + + {(item) => ( + + {" "} + {item.displayName} + + )} + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/CreateGroupOrServer.tsx b/packages/client/components/modal/modals/CreateGroupOrServer.tsx new file mode 100644 index 00000000..7ff33d68 --- /dev/null +++ b/packages/client/components/modal/modals/CreateGroupOrServer.tsx @@ -0,0 +1,45 @@ +import { Trans } from "@lingui-solid/solid/macro"; + +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Modal to create a group or server + */ +export function CreateGroupOrServer( + props: DialogProps & Modals & { type: "create_group_or_server" }, +) { + const { openModal } = useModals(); + + return ( + { + openModal({ + type: "create_group", + client: props.client, + }); + }, + }, + { + text: "Server", + onClick: () => { + openModal({ + type: "create_server", + client: props.client, + }); + }, + }, + ]} + > + Would you like to create a new group or server? + + ); +} diff --git a/packages/client/components/modal/modals/CreateInvite.tsx b/packages/client/components/modal/modals/CreateInvite.tsx index 22156383..99d5d78a 100644 --- a/packages/client/components/modal/modals/CreateInvite.tsx +++ b/packages/client/components/modal/modals/CreateInvite.tsx @@ -1,14 +1,14 @@ -import { Match, Switch, createSignal, onMount } from "solid-js"; +import { Show, createSignal, onMount } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; import { styled } from "styled-system/jsx"; -import { mapAnyError } from "@revolt/client"; import { CONFIGURATION } from "@revolt/common"; -import { useTranslation } from "@revolt/i18n"; +import { Dialog, DialogProps } from "@revolt/ui"; -import { modalController } from ".."; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Code block which displays invite @@ -31,65 +31,54 @@ const Invite = styled("div", { /** * Modal to create a new invite */ -const CreateInvite: PropGenerator<"create_invite"> = (props) => { - const t = useTranslation(); - - const [processing, setProcessing] = createSignal(false); +export function CreateInviteModal( + props: DialogProps & Modals & { type: "create_invite" }, +) { + const { showError } = useModals(); const [link, setLink] = createSignal("..."); - // Generate an invite code - onMount(() => { - setProcessing(true); - - props.channel - .createInvite() - .then(({ _id }) => - setLink( - CONFIGURATION.IS_UPRYZING - ? `https://web.upryzing.app/invite/${_id}` - : `${window.location.protocol}//${window.location.host}/invite/${_id}` - ) - ) - .catch((err) => - modalController.push({ type: "error", error: mapAnyError(err) }) - ) - .finally(() => setProcessing(false)); - }); - - return createFormModal({ - modalProps: { - title: t("app.context_menu.create_invite"), - }, - schema: { - invite: "custom", - }, - data: { - invite: { - element: ( - - - - {t("app.special.modals.prompt.create_invite_created")} - {link()} - - - + const fetchInvite = useMutation(() => ({ + mutationFn: () => + props.channel + .createInvite() + .then(({ _id }) => + setLink( + CONFIGURATION.IS_UPRYZING + ? `https://stt.gg/${_id}` + : `${window.location.protocol}//${window.location.host}/invite/${_id}`, + ), ), - }, - }, - callback: async () => void 0, - submit: { - children: t("app.special.modals.actions.ok"), - }, - actions: [ - { - children: t("app.context_menu.copy_link"), - onClick: () => modalController.writeText(link()), - }, - ], - }); -}; + onError: showError, + })); + + onMount(() => fetchInvite.mutate()); -export default CreateInvite; + return ( + Create Invite} + actions={[ + { text: OK }, + { + text: Copy Link, + onClick: () => { + navigator.clipboard.writeText(link()); + return false; + }, + }, + ]} + > + Generating invite…} + > + + + Here is your new invite code: {link()} + + + + + ); +} diff --git a/packages/client/components/modal/modals/CreateOrJoinServer.tsx b/packages/client/components/modal/modals/CreateOrJoinServer.tsx index 335288aa..d4691e3d 100644 --- a/packages/client/components/modal/modals/CreateOrJoinServer.tsx +++ b/packages/client/components/modal/modals/CreateOrJoinServer.tsx @@ -1,66 +1,44 @@ -import { styled } from "styled-system/jsx"; +import { Trans } from "@lingui-solid/solid/macro"; -import { useTranslation } from "@revolt/i18n"; -import { iconSize } from "@revolt/ui"; +import { Dialog, DialogProps } from "@revolt/ui"; -import MdAdd from "@material-design-icons/svg/outlined/add.svg?component-solid"; -import MdLink from "@material-design-icons/svg/outlined/link.svg?component-solid"; - -import { modalController } from ".."; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to create or join a server */ -const CreateOrJoinServer: PropGenerator<"create_or_join_server"> = (props) => { - const t = useTranslation(); +export function CreateOrJoinServerModal( + props: DialogProps & Modals & { type: "create_or_join_server" }, +) { + const { openModal } = useModals(); - return { - title: "Create or join a server", - description: ( - - { - modalController.pop(); - modalController.push({ + return ( + { + openModal({ type: "create_server", client: props.client, }); - }} - > - - Create - - { - modalController.pop(); - modalController.push({ type: "join_server", client: props.client }); - }} - > - - Join - - - ), - }; -}; - -// example -const Base = styled("div", { - base: { - gap: "8px", - padding: "8px", - display: "flex", - flexDirection: "row", - "& a": { - width: "128px", - height: "128px", - display: "grid", - placeItems: "center", - borderRadius: "8px", - background: "var(--colours-sidebar-channels-background)", - }, - }, -}); - -export default CreateOrJoinServer; + }, + }, + { + text: "Join", + onClick: () => { + openModal({ type: "join_server", client: props.client }); + }, + }, + ]} + > + + Would you like to create a new server or join an existing one? + + + ); +} diff --git a/packages/client/components/modal/modals/CreateRole.tsx b/packages/client/components/modal/modals/CreateRole.tsx index f7e0ff5d..243e6f5a 100644 --- a/packages/client/components/modal/modals/CreateRole.tsx +++ b/packages/client/components/modal/modals/CreateRole.tsx @@ -1,34 +1,64 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to create a new server role */ -const CreateInvite: PropGenerator<"create_role"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.settings.permissions.create_role"), - }, - schema: { - name: "text", - }, - data: { - name: { - field: t("app.settings.permissions.role_name"), - }, - }, - callback: async ({ name }) => { - const role = await props.server.createRole(name); - props.callback(role.id); - }, - submit: { - children: t("app.special.modals.actions.create"), - }, +export function CreateRoleModal( + props: DialogProps & Modals & { type: "create_role" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + name: createFormControl("", { required: true }), }); -}; -export default CreateInvite; + async function onSubmit() { + try { + const role = await props.server.createRole(group.controls.name.value); + props.callback(role.id); + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Create Role} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/CreateServer.tsx b/packages/client/components/modal/modals/CreateServer.tsx index 80632bcb..4f53bd1a 100644 --- a/packages/client/components/modal/modals/CreateServer.tsx +++ b/packages/client/components/modal/modals/CreateServer.tsx @@ -1,51 +1,78 @@ -import { mapAndRethrowError } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + import { useNavigate } from "@revolt/routing"; +import { Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to create a new server */ -const CreateServer: PropGenerator<"create_server"> = (props) => { - const t = useTranslation(); +export function CreateServerModal( + props: DialogProps & Modals & { type: "create_server" }, +) { + const { t } = useLingui(); const navigate = useNavigate(); + const { showError } = useModals(); + + const group = createFormGroup({ + name: createFormControl("", { required: true }), + }); - return createFormModal({ - modalProps: { - title: t("app.main.servers.create"), - description: ( - <> - By creating this server, you agree to the{" "} - - Acceptable Use Policy - - . - - ), - }, - schema: { - name: "text", - }, - data: { - name: { - field: t("app.main.servers.name"), - }, - }, - callback: async ({ name }) => { - const server = await props.client.servers - .createServer({ - name, - }) - .catch(mapAndRethrowError); + async function onSubmit() { + try { + const server = await props.client.servers.createServer({ + name: group.controls.name.value, + }); setTimeout(() => navigate(`/server/${server.id}`)); - }, - submit: { - children: t("app.special.modals.actions.create"), - }, - }); -}; + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); -export default CreateServer; + return ( + Create server} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + By creating this server, you agree to the{" "} + + Acceptable Use Policy + + . + + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/CreateWebhook.tsx b/packages/client/components/modal/modals/CreateWebhook.tsx new file mode 100644 index 00000000..5d298b08 --- /dev/null +++ b/packages/client/components/modal/modals/CreateWebhook.tsx @@ -0,0 +1,66 @@ +import { createFormControl, createFormGroup } from "solid-forms"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Create a new group and optionally add members + */ +export function CreateWebhookModal( + props: DialogProps & Modals & { type: "create_webhook" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + name: createFormControl("", { required: true }), + }); + + async function onSubmit() { + try { + const webhook = await props.channel.createWebhook( + group.controls.name.value, + ); + + props.onClose(); + props.callback(webhook.id); + } catch (err) { + showError(err); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Create a webhook} + actions={[ + { text: Close }, + { + text: Create, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + +
+ ); +} diff --git a/packages/client/components/modal/modals/CustomStatus.tsx b/packages/client/components/modal/modals/CustomStatus.tsx index 629ceeeb..446e63cc 100644 --- a/packages/client/components/modal/modals/CustomStatus.tsx +++ b/packages/client/components/modal/modals/CustomStatus.tsx @@ -1,42 +1,71 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal for editing user's custom status */ -const CustomStatus: PropGenerator<"custom_status"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.context_menu.set_custom_status"), - }, - schema: { - text: "text", - }, - defaults: { - text: props.client.user?.status?.text as string, - }, - data: { - text: { - field: t("app.context_menu.custom_status"), - // @ts-expect-error this is a hack; replace with plain element & panda-css - "use:autoComplete": true, - }, - }, - callback: ({ text }) => - props.client.user!.edit({ +export function CustomStatusModal( + props: DialogProps & Modals & { type: "custom_status" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + /* eslint-disable solid/reactivity */ + const group = createFormGroup({ + text: createFormControl(props.client.user?.status?.text ?? ""), + }); + /* eslint-enable solid/reactivity */ + + async function onSubmit() { + try { + const text = group.controls.text.value; + await props.client.user!.edit({ status: { ...props.client.user?.status, text: text.trim().length > 0 ? text : undefined, }, - }), - submit: { - children: t("app.special.modals.actions.save"), - }, - }); -}; + }); + props.onClose(); + } catch (error) { + showError(error); + } + } -export default CustomStatus; + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Set your status} + actions={[ + { text: Close }, + { + text: Save, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/DeleteBot.tsx b/packages/client/components/modal/modals/DeleteBot.tsx index cb795045..004cfc27 100644 --- a/packages/client/components/modal/modals/DeleteBot.tsx +++ b/packages/client/components/modal/modals/DeleteBot.tsx @@ -1,29 +1,45 @@ -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useClient } from "@revolt/client"; +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to delete a bot */ -const DeleteBot: PropGenerator<"delete_bot"> = (props) => { - const t = useTranslation(); +export function DeleteBotModal( + props: DialogProps & Modals & { type: "delete_bot" }, +) { + const client = useClient(); + const { showError, mfaFlow } = useModals(); - return createFormModal({ - modalProps: { - title: t("app.special.modals.prompt.confirm_delete", { - name: props.bot.user!.displayName, - }), - description: t("app.special.modals.prompt.confirm_delete_long"), - }, - schema: {}, - data: {}, - callback: () => props.bot.delete(), - submit: { - variant: "error", - children: t("app.special.modals.actions.delete"), + const deleteBot = useMutation(() => ({ + mutationFn: async () => { + const mfa = await client().account.mfa(); + await mfaFlow(mfa as never); + await props.bot.delete(); // TODO: should use ticket in API }, - }); -}; + onError: showError, + })); -export default DeleteBot; + return ( + Delete {props.bot.user!.displayName}?} + actions={[ + { text: Cancel }, + { + text: Delete, + onClick: () => deleteBot.mutateAsync(), + }, + ]} + isDisabled={deleteBot.isPending} + > + Once it's deleted, there's no going back. + + ); +} diff --git a/packages/client/components/modal/modals/DeleteCategory.tsx b/packages/client/components/modal/modals/DeleteCategory.tsx new file mode 100644 index 00000000..8ef0214c --- /dev/null +++ b/packages/client/components/modal/modals/DeleteCategory.tsx @@ -0,0 +1,43 @@ +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; + +import { Dialog, DialogProps } from "@revolt/ui"; +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Modal to delete a category + */ +export function DeleteCategoryModal( + props: DialogProps & Modals & { type: "delete_category" }, +) { + const { showError } = useModals(); + + const deleteCategory = useMutation(() => ({ + mutationFn: () => + props.server.edit({ + categories: (props.server.categories ?? []).filter( + (c) => c.id !== props.categoryId, + ), + }), + onError: showError, + })); + + return ( + Delete category} + actions={[ + { text: Cancel }, + { + text: Delete, + onClick: deleteCategory.mutateAsync, + }, + ]} + isDisabled={deleteCategory.isPending} + > + Once it's deleted, there's no going back. + + ); +} diff --git a/packages/client/components/modal/modals/DeleteChannel.tsx b/packages/client/components/modal/modals/DeleteChannel.tsx index 6f966571..178dc2c5 100644 --- a/packages/client/components/modal/modals/DeleteChannel.tsx +++ b/packages/client/components/modal/modals/DeleteChannel.tsx @@ -1,43 +1,72 @@ -import { useTranslation } from "@revolt/i18n"; +import { Match, Switch } from "solid-js"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; + +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to delete a channel */ -const DeleteChannel: PropGenerator<"delete_channel"> = (props) => { - const t = useTranslation(); - const i18nKey = `app.special.modals.prompt.${ - props.channel.type === "DirectMessage" - ? "confirm_close_dm" - : props.channel.type === "Group" - ? "confirm_leave" - : "confirm_delete" - }`; - - const i18nKeyAction = - props.channel.type === "DirectMessage" - ? "close" - : props.channel.type === "Group" - ? "leave" - : "delete"; +export function DeleteChannelModal( + props: DialogProps & Modals & { type: "delete_channel" }, +) { + const { showError } = useModals(); - return createFormModal({ - modalProps: { - title: t(i18nKey as any, { - name: props.channel.name ?? props.channel.recipient?.displayName, - }), - description: t((i18nKey + "_long") as any), - }, - schema: {}, - data: {}, - callback: () => props.channel.delete(), - submit: { - variant: "error", - children: t(`app.special.modals.actions.${i18nKeyAction}`), - }, - }); -}; + const deleteChannel = useMutation(() => ({ + mutationFn: () => props.channel.delete(), + onError: showError, + })); -export default DeleteChannel; + return ( + Delete {props.channel.name}?}> + + Leave {props.channel.name}? + + + + Close conversation with {props.channel.recipient?.displayName}? + + + + } + actions={[ + { text: Cancel }, + { + text: ( + Delete}> + + Leave + + + Close + + + ), + onClick: () => deleteChannel.mutateAsync(), + }, + ]} + isDisabled={deleteChannel.isPending} + > + Once it's deleted, there's no going back.} + > + + You won't be able to rejoin unless you are re-invited. + + + + You can re-open it later, but it will disappear on both sides. + + + + + ); +} diff --git a/packages/client/components/modal/modals/DeleteMessage.tsx b/packages/client/components/modal/modals/DeleteMessage.tsx index 661fd291..2280c8cb 100644 --- a/packages/client/components/modal/modals/DeleteMessage.tsx +++ b/packages/client/components/modal/modals/DeleteMessage.tsx @@ -1,34 +1,39 @@ -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to delete a message */ -const DeleteMessage: PropGenerator<"delete_message"> = (props) => { - const t = useTranslation(); +export function DeleteMessageModal( + props: DialogProps & Modals & { type: "delete_message" }, +) { + const { showError } = useModals(); - return createFormModal({ - modalProps: { - title: t("app.context_menu.delete_message"), - description: t("app.special.modals.prompt.confirm_delete_message_long"), - }, - schema: { - message: "custom", - }, - data: { - message: { - // TODO: find a fix or render part of it? - element: "MESSAGE", - }, - }, - callback: () => props.message.delete(), - submit: { - variant: "error", - children: t("app.special.modals.actions.delete"), - }, - }); -}; + const deleteMessage = useMutation(() => ({ + mutationFn: () => props.message.delete(), + onError: showError, + })); -export default DeleteMessage; + return ( + Delete message} + actions={[ + { text: Cancel }, + { + text: Delete, + onClick: () => deleteMessage.mutateAsync(), + }, + ]} + isDisabled={deleteMessage.isPending} + > + Are you sure you want to delete this? + + ); +} diff --git a/packages/client/components/modal/modals/DeleteRole.tsx b/packages/client/components/modal/modals/DeleteRole.tsx new file mode 100644 index 00000000..26302b76 --- /dev/null +++ b/packages/client/components/modal/modals/DeleteRole.tsx @@ -0,0 +1,39 @@ +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; + +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Modal to delete a role + */ +export function DeleteRoleModal( + props: DialogProps & Modals & { type: "delete_role" }, +) { + const { showError } = useModals(); + + const deleteRole = useMutation(() => ({ + mutationFn: () => props.role.delete(), + onError: showError, + })); + + return ( + Delete {props.role.name}?} + actions={[ + { text: Cancel }, + { + text: Delete, + onClick: () => deleteRole.mutateAsync(), + }, + ]} + isDisabled={deleteRole.isPending} + > + Once it's deleted, there's no going back. + + ); +} diff --git a/packages/client/components/modal/modals/DeleteServer.tsx b/packages/client/components/modal/modals/DeleteServer.tsx index 9672bbc7..077d0420 100644 --- a/packages/client/components/modal/modals/DeleteServer.tsx +++ b/packages/client/components/modal/modals/DeleteServer.tsx @@ -1,36 +1,45 @@ +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; + import { useClient } from "@revolt/client"; -import { useTranslation } from "@revolt/i18n"; +import { Dialog, DialogProps } from "@revolt/ui"; -import { modalController } from ".."; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to delete a server */ -const DeleteServer: PropGenerator<"delete_server"> = (props) => { - const t = useTranslation(); +export function DeleteServerModal( + props: DialogProps & Modals & { type: "delete_server" }, +) { const client = useClient(); + const { showError, mfaFlow } = useModals(); - return createFormModal({ - modalProps: { - title: t("app.special.modals.prompt.confirm_delete", { - name: props.server.name, - }), - description: t("app.special.modals.prompt.confirm_delete_long"), - }, - schema: {}, - data: {}, - callback: async () => { + const deleteServer = useMutation(() => ({ + mutationFn: async () => { const mfa = await client().account.mfa(); - await modalController.mfaFlow(mfa as never); + await mfaFlow(mfa as never); await props.server.delete(); // TODO: should use ticket in API }, - submit: { - variant: "error", - children: t("app.special.modals.actions.delete"), - }, - }); -}; + onError: showError, + })); -export default DeleteServer; + return ( + Delete {props.server.name}?} + actions={[ + { text: Cancel }, + { + text: Delete, + onClick: () => deleteServer.mutateAsync(), + }, + ]} + isDisabled={deleteServer.isPending} + > + Once it's deleted, there's no going back. + + ); +} diff --git a/packages/client/components/modal/modals/EditDisplayName.tsx b/packages/client/components/modal/modals/EditDisplayName.tsx deleted file mode 100644 index f7b981bd..00000000 --- a/packages/client/components/modal/modals/EditDisplayName.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { useTranslation } from "@revolt/i18n"; - -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; - -/** - * Modal for editing display name - */ -const EditDisplayName: PropGenerator<"edit_display_name"> = (props) => { - const t = useTranslation(); - - /** - * Apply new display name - * @param display_name Display name - */ - async function applyName(display_name?: string) { - if (display_name && display_name !== props.user.username) { - await props.user.edit({ display_name }); - } else { - await props.user.edit({ - remove: ["DisplayName"], - }); - } - } - - return createFormModal({ - modalProps: { - title: t("app.special.modals.account.change.display_name"), - }, - schema: { - display_name: "text", - }, - data: { - display_name: { - field: "Display Name", - placeholder: "Choose a display name", - }, - }, - callback: ({ display_name }) => applyName(display_name), - submit: { - children: t("app.special.modals.actions.update"), - }, - actions: [ - { - type: "button", - variant: "plain", - children: "Clear", - /** - * Clear display name - */ - async onClick() { - await applyName(); - return true; - }, - }, - ], - }); -}; - -export default EditDisplayName; diff --git a/packages/client/components/modal/modals/EditEmail.tsx b/packages/client/components/modal/modals/EditEmail.tsx index eea1b1c1..1c6b3398 100644 --- a/packages/client/components/modal/modals/EditEmail.tsx +++ b/packages/client/components/modal/modals/EditEmail.tsx @@ -1,38 +1,77 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal for editing email + * Change account email address */ -const EditEmail: PropGenerator<"edit_email"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.special.modals.account.change.email"), - }, - schema: { - email: "text", - currentPassword: "password", - }, - data: { - email: { - field: t("login.email"), - placeholder: t("login.enter.username"), - }, - currentPassword: { - field: t("login.current_password"), - placeholder: t("login.enter.current_password"), - }, - }, - callback: async ({ email, currentPassword }) => - void (await props.client.account.changeEmail(email, currentPassword)), - submit: { - children: t("app.special.modals.actions.update"), - }, +export function EditEmailModal( + props: DialogProps & Modals & { type: "edit_email" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + email: createFormControl("", { required: true }), + currentPassword: createFormControl("", { required: true }), }); -}; -export default EditEmail; + async function onSubmit() { + try { + await props.client.account.changeEmail( + group.controls.email.value, + group.controls.currentPassword.value, + ); + + props.onClose(); + } catch (err) { + showError(err); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Change login email} + actions={[ + { text: Close }, + { + text: Send email, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/EditKeybind.tsx b/packages/client/components/modal/modals/EditKeybind.tsx deleted file mode 100644 index ad31720f..00000000 --- a/packages/client/components/modal/modals/EditKeybind.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import { BiRegularReset } from "solid-icons/bi"; -import { createSignal, onMount } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -import { useTranslation } from "@revolt/i18n"; -import { - KEYBINDING_MODIFIER_KEYS, - KeyComboSequence as TKeySequence, -} from "@revolt/keybinds"; -import { Button, KeySequence } from "@revolt/ui"; - -import { PropGenerator } from "../types"; - -const Container = styled("div", { - base: { - display: "flex", - gap: "1ch", - placeItems: "center", - }, -}); - -const KeybindInput = styled("output", { - base: { - cursor: "pointer", - display: "flex", - alignItems: "center", - fontSize: "0.875rem", - minWidth: 0, - flexGrow: 1, - padding: "8px", - fontFamily: "var(--fonts-monospace)", - borderRadius: "var(--borderRadius-md)", - background: "var(--unset-bg)", - height: "4ch", - "& kbd": { - flexWrap: "wrap", - }, - }, -}); - -const REPLACEMENTS: Record = { - " ": "Space", -}; - -// TODO: maybe add warning if the user doesn't have a modifier included? -export const EditKeybind: PropGenerator<"edit_keybind"> = (props) => { - const t = useTranslation(); - - const [sequence, setSequence] = createSignal([]); - // temporary state for modifier keys to live in so it still feels resposive when making combos - const [mods, setMods] = createSignal([]); - let okButton: HTMLButtonElement; - let input: HTMLOutputElement | undefined; - // TODO: use DOM types instead - let timer: NodeJS.Timeout; - - const submit = () => { - // TODO: warning about this instead of silently failing - if (sequence().length > 0) { - props.onSubmit(sequence()); - } - }; - - const focusSubmit = () => { - clearTimeout(timer); - okButton!.focus(); - }; - - const reset = () => { - setSequence([]); - setMods([]); - input?.focus(); - }; - - function onKeyDown(event: KeyboardEvent) { - event.stopImmediatePropagation(); - event.preventDefault(); - - if (event.repeat) return; - timer && clearTimeout(timer); - - const mods = KEYBINDING_MODIFIER_KEYS.filter((mod) => - event.getModifierState(mod) - ); - - if (KEYBINDING_MODIFIER_KEYS.includes(event.key)) { - setMods(mods); - } else { - setMods([]); - setSequence((seq) => [ - ...seq, - [...mods, REPLACEMENTS[event.key] ?? event.key], - ]); - if (sequence().length >= 1) { - focusSubmit(); - } - } - } - - function onKeyUp(event: KeyboardEvent) { - event.stopImmediatePropagation(); - event.preventDefault(); - - // Allow the user to use keyboard navigation again. - if (mods.length === 0) { - timer = setTimeout(() => { - focusSubmit(); - }, 1000); - } - - if (mods.length > 0 && KEYBINDING_MODIFIER_KEYS.includes(event.key)) { - setSequence((seq) => [...seq, mods()]); - setMods([]); - if (sequence().length >= 1) { - focusSubmit(); - } - } - } - - onMount(() => { - input?.focus(); - }); - - return { - // TODO: the way this reads and looks is awkward, find a better way - title: t("app.special.modals.edit_keybind.title", { - action: t( - `app.settings.pages.keybinds.action.${props.action}.title` as any - ), - }), - actions: [ - { - ref: (el: any) => (okButton = el), - onClick: () => { - submit(); - return true; - }, - confirmation: true, - children: t("app.special.modals.actions.ok"), - }, - { - onClick: () => true, - confirmation: false, - children: t("app.special.modals.actions.cancel"), - }, - ], - children: ( - - - {} - - - - ), - }; -}; - -export default EditKeybind; diff --git a/packages/client/components/modal/modals/EditPassword.tsx b/packages/client/components/modal/modals/EditPassword.tsx index f16a9bbd..c5aaf7c8 100644 --- a/packages/client/components/modal/modals/EditPassword.tsx +++ b/packages/client/components/modal/modals/EditPassword.tsx @@ -1,41 +1,77 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal for editing password + * Change account password */ -const EditPassword: PropGenerator<"edit_password"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.special.modals.account.change.password"), - }, - schema: { - password: "password", - currentPassword: "password", - }, - data: { - password: { - field: t("login.password"), - placeholder: t("login.enter.password"), - }, - currentPassword: { - field: t("login.current_password"), - placeholder: t("login.enter.current_password"), - }, - }, - callback: async ({ password, currentPassword }) => - void (await props.client.account.changePassword( - password, - currentPassword - )), - submit: { - children: t("app.special.modals.actions.update"), - }, +export function EditPasswordModal( + props: DialogProps & Modals & { type: "edit_password" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + password: createFormControl("", { required: true }), + currentPassword: createFormControl("", { required: true }), }); -}; -export default EditPassword; + async function onSubmit() { + try { + await props.client.account.changePassword( + group.controls.password.value, + group.controls.currentPassword.value, + ); + + props.onClose(); + } catch (err) { + showError(err); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Change login password} + actions={[ + { text: Close }, + { + text: Change, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/EditUsername.tsx b/packages/client/components/modal/modals/EditUsername.tsx index 765e0bab..d1fa4be7 100644 --- a/packages/client/components/modal/modals/EditUsername.tsx +++ b/packages/client/components/modal/modals/EditUsername.tsx @@ -1,38 +1,92 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2, Row, Text } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal for editing username + * Change account username */ -const EditUsername: PropGenerator<"edit_username"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.special.modals.account.change.username"), - }, - schema: { - username: "text", - password: "password", - }, - data: { - username: { - field: "Username", - placeholder: t("login.enter.username"), - }, - password: { - field: "Current Password", - placeholder: t("login.enter.current_password"), - }, - }, - callback: async ({ username, password }) => - void (await props.client.user!.changeUsername(username, password)), - submit: { - children: t("app.special.modals.actions.update"), - }, +export function EditUsernameModal( + props: DialogProps & Modals & { type: "edit_username" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + // we don't expect it to change nor want it to + // eslint-disable-next-line solid/reactivity + username: createFormControl(props.client.user!.username, { + required: true, + }), + currentPassword: createFormControl("", { required: true }), }); -}; -export default EditUsername; + async function onSubmit() { + try { + const previousDiscriminator = props.client.user!.discriminator; + await props.client.user!.changeUsername( + group.controls.username.value, + group.controls.currentPassword.value, + ); + + props.onClose(); + + if (props.client.user!.discriminator !== previousDiscriminator) { + // open modal alerting user that discirminator changed + // or just open a modal anyways with new uname? + alert( + // temporary solution + `Your discriminator changed to ${props.client.user!.discriminator}`, + ); + } + } catch (err) { + showError(err); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Change username} + actions={[ + { text: Close }, + { + text: Change, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + #{props.client.user!.discriminator} + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/EmojiPreview.tsx b/packages/client/components/modal/modals/EmojiPreview.tsx new file mode 100644 index 00000000..f6b8534c --- /dev/null +++ b/packages/client/components/modal/modals/EmojiPreview.tsx @@ -0,0 +1,28 @@ +import { Trans } from "@lingui-solid/solid/macro"; + +import { Avatar, Dialog, DialogProps } from "@revolt/ui"; + +import { Modals } from "../types"; + +export function EmojiPreviewModal( + props: DialogProps & Modals & { type: "emoji_preview" }, +) { + return ( + Delete, + async onClick() { + await props.emoji.delete(); + }, + }, + { text: Close }, + ]} + > + + + ); +} diff --git a/packages/client/components/modal/modals/Error.tsx b/packages/client/components/modal/modals/Error.tsx deleted file mode 100644 index 7545560e..00000000 --- a/packages/client/components/modal/modals/Error.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { useTranslation } from "@revolt/i18n"; - -import { PropGenerator } from "../types"; - -/** - * Modal to notify the user they've been signed out - */ -const Error: PropGenerator<"error"> = (props) => { - const t = useTranslation(); - - return { - title: t("app.special.modals.signed_out"), - children: {props.error}, - actions: [ - { - children: t("app.special.modals.actions.ok"), - palette: "secondary", - onClick() { - return true; - }, - }, - ], - }; -}; - -export default Error; diff --git a/packages/client/components/modal/modals/Error2.tsx b/packages/client/components/modal/modals/Error2.tsx new file mode 100644 index 00000000..3f80151a --- /dev/null +++ b/packages/client/components/modal/modals/Error2.tsx @@ -0,0 +1,24 @@ +import { Trans } from "@lingui-solid/solid/macro"; + +import { useError } from "@revolt/i18n"; +import { Dialog, DialogProps, iconSize } from "@revolt/ui"; + +import MdError from "@material-design-icons/svg/outlined/error.svg?component-solid"; + +import { Modals } from "../types"; + +export function Error2Modal(props: DialogProps & Modals & { type: "error2" }) { + const err = useError(); + + return ( + } + show={props.show} + onClose={props.onClose} + title={An error occurred.} + actions={[{ text: OK }]} + > + {err(props.error)} + + ); +} diff --git a/packages/client/components/modal/modals/ImageViewer.tsx b/packages/client/components/modal/modals/ImageViewer.tsx index ba444209..d7b0d622 100644 --- a/packages/client/components/modal/modals/ImageViewer.tsx +++ b/packages/client/components/modal/modals/ImageViewer.tsx @@ -1,14 +1,239 @@ -import { PropGenerator } from "../types"; - -/** - * Modal for viewing images - */ -const ImageViewer: PropGenerator<"image_viewer"> = (props) => { - return { - _children(props) { - return

hi!

; - }, - }; -}; - -export default ImageViewer; +import { + Match, + Show, + Switch, + createEffect, + createSignal, + on, + onCleanup, +} from "solid-js"; +import { Portal } from "solid-js/web"; +import { Motion, Presence } from "solid-motionone"; + +import Panzoom, { PanzoomObject } from "@panzoom/panzoom"; +import { css } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { Column, Dialog, DialogProps, IconButton, Text } from "@revolt/ui"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; + +import { Modals } from "../types"; + +export function ImageViewerModal( + props: DialogProps & Modals & { type: "image_viewer" }, +) { + const [ref, setRef] = createSignal(); + + let panzoom: PanzoomObject; + + createEffect( + on( + () => ref(), + (ref) => { + if (ref) { + ref.addEventListener("mousedown", (e) => { + // prevent panzoom from panning when + // context menu is triggered (or other + // non-dragging buttons are used!) + if (e.button !== 0) { + e.preventDefault(); + } + }); + + const zoom = Panzoom(ref, { + minScale: 0.1, + maxScale: 5, + }); + + panzoom = zoom; + + function onMouseWheel(event: WheelEvent) { + zoom.zoom(zoom.getScale() - event.deltaY / 1000); + } + + document.addEventListener("mousewheel", onMouseWheel as never); + + onCleanup(() => { + document.removeEventListener("mousewheel", onMouseWheel as never); + zoom.destroy(); + }); + } + }, + ), + ); + + return ( + + + + + + + + }> + + e.stopPropagation()}> + + {props.file!.filename} + + {props.file!.humanReadableSize} + + + + + + e.stopPropagation()}> + panzoom?.zoomOut()}> + zoom_out + + panzoom?.zoomIn()}> + zoom_in + + + + + download + + + + + + + open_in_new + + + + + close + + + + + + + e.stopPropagation()} + /> + + + e.stopPropagation()} + /> + + + + +
+ + + + + + ); +} + +const Image = styled("img", { + base: { + minHeight: 0, + alignSelf: "center", + objectFit: "contain", + + background: "rgba(0, 0, 0, 0.6)", + }, +}); + +const Video = styled("video", { + base: { + minHeight: 0, + alignSelf: "center", + objectFit: "contain", + + background: "rgba(0, 0, 0, 0.6)", + }, +}); + +const Relative = styled("div", { + base: { + position: "relative", + }, +}); + +const Bar = styled("div", { + base: { + width: "100%", + position: "absolute", + + height: "120px", + flexShrink: 0, + + display: "flex", + alignItems: "center", + justifyContent: "space-between", + }, +}); + +const Card = styled("div", { + base: { + zIndex: 999, + display: "flex", + gap: "var(--gap-md)", + padding: "var(--gap-md)", + borderRadius: "var(--borderRadius-lg)", + background: "var(--md-sys-color-surface)", + color: "var(--md-sys-color-on-surface)", + }, +}); diff --git a/packages/client/components/modal/modals/Invite.tsx b/packages/client/components/modal/modals/Invite.tsx new file mode 100644 index 00000000..3621b04a --- /dev/null +++ b/packages/client/components/modal/modals/Invite.tsx @@ -0,0 +1,89 @@ +import { Match, Show, Switch } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { useNavigate } from "@solidjs/router"; +import { useMutation } from "@tanstack/solid-query"; +import { ServerPublicInvite } from "upryzing.js"; + +import { Avatar, Dialog, DialogProps, Row } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Modal to join a server + */ +export function InviteModal(props: DialogProps & Modals & { type: "invite" }) { + const navigate = useNavigate(); + const { showError } = useModals(); + + const join = useMutation(() => ({ + mutationFn: () => (props.invite as ServerPublicInvite).join(), + onSuccess(server) { + navigate(server.path); + }, + onError: showError, + })); + + return ( + + + + + {(props.invite as ServerPublicInvite).serverName} + + + + } + actions={[ + { text: Cancel }, + { + text: ( + Open} + > + Join + + ), + onClick: join.mutateAsync, + }, + ]} + isDisabled={join.isPending} + scrimBackground={ + props.invite instanceof ServerPublicInvite + ? props.invite.serverBanner?.originalUrl + : undefined + } + > + + + You're already part of this server.} + > + + You've been invited to join this server. +
+ Would you like to join? +
+
+
+
+
+ ); +} diff --git a/packages/client/components/modal/modals/JoinServer.tsx b/packages/client/components/modal/modals/JoinServer.tsx index 63e0490b..4a7a9182 100644 --- a/packages/client/components/modal/modals/JoinServer.tsx +++ b/packages/client/components/modal/modals/JoinServer.tsx @@ -1,54 +1,85 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + import { useNavigate } from "@revolt/routing"; +import { Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; -// TODO: what in the god damn -const RE_INVITE_URL = /(?:invite|web.upryzing.app)\/([a-z0-9]+)/gi; +const RE_INVITE_URL = /(?:invite|stt.gg)\/([a-z0-9]+)/gi; /** * Modal to join a server */ -const JoinServer: PropGenerator<"join_server"> = (props) => { - const t = useTranslation(); +export function JoinServerModal( + props: DialogProps & Modals & { type: "join_server" }, +) { + const { t } = useLingui(); const navigate = useNavigate(); + const { showError } = useModals(); + + const group = createFormGroup({ + link: createFormControl("", { required: true }), + }); - return createFormModal({ - modalProps: { - title: "Join a server", - description: <>Use a code or invite link, - }, - schema: { - link: "text", - }, - data: { - link: { - field: "code", - placeholder: "web.upryzing.app/invite/rS9kg3z6", - }, - }, - callback: async ({ link }) => { - let code = link; - const match = RE_INVITE_URL.exec(link); + async function onSubmit() { + try { + let code = group.controls.link.value; + const match = RE_INVITE_URL.exec(code); if (match) code = match[1]; // fetch invite and display - // console.info(code); + // const invite = await props.client.api.get(`/invites/${code}`); // TODO: replace - const result = await props.client.api.post(`/invites/${code}`); - if (result.type === "Server") { - navigate(`/server/${result.server._id}`); + const acceptedInvite = await props.client.api.post(`/invites/${code}`); + if (acceptedInvite.type === "Server") { + navigate(`/server/${acceptedInvite.server._id}`); } else { // TODO: group // navigate(`/channel/${result.channels}`); } - }, - submit: { - children: "Join", - }, - }); -}; + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); -export default JoinServer; + return ( + Join a server} + actions={[ + { text: Close }, + { + text: Join, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + Use a code or invite link + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/KickMember.tsx b/packages/client/components/modal/modals/KickMember.tsx index 7b751177..f19832b0 100644 --- a/packages/client/components/modal/modals/KickMember.tsx +++ b/packages/client/components/modal/modals/KickMember.tsx @@ -1,40 +1,44 @@ -import { useTranslation } from "@revolt/i18n"; -import { Avatar, Column } from "@revolt/ui"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Avatar, Column, Dialog, DialogProps, Text } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal to kick server member + * Kick a server member */ -const KickMember: PropGenerator<"kick_member"> = (props) => { - const t = useTranslation(); +export function KickMemberModal( + props: DialogProps & Modals & { type: "kick_member" }, +) { + const { showError } = useModals(); - return createFormModal({ - modalProps: { - title: t("app.context_menu.kick_member"), - }, - schema: { - member: "custom", - }, - data: { - member: { - element: ( - - - {t("app.special.modals.prompt.confirm_kick", { - name: props.member.user?.username as string, - })} - - ), - }, - }, - callback: () => props.member.kick(), - submit: { - variant: "error", - children: t("app.special.modals.actions.ban"), - }, - }); -}; + const kick = useMutation(() => ({ + mutationFn: () => props.member.kick(), + onError: showError, + })); -export default KickMember; + return ( + Kick Member} + actions={[ + { text: Cancel }, + { + text: Kick, + onClick: kick.mutateAsync, + }, + ]} + isDisabled={kick.isPending} + > + + + + You are about to kick {props.member.user?.username} + + + + ); +} diff --git a/packages/client/components/modal/modals/LeaveServer.tsx b/packages/client/components/modal/modals/LeaveServer.tsx index 387558cf..683c1b5b 100644 --- a/packages/client/components/modal/modals/LeaveServer.tsx +++ b/packages/client/components/modal/modals/LeaveServer.tsx @@ -1,36 +1,66 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; + +import { Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to leave a server */ -const LeaveServer: PropGenerator<"leave_server"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: t("app.special.modals.prompt.confirm_leave", { - name: props.server.name, - }), - description: t("app.special.modals.prompt.confirm_leave_long"), - }, - schema: { - silent: "checkbox", - }, - data: { - silent: { - title: t("app.special.modals.prompt.silent_leave"), - description: t("app.special.modals.prompt.members_not_notified"), - }, - }, - callback: (data) => props.server.delete(data.silent), - submit: { - variant: "error", - children: t("app.special.modals.actions.leave"), - }, +export function LeaveServerModal( + props: DialogProps & Modals & { type: "leave_server" }, +) { + const { showError } = useModals(); + + const group = createFormGroup({ + silent: createFormControl(false), }); -}; -export default LeaveServer; + const leaveServer = useMutation(() => ({ + mutationFn: () => props.server.delete(group.controls.silent.value), + onError: showError, + onSuccess: () => props.onClose(), + })); + + async function onSubmit() { + await leaveServer.mutateAsync(); + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Leave {props.server.name}?} + actions={[ + { text: Cancel }, + { + text: Leave, + onClick: () => { + onSubmit(); + return false; + }, + }, + ]} + isDisabled={leaveServer.isPending} + > +
+ + + + You won't be able to rejoin unless you are re-invited. + + + + Don't notify others that you've left + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/LinkWarning.tsx b/packages/client/components/modal/modals/LinkWarning.tsx new file mode 100644 index 00000000..c3161ae6 --- /dev/null +++ b/packages/client/components/modal/modals/LinkWarning.tsx @@ -0,0 +1,112 @@ +import { Match, Switch, createMemo, createSignal } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { styled } from "styled-system/jsx"; + +import { useState } from "@revolt/state"; +import { Checkbox, Column, Dialog, DialogProps, Text } from "@revolt/ui"; + +import { Modals } from "../types"; + +/** + * Modal to warn the user about a potentially unsafe link + */ +export function LinkWarningModal( + props: DialogProps & Modals & { type: "link_warning" }, +) { + const state = useState(); + const [value, setValue] = createSignal(false); + + const scrutiny = createMemo(() => { + const destUrlString = props.url.toString(); + if (destUrlString !== props.display) { + try { + const displayUrl = new URL(props.display); + if (destUrlString !== displayUrl.toString()) { + return 2; + } else { + return 1; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (_) { + // URL parsing failed; the link is likely not intentionally misleading. + return 1; + } + } + + return 0; + }); + + return ( + External links can be dangerous!} + actions={[ + { text: Close }, + { + text: Continue, + onClick: () => { + window.open(props.url, "_blank", "noopener"); + + if (value() && scrutiny() === 0) { + state.linkSafety.trust(props.url); + } + }, + isDisabled: scrutiny() === 2 && !value(), + }, + ]} + > + + + Are you sure you want to go to + {props.url.toString()}? + + setValue((v) => !v)}> + + Don't ask me again for + {props.url.origin} + + + } + > + + You clicked on "{props.display}" + + + + + + Be careful! +
+ This is not the same as the link that was displayed: +
+
+ {props.display} + setValue((v) => !v)}> + I understand the consequences + +
+
+
+
+
+ ); +} + +const Link = styled("span", { + base: { + textDecoration: "underline", + overflowWrap: "anywhere", + }, +}); + +const Scrutinise = styled("span", { + base: { + display: "flex", + flexDirection: "column", + color: "var(--md-sys-color-error)", + }, +}); diff --git a/packages/client/components/modal/modals/MFAEnableTOTP.tsx b/packages/client/components/modal/modals/MFAEnableTOTP.tsx index f4aa2646..29525afa 100644 --- a/packages/client/components/modal/modals/MFAEnableTOTP.tsx +++ b/packages/client/components/modal/modals/MFAEnableTOTP.tsx @@ -1,12 +1,13 @@ -import { createSignal } from "solid-js"; +import { createFormControl, createFormGroup } from "solid-forms"; import { QRCodeSVG } from "solid-qr-code"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; import { styled } from "styled-system/jsx"; -import { useTranslation } from "@revolt/i18n"; -import { Column, Input, Text, TextField } from "@revolt/ui"; +import { Column, Dialog, DialogProps, Form2, Text } from "@revolt/ui"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Wrapper element for the raw TOTP code @@ -34,65 +35,91 @@ const Qr = styled("div", { /** * Modal to display QR code and secret key for MFA and accept the correct code */ -const MFAEnableTOTP: PropGenerator<"mfa_enable_totp"> = (props) => { - const t = useTranslation(); - const [value, setValue] = createSignal(""); +export function MFAEnableTOTPModal( + props: DialogProps & Modals & { type: "mfa_enable_totp" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + code: createFormControl("", { required: true }), + }); /** * Generate OTP URI */ const uri = () => - `otpauth://totp/Revolt:${props.identifier}?secret=${props.secret}&issuer=Revolt`; + `otpauth://totp/Upryzing:${props.identifier}?secret=${props.secret}&issuer=Upryzing`; + + async function onSubmit() { + try { + const code = group.controls.code.value.trim().replace(/\s/g, ""); + await props.callback(code); + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); - return { - title: t("app.special.modals.mfa.enable_totp"), - description: t("app.special.modals.mfa.prompt_totp"), - actions: [ - { - palette: "primary", - children: t("app.special.modals.actions.continue"), - onClick: () => { - props.callback(value().trim().replace(/\s/g, "")); - return true; + return ( + { + props.callback(); + props.onClose(); + }} + title={Enable authenticator app} + actions={[ + { + text: Cancel, + onClick() { + props.callback(); + }, }, - confirmation: true, - }, - { - palette: "plain", - children: t("app.special.modals.actions.cancel"), - onClick: () => { - props.callback(); - return true; + { + text: Continue, + onClick() { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), }, - }, - ], - nonDismissable: true, - children: ( - <> - - - - - {props.secret} - + ]} + isDisabled={group.isPending} + > +
+ + + + Please scan or use the token below in your authenticator app. + + - setValue(e.currentTarget.value)} - /> - - ), - }; -}; + + + + + {props.secret} + -export default MFAEnableTOTP; + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/MFAFlow.tsx b/packages/client/components/modal/modals/MFAFlow.tsx index 37415a94..28c81e33 100644 --- a/packages/client/components/modal/modals/MFAFlow.tsx +++ b/packages/client/components/modal/modals/MFAFlow.tsx @@ -1,3 +1,4 @@ +import { createFormControl, createFormGroup } from "solid-forms"; import { BiRegularArchive, BiSolidKey, BiSolidKeyboard } from "solid-icons/bi"; import { For, @@ -8,34 +9,45 @@ import { onMount, } from "solid-js"; -import type { API } from "@upryzing/upryzing.js"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import type { API } from "upryzing.js"; -import { useTranslation } from "@revolt/i18n"; import { CategoryButton, - Input, - Preloader, - TextField, - Typography, + CircularProgress, + Column, + Dialog, + DialogProps, + Form2, + Text, } from "@revolt/ui"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to create an MFA ticket */ -const MFAFlow: PropGenerator<"mfa_flow"> = (props) => { - const t = useTranslation(); +export function MFAFlowModal( + props: DialogProps & Modals & { type: "mfa_flow" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); // Keep track of available methods const [methods, setMethods] = createSignal( // eslint-disable-next-line solid/reactivity - props.state === "unknown" ? props.available_methods : undefined + props.state === "unknown" ? props.available_methods : undefined, ); // Current state of the modal const [selectedMethod, setSelected] = createSignal(); - const [response, setResponse] = createSignal(); + + const group = createFormGroup({ + password: createFormControl(""), + totp_code: createFormControl(""), + recovery_code: createFormControl(""), + }); // Fetch available methods if they have not been provided. onMount(() => { @@ -55,140 +67,210 @@ const MFAFlow: PropGenerator<"mfa_flow"> = (props) => { /** * Callback to generate a new ticket or send response back up the chain */ - const generateTicket = async () => { - const mfa_response = response(); - if (!mfa_response) return false; + async function onSubmit() { + try { + const method = selectedMethod(); + if (!method) return; + + let mfa_response: API.MFAResponse; + + switch (method) { + case "Password": + mfa_response = { password: group.controls.password.value }; + break; + case "Totp": + mfa_response = { totp_code: group.controls.totp_code.value }; + break; + case "Recovery": + mfa_response = { recovery_code: group.controls.recovery_code.value }; + break; + default: + return; + } + + if (props.state === "known") { + const ticket = await props.mfa.createTicket(mfa_response); + props.callback(ticket); + } else { + props.callback(mfa_response); + } - if (props.state === "known") { - const ticket = await props.mfa.createTicket(mfa_response); - props.callback(ticket); + props.onClose(); + } catch (error) { + showError(error); + } + } + + function onCancel() { + props.callback(); + props.onClose(); + } + + function onBack() { + if (methods()!.length === 1) { + onCancel(); } else { - props.callback(mfa_response); + setSelected(undefined); + + // Clear form values + group.controls.password.setValue(""); + group.controls.totp_code.setValue(""); + group.controls.recovery_code.setValue(""); } + } - return true; + function canSubmit() { + return ( + Form2.canSubmit(group) && + (group.controls.password.value || + group.controls.totp_code.value || + group.controls.recovery_code.value) + ); + } + + const getActions = () => { + if (selectedMethod()) { + return [ + { + text: ( + Back}> + + Cancel + + + ), + onClick: () => { + onBack(); + return false; + }, + }, + { + text: Confirm, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !canSubmit(), + }, + ]; + } + + return [ + { + text: Cancel, + onClick: () => { + onCancel(); + return false; + }, + }, + ]; }; - return { - title: t("app.special.modals.confirm"), - description: ( - - - {t("app.special.modals.mfa.confirm")} - - - ), - actions: () => - selectedMethod() - ? [ - { - palette: "primary", - children: t("app.special.modals.actions.confirm"), - onClick: generateTicket, - confirmation: true, - }, - { - palette: "plain", - children: t( - `app.special.modals.actions.${ - methods()!.length === 1 ? "cancel" : "back" - }` - ), - onClick: () => { - if (methods()!.length === 1) { - props.callback(); - return true; - } - - setSelected(undefined); - }, - }, - ] - : [ - { - palette: "plain", - children: t("app.special.modals.actions.cancel"), - onClick: () => { - props.callback(); - return true; - }, - }, - ], - // If we are logging in or have selected a method, - // don't allow the user to dismiss the modal by clicking off. - // This is to just generally prevent annoying situations - // where you accidentally close the modal while logging in - // or when switching to your password manager. - nonDismissable: - // eslint-disable-next-line solid/reactivity - props.state === "unknown" || typeof selectedMethod !== "undefined", - children: ( - }> - - - - - setResponse({ password: e.currentTarget.value }) - } - /> - - - - setResponse({ totp_code: e.currentTarget.value }) - } - /> + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + + props.state === "unknown" || selectedMethod() + ? undefined + : props.onClose() + } + title={Confirm action} + actions={getActions()} + isDisabled={group.isPending} + > +
+ + + + Please select a method to authenticate your request. + + } + > + + + Please confirm this action using the selected method. + + + + + + }> + + + + + + + + + + + + - - - setResponse({ recovery_code: e.currentTarget.value }) - } - /> + + + {(method) => ( + + + + + + + + + + + + } + onClick={() => { + setSelected(method); + // Clear form values when switching methods + group.controls.password.setValue(""); + group.controls.totp_code.setValue(""); + group.controls.recovery_code.setValue(""); + }} + > + + + Password + + + Authenticator App + + + Recovery Code + + + + )} + - - - - {(method) => ( - - - - - - - - - - - - } - onClick={() => { - setSelected(method); - setResponse(undefined); - }} - > - {t(`login.${method.toLowerCase()}` as any)} - - )} - - - - ), - }; -}; - -export default MFAFlow; + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/MFARecovery.tsx b/packages/client/components/modal/modals/MFARecovery.tsx index 0e375455..331d5bf5 100644 --- a/packages/client/components/modal/modals/MFARecovery.tsx +++ b/packages/client/components/modal/modals/MFARecovery.tsx @@ -1,11 +1,12 @@ import { For, createSignal } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; import { styled } from "styled-system/jsx"; -import { useTranslation } from "@revolt/i18n"; +import { Dialog, DialogProps, Text } from "@revolt/ui"; -import { modalController } from ".."; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; /** * List of recovery codes @@ -29,8 +30,10 @@ const List = styled("div", { /** * Modal to display a list of recovery codes */ -const MFARecovery: PropGenerator<"mfa_recovery"> = (props) => { - const t = useTranslation(); +export function MFARecoveryModal( + props: DialogProps & Modals & { type: "mfa_recovery" }, +) { + const { mfaFlow, showError } = useModals(); // Keep track of changes to recovery codes // eslint-disable-next-line solid/reactivity @@ -39,44 +42,49 @@ const MFARecovery: PropGenerator<"mfa_recovery"> = (props) => { /** * Reset recovery codes */ - const reset = async () => { - const ticket = await modalController.mfaFlow(props.mfa); - if (ticket) { - const codes = await ticket.generateRecoveryCodes(); - setCodes(codes); + async function reset() { + try { + const ticket = await mfaFlow(props.mfa); + if (ticket) { + const codes = await ticket.generateRecoveryCodes(); + setCodes(codes); + } + } catch (error) { + showError(error); } + } - return false; - }; - - return { - title: t("app.special.modals.mfa.recovery_codes"), - description: t("app.special.modals.mfa.save_codes"), - actions: [ - { - palette: "primary", - children: t("app.special.modals.actions.done"), - onClick: () => true, - confirmation: true, - }, - { - palette: "plain", - children: t("app.special.modals.actions.reset"), - onClick: reset, - }, - ], - children: ( + return ( + Your recovery codes} + actions={[ + { + text: Reset, + onClick: () => { + reset(); + return false; + }, + }, + { + text: Done, + onClick: () => true, + }, + ]} + > + + Please save these to a safe location. + {(code, index) => ( - {code} {index() !== known.length && {","}} + {code} {index() !== known().length - 1 && {","}} )} - ), - }; -}; - -export default MFARecovery; + + ); +} diff --git a/packages/client/components/modal/modals/Onboarding.tsx b/packages/client/components/modal/modals/Onboarding.tsx index 0459eeaa..fc3623fa 100644 --- a/packages/client/components/modal/modals/Onboarding.tsx +++ b/packages/client/components/modal/modals/Onboarding.tsx @@ -1,33 +1,65 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; // TODO: port the onboarding modal design /** * Modal to pick a new username */ -const Onboarding: PropGenerator<"onboarding"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: "Choose username", - }, - schema: { - username: "text", - }, - data: { - username: { - field: "Username", - }, - }, - callback: async ({ username }) => await props.callback(username), - submit: { - children: "Good", - }, +export function OnboardingModal( + props: DialogProps & Modals & { type: "onboarding" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + username: createFormControl("", { required: true }), }); -}; -export default Onboarding; + async function onSubmit() { + try { + await props.callback(group.controls.username.value); + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Choose username} + actions={[ + { text: Cancel }, + { + text: Good, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/PolicyChange.tsx b/packages/client/components/modal/modals/PolicyChange.tsx new file mode 100644 index 00000000..fa1c60af --- /dev/null +++ b/packages/client/components/modal/modals/PolicyChange.tsx @@ -0,0 +1,84 @@ +import { For, createSignal, onMount } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; + +import { + Checkbox, + Column, + Dialog, + DialogProps, + List, + Row, + Text, + Time, +} from "@revolt/ui"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; + +import MdPolicy from "@material-design-icons/svg/outlined/policy.svg?component-solid"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +let shownForSession = false; + +export function PolicyChangeModal( + props: DialogProps & Modals & { type: "policy_change" }, +) { + const { showError } = useModals(); + const [confirm, setConfirm] = createSignal(false); + + // automatically close if we've already shown this modal in this session + const allowDisplay = !shownForSession; + shownForSession = true; + onMount(() => !allowDisplay && props.onClose()); + + return ( + } + show={allowDisplay && props.show} + onClose={props.onClose} + title={Review policy changes} + actions={[ + { text: Close }, + { + text: Acknowledge, + isDisabled: !confirm(), + async onClick() { + await props.acknowledge().catch(showError); + }, + }, + ]} + > + + Click on the items below to learn more about different changes! + + + + {(change) => ( + window.open(change.url, "_blank")}> + + + {change.description} + + + Effective{" "} + + + + open_in_new + + + )} + + + setConfirm((checked) => !checked)} + > + I've read and reviewed the changes. + + + ); +} diff --git a/packages/client/components/modal/modals/RenameSession.tsx b/packages/client/components/modal/modals/RenameSession.tsx index 59239ea5..9cadd1a7 100644 --- a/packages/client/components/modal/modals/RenameSession.tsx +++ b/packages/client/components/modal/modals/RenameSession.tsx @@ -1,35 +1,65 @@ -import { useTranslation } from "@revolt/i18n"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; + +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal for renaming session */ -const RenameSession: PropGenerator<"rename_session"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: "Rename Session", - }, - schema: { - name: "text", - }, - defaults: { - name: props.session.name, - }, - data: { - name: { - field: "Name", - placeholder: "Enter a new name for this session", - }, - }, - callback: async ({ name }) => void (await props.session.rename(name)), - submit: { - children: t("app.special.modals.actions.update"), - }, +export function RenameSessionModal( + props: DialogProps & Modals & { type: "rename_session" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const group = createFormGroup({ + // eslint-disable-next-line solid/reactivity + name: createFormControl(props.session.name, { required: true }), }); -}; -export default RenameSession; + async function onSubmit() { + try { + await props.session.rename(group.controls.name.value); + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + Rename Session} + actions={[ + { text: Cancel }, + { + text: Rename, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/ReportContent.tsx b/packages/client/components/modal/modals/ReportContent.tsx index 223acbeb..5dcd6519 100644 --- a/packages/client/components/modal/modals/ReportContent.tsx +++ b/packages/client/components/modal/modals/ReportContent.tsx @@ -1,13 +1,23 @@ -import { API, Server, User } from "@upryzing/upryzing.js"; +import { createFormControl, createFormGroup } from "solid-forms"; +import { For, Match, Switch } from "solid-js"; + +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { API, Message as MessageI, Server, User } from "upryzing.js"; import { cva } from "styled-system/css"; -import { styled } from "styled-system/jsx"; import { Message } from "@revolt/app"; -import { useTranslation } from "@revolt/i18n"; -import { Avatar, Column, Initials } from "@revolt/ui"; +import { + Avatar, + Column, + Dialog, + DialogProps, + Form2, + Initials, + MenuItem, +} from "@revolt/ui"; -import { createFormModal } from "../form"; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; const CONTENT_REPORT_REASONS: API.ContentReportReason[] = [ "Illegal", @@ -39,28 +49,118 @@ const USER_REPORT_REASONS: API.UserReportReason[] = [ /** * Modal to report content */ -const ReportContent: PropGenerator<"report_content"> = (props) => { - const t = useTranslation(); - - return createFormModal({ - modalProps: { - title: `Tell us what's wrong with this ${ - /* TEMP TODO */ props.target instanceof User - ? "user" - : props.target instanceof Server - ? "server" - : "message" - }`, - }, - schema: { - preview: "custom", - category: "combo", - detail: "text", - }, - data: { - preview: { - element: ( -
+export function ReportContentModal( + props: DialogProps & Modals & { type: "report_content" }, +) { + const { t } = useLingui(); + const { showError } = useModals(); + + const strings: Record< + API.ContentReportReason | API.UserReportReason, + string + > = { + Illegal: t`Content breaks one or more laws`, + IllegalGoods: t`Drugs or illegal goods`, + IllegalExtortion: t`Extortion or blackmail`, + IllegalPornography: t`Revenge or underage pornography`, + IllegalHacking: t`Illegal hacking or cracking`, + ExtremeViolence: t`Extreme violence, gore or animal cruelty`, + PromotesHarm: t`Promotes harm`, + UnsolicitedSpam: t`Unsolicited advertising or spam`, + Raid: t`Raid or spam attack`, + SpamAbuse: t`Spam or similar platform abuse`, + ScamsFraud: t`Scams or fraud`, + Malware: t`Malware or phishing`, + Harassment: t`Harassment or cyberbullying`, + NoneSpecified: t`Other`, + + InappropriateProfile: t`User's profile has inappropriate content`, + Impersonation: t`Impersonation`, + BanEvasion: t`Ban evasion`, + Underage: t`Not of minimum age to use the platform`, + }; + + const group = createFormGroup({ + category: createFormControl("", { required: true }), + detail: createFormControl(""), + }); + + const reasons = + // eslint-disable-next-line solid/reactivity + props.target instanceof User ? USER_REPORT_REASONS : CONTENT_REPORT_REASONS; + + async function onSubmit() { + try { + const category = group.controls.category.value; + const detail = group.controls.detail.value; + + if (!category || (category === "NoneSpecified" && !detail)) { + throw new Error("NoReasonProvided"); + } + + await props.client.api.post("/safety/report", { + content: + props.target instanceof User + ? { + type: "User", + id: props.target.id, + report_reason: category as API.UserReportReason, + message_id: props.contextMessage?.id, + } + : props.target instanceof Server + ? { + type: "Server", + id: props.target.id, + report_reason: category as API.ContentReportReason, + } + : { + type: "Message", + id: props.target.id, + report_reason: category as API.ContentReportReason, + }, + additional_context: detail, + }); + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); + + return ( + + + Tell us what's wrong with this user + + + Tell us what's wrong with this server + + + Tell us what's wrong with this message + + + } + actions={[ + { text: Cancel }, + { + text: Report, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ +
{props.target instanceof User ? ( @@ -79,71 +179,33 @@ const ReportContent: PropGenerator<"report_content"> = (props) => { )}
- ), - }, - category: { - options: [ - { - name: "Please select a reason", - value: "", - disabled: true, - selected: true, - }, - ...(props.target instanceof User - ? USER_REPORT_REASONS - : CONTENT_REPORT_REASONS - ).map((value) => ({ - name: t( - `app.special.modals.report.content_reason.${value}` as any, - {}, - value - ), - value, - })), - ], - field: "Pick a category", - }, - detail: { - field: "Give us some detail", - }, - }, - callback: async ({ category, detail }) => { - if (!category || (category === "NoneSpecified" && !detail)) - throw "NoReasonProvided"; - await props.client.api.post("/safety/report", { - content: - props.target instanceof User - ? { - type: "User", - id: props.target.id, - report_reason: category as API.UserReportReason, - message_id: props.contextMessage?.id, - } - : props.target instanceof Server - ? { - type: "Server", - id: props.target.id, - report_reason: category as API.ContentReportReason, - } - : { - type: "Message", - id: props.target.id, - report_reason: category as API.ContentReportReason, - }, - additional_context: detail, - }); - }, - submit: { - children: "Report", - }, - }); -}; + + + Please select a reason + + + {(value) => {strings[value]}} + + + + {/* TODO: use TextEditor? */} + +
+
+
+ ); +} const contentContainer = cva({ base: { maxWidth: "100%", - maxHeight: "240px", + maxHeight: "80vh", + overflowY: "hidden", "& > div": { marginTop: "0 !important", pointerEvents: "none", @@ -151,5 +213,3 @@ const contentContainer = cva({ }, }, }); - -export default ReportContent; diff --git a/packages/client/components/modal/modals/ResetBotToken.tsx b/packages/client/components/modal/modals/ResetBotToken.tsx new file mode 100644 index 00000000..4e13de1a --- /dev/null +++ b/packages/client/components/modal/modals/ResetBotToken.tsx @@ -0,0 +1,40 @@ +import { Trans } from "@lingui-solid/solid/macro"; + +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useMutation } from "@tanstack/solid-query"; +import { useModals } from ".."; +import { Modals } from "../types"; + +/** + * Modal to ask the user if they really want to reset this bot's token + */ +export function ResetBotTokenModal( + props: DialogProps & Modals & { type: "reset_bot_token" }, +) { + const { showError } = useModals(); + const resetToken = useMutation(() => ({ + mutationFn: () => props.bot.edit({ remove: ["Token"] }), + onError: showError, + })); + + return ( + Reset {props.bot.user!.username}'s token?} + actions={[ + { text: Cancel }, + { + text: Reset, + onClick: () => resetToken.mutateAsync(), + }, + ]} + > + + This will invalidate the current token and stop any existing instances + of the bot from running. + + + ); +} diff --git a/packages/client/components/modal/modals/ServerIdentity.tsx b/packages/client/components/modal/modals/ServerIdentity.tsx index 5b09de21..b808eb87 100644 --- a/packages/client/components/modal/modals/ServerIdentity.tsx +++ b/packages/client/components/modal/modals/ServerIdentity.tsx @@ -1,81 +1,105 @@ -import { Accessor, createEffect, createSignal } from "solid-js"; +import { createFormControl, createFormGroup } from "solid-forms"; -import { ServerMember } from "@upryzing/upryzing.js"; +import { Trans, useLingui } from "@lingui-solid/solid/macro"; +import { API } from "upryzing.js"; -import { useTranslation } from "@revolt/i18n"; -import { Avatar, Column, Input, MessageContainer, Username } from "@revolt/ui"; +import { useClient } from "@revolt/client"; +import { CONFIGURATION } from "@revolt/common"; +import { Column, Dialog, DialogProps, Form2 } from "@revolt/ui"; -import { PropGenerator } from "../types"; - -function Preview(props: { nickname: Accessor; member: ServerMember }) { - createEffect(() => { - console.info("n:", props.nickname()); - }); - - return ( - <> - Preview - } - timestamp={new Date()} - username={ - - } - > - Hello {props.nickname()}! - - - ); -} +import { useModals } from ".."; +import { Modals } from "../types"; /** * Modal to update the user's server identity */ -const ServerIdentity: PropGenerator<"server_identity"> = (props) => { - const t = useTranslation(); - const [nickname, setNickname] = createSignal(props.member.nickname ?? ""); - - const [avatarFile, setAvatarFile] = createSignal(); +export function ServerIdentityModal( + props: DialogProps & Modals & { type: "server_identity" }, +) { + const { t } = useLingui(); + const client = useClient(); + const { showError } = useModals(); - return { - title: t("app.special.popovers.server_identity.title", { - server: props.member.server!.name, - }), - children: ( - - {/* developer ui */} - {t("app.special.popovers.server_identity.nickname")} - setNickname(e.currentTarget.value)} - /> - {/* {t("app.special.popovers.server_identity.avatar")} */} - {/* */} - {/* */} - + /* eslint-disable solid/reactivity */ + const group = createFormGroup({ + avatar: createFormControl( + props.member.animatedAvatarURL, ), - actions: [ - { - children: t("app.special.modals.actions.save"), - async onClick() { - await props.member.edit( - nickname() - ? { - nickname: nickname(), - } - : { - remove: ["Nickname"], - } + nickname: createFormControl(props.member.nickname ?? ""), + }); + /* eslint-enable solid/reactivity */ + + async function onSubmit() { + try { + const changes: API.DataMemberEdit = { + remove: [], + }; + + if (group.controls.nickname.isDirty) { + const nickname = group.controls.nickname.value.trim(); + if (nickname) { + changes.nickname = nickname; + } else { + changes.remove!.push("Nickname"); + } + } + + if (group.controls.avatar.isDirty) { + if (!group.controls.avatar.value) { + changes.remove!.push("Avatar"); + } else if (Array.isArray(group.controls.avatar.value)) { + changes.avatar = await client().uploadFile( + "avatars", + group.controls.avatar.value[0], + CONFIGURATION.DEFAULT_MEDIA_URL, ); + } + } - return true; - }, - }, - ], - }; -}; + await props.member.edit(changes); + + props.onClose(); + } catch (error) { + showError(error); + } + } + + const submit = Form2.useSubmitHandler(group, onSubmit); -export default ServerIdentity; + return ( + Change identity on {props.member.server!.name}} + actions={[ + { text: Cancel }, + { + text: Save, + onClick: () => { + onSubmit(); + return false; + }, + isDisabled: !Form2.canSubmit(group), + }, + ]} + isDisabled={group.isPending} + > +
+ + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/ServerInfo.tsx b/packages/client/components/modal/modals/ServerInfo.tsx index 32070f89..7b2f3e91 100644 --- a/packages/client/components/modal/modals/ServerInfo.tsx +++ b/packages/client/components/modal/modals/ServerInfo.tsx @@ -1,67 +1,69 @@ -import { BiRegularX } from "solid-icons/bi"; -import { Show } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; -import { useTranslation } from "@revolt/i18n"; +import { useClient } from "@revolt/client"; import { Markdown } from "@revolt/markdown"; -import { Button, Column, Row, Text } from "@revolt/ui"; +import { Dialog, DialogProps } from "@revolt/ui"; -import { modalController } from ".."; -import { PropGenerator } from "../types"; +import { useModals } from ".."; +import { Modals } from "../types"; -/** - * Modal to display server information - */ -const ServerInfo: PropGenerator<"server_info"> = (props, onClose) => { - const t = useTranslation(); +export function ServerInfoModal( + props: DialogProps & Modals & { type: "server_info" }, +) { + const client = useClient(); + const { openModal } = useModals(); - return { - title: ( - - - {props.server.name} - - - - ), - children: ( - - - - ), - actions: [ - { - // TODO: report server - onClick: () => true, //report(server), - children: t("app.special.modals.actions.report"), - palette: "error", - }, - { - onClick: () => { - modalController.push({ - type: "server_identity", - member: props.server.member!, - }); - return true; + const canOpenSettings = () => + props.server.orPermission( + "ManageServer", + "ManageCustomisation", + "ManageRole", + "ManagePermissions", + ); + + return ( + Settings, + onClick() { + openModal({ + type: "settings", + config: "server", + context: props.server, + }); + }, + }, + ] + : []), + { + text: Edit Identity, + onClick() { + openModal({ + type: "server_identity", + member: props.server.member!, + }); + }, }, - children: "Edit Identity", - palette: "secondary", - }, - { - onClick: () => { - modalController.push({ - type: "settings", - config: "server", - context: props.server, - }); - return true; + { + text: Report, + onClick() { + openModal({ + type: "report_content", + client: client(), + target: props.server, + }); + }, }, - children: "Settings", - palette: "secondary", - }, - ], - }; -}; - -export default ServerInfo; + { text: Close }, + ]} + > + + + ); +} diff --git a/packages/client/components/modal/modals/Settings.tsx b/packages/client/components/modal/modals/Settings.tsx index 37b744be..eb9343d4 100644 --- a/packages/client/components/modal/modals/Settings.tsx +++ b/packages/client/components/modal/modals/Settings.tsx @@ -3,64 +3,61 @@ import { Portal } from "solid-js/web"; import { Motion, Presence } from "solid-motionone"; import { Settings, SettingsConfigurations } from "@revolt/app"; +import { DialogProps } from "@revolt/ui"; -import { PropGenerator } from "../types"; +import { Modals } from "../types"; /** * Modal to display server information */ -const SettingsModal: PropGenerator<"settings"> = ({ - config: configKey, - context, -}) => { - const config = SettingsConfigurations[configKey]; +export function SettingsModal( + props: DialogProps & Modals & { type: "settings" }, +) { + // eslint-disable-next-line solid/reactivity + const config = SettingsConfigurations[props.config]; - return { - _children: (props) => { - return ( - -
- - - - - - - -
-
- ); - }, - }; -}; - -export default SettingsModal; + return ( + +
+ + + + + + + +
+
+ ); +} diff --git a/packages/client/components/modal/modals/SignOutSessions.tsx b/packages/client/components/modal/modals/SignOutSessions.tsx index 0db87ac4..0f10e93e 100644 --- a/packages/client/components/modal/modals/SignOutSessions.tsx +++ b/packages/client/components/modal/modals/SignOutSessions.tsx @@ -1,33 +1,39 @@ -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; +import { useMutation } from "@tanstack/solid-query"; -import { PropGenerator } from "../types"; +import { Dialog, DialogProps } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; /** - * Modal to display server information + * Modal to sign out of all sessions */ -const SignOutSessions: PropGenerator<"sign_out_sessions"> = (props) => { - const t = useTranslation(); - - /** - * Confirm session sign out - */ - const confirm = () => props.client.sessions.deleteAll().then(() => true); +export function SignOutSessionsModal( + props: DialogProps & Modals & { type: "sign_out_sessions" }, +) { + const { showError } = useModals(); - return { - title: t("app.special.modals.sessions.title"), - children: t("app.special.modals.sessions.short"), - actions: [ - { - palette: "accent", - onClick: () => true, - children: t("app.special.modals.actions.cancel"), - }, - { - onClick: confirm, - children: t("app.special.modals.sessions.accept"), - }, - ], - }; -}; + const signOutSessions = useMutation(() => ({ + mutationFn: () => props.client.sessions.deleteAll(), + onError: showError, + })); -export default SignOutSessions; + return ( + Are you sure you want to clear your sessions?} + actions={[ + { text: Cancel }, + { + text: Accept, + onClick: () => signOutSessions.mutateAsync(), + }, + ]} + isDisabled={signOutSessions.isPending} + > + You cannot undo this action. + + ); +} diff --git a/packages/client/components/modal/modals/SignedOut.tsx b/packages/client/components/modal/modals/SignedOut.tsx index 6258dc06..701d8922 100644 --- a/packages/client/components/modal/modals/SignedOut.tsx +++ b/packages/client/components/modal/modals/SignedOut.tsx @@ -1,26 +1,24 @@ -import { useTranslation } from "@revolt/i18n"; +import { Trans } from "@lingui-solid/solid/macro"; -import { PropGenerator } from "../types"; +import { Dialog, DialogProps } from "@revolt/ui"; + +import { Modals } from "../types"; /** * Modal to notify the user they've been signed out * TODO: show if user is banned, etc */ -const SignedOut: PropGenerator<"signed_out"> = () => { - const t = useTranslation(); - - return { - title: t("app.special.modals.signed_out"), - actions: [ - { - children: t("app.special.modals.actions.ok"), - palette: "secondary", - onClick() { - return true; - }, - }, - ], - }; -}; - -export default SignedOut; +export function SignedOutModal( + props: DialogProps & Modals & { type: "signed_out" }, +) { + return ( + You've been signed out of Upryzing!} + actions={[{ text: OK }]} + > + <> + + ); +} diff --git a/packages/client/components/modal/modals/UserProfile.tsx b/packages/client/components/modal/modals/UserProfile.tsx new file mode 100644 index 00000000..7c106d91 --- /dev/null +++ b/packages/client/components/modal/modals/UserProfile.tsx @@ -0,0 +1,64 @@ +import { useQuery } from "@tanstack/solid-query"; +import { styled } from "styled-system/jsx"; + +import { Dialog, DialogProps, Profile } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +export function UserProfileModal( + props: DialogProps & Modals & { type: "user_profile" }, +) { + const { openModal } = useModals(); + + const query = useQuery(() => ({ + queryKey: ["profile", props.user.id], + queryFn: () => props.user.fetchProfile(), + })); + + return ( + + + + openModal({ type: "image_viewer", file: query.data!.banner! }) + : undefined + } + onClickAvatar={(e) => { + e.stopPropagation(); + + if (props.user.avatar) { + openModal({ type: "image_viewer", file: props.user.avatar }); + } + }} + /> + + + + + + + + + + ); +} + +const Grid = styled("div", { + base: { + display: "grid", + gap: "var(--gap-md)", + padding: "var(--gap-md)", + gridTemplateColumns: "repeat(3, 1fr)", + }, +}); diff --git a/packages/client/components/modal/modals/UserProfileMutualFriends.tsx b/packages/client/components/modal/modals/UserProfileMutualFriends.tsx new file mode 100644 index 00000000..bc8977d8 --- /dev/null +++ b/packages/client/components/modal/modals/UserProfileMutualFriends.tsx @@ -0,0 +1,42 @@ +import { For } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; + +import { Avatar, Dialog, DialogProps, List, OverflowingText } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +export function UserProfileMutualFriendsModal( + props: DialogProps & Modals & { type: "user_profile_mutual_friends" }, +) { + const { openModal } = useModals(); + + return ( + Mutual Friends} + actions={[{ text: Close }]} + > + + + {(user) => ( + openModal({ type: "user_profile", user })} + > + + {user.username} + + )} + + + + ); +} diff --git a/packages/client/components/modal/modals/UserProfileMutualGroups.tsx b/packages/client/components/modal/modals/UserProfileMutualGroups.tsx new file mode 100644 index 00000000..cad69a17 --- /dev/null +++ b/packages/client/components/modal/modals/UserProfileMutualGroups.tsx @@ -0,0 +1,47 @@ +import { For } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { useNavigate } from "@solidjs/router"; + +import { Avatar, Dialog, DialogProps, List, OverflowingText } from "@revolt/ui"; + +import { useModals } from ".."; +import { Modals } from "../types"; + +export function UserProfileMutualGroupsModal( + props: DialogProps & Modals & { type: "user_profile_mutual_groups" }, +) { + const navigate = useNavigate(); + const { closeAll } = useModals(); + + return ( + Mutual Groups} + actions={[{ text: Close }]} + > + + + {(group) => ( + { + navigate(group.path); + closeAll(); + }} + > + + {group.name} + + )} + + + + ); +} diff --git a/packages/client/components/modal/modals/UserProfileRoles.tsx b/packages/client/components/modal/modals/UserProfileRoles.tsx new file mode 100644 index 00000000..12d7d6dc --- /dev/null +++ b/packages/client/components/modal/modals/UserProfileRoles.tsx @@ -0,0 +1,111 @@ +import { For, Match, Switch } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { styled } from "styled-system/jsx"; + +import { Checkbox, Column, Dialog, DialogProps, Row } from "@revolt/ui"; + +import { Modals } from "../types"; + +export function UserProfileRolesModal( + props: DialogProps & Modals & { type: "user_profile_roles" }, +) { + const editMode = () => + props.member.server?.owner?.self || + (props.member.server?.havePermission("AssignRoles") && + props.member.inferiorTo(props.member.server.member!)); + + return ( + {props.member.displayName}'s roles}> + + Edit {props.member.displayName}'s roles + + + } + actions={[{ text: Close }]} + > + + {(role) => ( + + {role.name} + + + )} + + } + > + + + + {(role) => ( + + props.member.edit({ + roles: [ + ...props.member.roles.filter( + (roleId) => roleId !== role.id, + ), + ...(props.member.roles.includes(role.id) + ? [] + : [role.id]), + ], + }) + } + > + + {role.name} + + + + )} + + + + + + ); +} + +const RoleName = styled("span", { + base: { + flexGrow: 1, + overflow: "hidden", + whiteSpace: "nowrap", + textOverflow: "ellipsis", + }, +}); + +const RoleIcon = styled("div", { + base: { + width: "16px", + height: "16px", + aspectRatio: "1/1", + borderRadius: "100%", + }, +}); diff --git a/packages/client/components/modal/modals/index.tsx b/packages/client/components/modal/modals/index.tsx deleted file mode 100644 index 80c5ec9f..00000000 --- a/packages/client/components/modal/modals/index.tsx +++ /dev/null @@ -1,147 +0,0 @@ -import { JSX } from "solid-js"; - -import { CONFIGURATION } from "@revolt/common"; -import { Modal } from "@revolt/ui"; - -import { ActiveModal, modalController } from ".."; -import type { Modals as AllModals, PropGenerator } from "../types"; - -import add_friend from "./AddFriend"; -import ban_member from "./BanMember"; -import changelog from "./Changelog"; -import channel_info from "./ChannelInfo"; -import clipboard from "./Clipboard"; -import create_bot from "./CreateBot"; -import create_category from "./CreateCategory"; -import create_channel from "./CreateChannel"; -import create_group from "./CreateGroup"; -import create_invite from "./CreateInvite"; -import create_or_join_server from "./CreateOrJoinServer"; -import create_role from "./CreateRole"; -import create_server from "./CreateServer"; -import custom_status from "./CustomStatus"; -import delete_bot from "./DeleteBot"; -import delete_channel from "./DeleteChannel"; -import delete_message from "./DeleteMessage"; -import delete_server from "./DeleteServer"; -import edit_display_name from "./EditDisplayName"; -import edit_email from "./EditEmail"; -import edit_keybind from "./EditKeybind"; -import edit_password from "./EditPassword"; -import edit_pronouns from "./EditPronouns"; -import edit_username from "./EditUsername"; -import error from "./Error"; -import image_viewer from "./ImageViewer"; -import join_server from "./JoinServer"; -import kick_member from "./KickMember"; -import leave_server from "./LeaveServer"; -import mfa_enable_totp from "./MFAEnableTOTP"; -import mfa_flow from "./MFAFlow"; -import mfa_recovery from "./MFARecovery"; -import onboarding from "./Onboarding"; -import rename_session from "./RenameSession"; -import report_content from "./ReportContent"; -import server_identity from "./ServerIdentity"; -import server_info from "./ServerInfo"; -import settings from "./Settings"; -import sign_out_sessions from "./SignOutSessions"; -import signed_out from "./SignedOut"; - -const Modals: Record> = { - add_friend, - ban_member, - changelog, - channel_info, - clipboard, - create_bot, - create_category, - create_channel, - create_group, - create_invite, - create_role, - create_server, - create_or_join_server, - custom_status, - delete_bot, - delete_channel, - delete_message, - delete_server, - edit_display_name, - edit_email, - edit_password, - edit_pronouns, - edit_username, - error, - image_viewer, - join_server, - edit_keybind, - kick_member, - leave_server, - mfa_enable_totp, - mfa_flow, - mfa_recovery, - onboarding, - rename_session, - report_content, - server_identity, - server_info, - settings, - signed_out, - sign_out_sessions, - ...({} as any), -}; - -/** - * Render the modal - */ -export function RenderModal(props: ActiveModal) { - /** - * Handle modal close - */ - const onClose = () => modalController.remove(props.id); - - if (CONFIGURATION.DEBUG) { - console.info( - "components/modal — modal renderer created for type:", - props.props.type - ); - } - - if (!Modals[props.props.type]) { - console.error( - "Failed to create a modal for", - props.props.type, - "as it is not registered!" - ); - console.debug("Modals registered currently:", Modals); - return null; - } - - if (CONFIGURATION.DEBUG) { - console.info("components/modal — ready to render"); - } - - const modalProps = Modals[props.props.type](props.props, onClose); - - if (CONFIGURATION.DEBUG) { - console.info("components/modal — modal props generated", modalProps); - } - - const Component = ( - modalProps as { - _children: (props: { show: boolean; onClose: () => void }) => JSX.Element; - } - )._children; - - const element = Component ? ( - - ) : ( - - ); - - if (CONFIGURATION.DEBUG) { - console.info("components/modal — created target element:", element); - } - - return element; -} diff --git a/packages/client/components/modal/types.ts b/packages/client/components/modal/types.ts index 3d8eb5b1..64468a7f 100644 --- a/packages/client/components/modal/types.ts +++ b/packages/client/components/modal/types.ts @@ -1,227 +1,240 @@ -import type { ComponentProps, JSX } from "solid-js"; - import { API, Bot, Channel, Client, + Emoji, File, + ImageEmbed, MFA, MFATicket, Message, + PublicBot, + PublicChannelInvite, Server, ServerMember, + ServerRole, Session, User, -} from "@upryzing/upryzing.js"; - -import { SettingsConfigurations } from "@revolt/app"; -import type { KeyComboSequence, KeybindAction } from "@revolt/keybinds"; -import type { Modal } from "@revolt/ui"; + VideoEmbed, +} from "upryzing.js"; +import { ProtocolV1 } from "upryzing.js/lib/events/v1"; -import { ChangelogPost } from "./modals/Changelog"; +import type { SettingsConfigurations } from "@revolt/app"; export type Modals = | { - type: - | "add_friend" - | "create_group" - | "create_or_join_server" - | "create_server" - | "join_server" - | "custom_status" - | "edit_username" - | "edit_email" - | "edit_password"; + type: "add_bot"; + invite: PublicBot; + } + | { + type: "add_friend"; client: Client; } | { - type: "edit_display_name"; - user: User; + type: "add_members_to_group"; + client: Client; + group: Channel; } | { - type: "edit_pronouns"; - user: User; + type: "ban_member"; + member: ServerMember; } | { - type: "rename_session"; - session: Session; + type: "ban_non_member"; + user: User; + server: Server; } | { - type: "report_content"; - client: Client; - target: Server | User | Message; - contextMessage?: Message; + type: "changelog"; + initial?: number; } | { - type: "report_success"; - user?: User; + type: "channel_info"; + channel: Channel; } | { - type: "signed_out"; + type: "channel_toggle_mature"; + channel: Channel; } - | ({ - type: "mfa_flow"; - } & ( - | { - mfa: MFA; - state: "known"; - callback: (ticket?: MFATicket) => void; - } - | { - state: "unknown"; - available_methods: API.MFAMethod[]; - callback: (response?: API.MFAResponse) => void; - } - )) - | { type: "mfa_recovery"; codes: string[]; mfa: MFA } | { - type: "mfa_enable_totp"; - identifier: string; - secret: string; - callback: (code?: string) => void; + type: "create_bot"; + client: Client; + onCreate: (bot: Bot) => void; } | { - type: "out_of_date"; - version: string; + type: "create_category"; + server: Server; } | { - type: "changelog"; - initial?: number; - posts: ChangelogPost[]; + type: "create_channel"; + server: Server; + cb?: (channel: Channel) => void; } | { - type: "sign_out_sessions"; + type: "create_group"; client: Client; } | { - type: "show_token"; - name: string; - token: string; + type: "create_role"; + server: Server; + callback: (id: string) => void; } | { - type: "error"; - error: string; + type: "create_or_join_server"; + client: Client; + } + | { + type: "create_group_or_server"; + client: Client; } | { - type: "clipboard"; - text: string; + type: "create_invite"; + channel: Channel; } | { - type: "link_warning"; - link: string; - callback: () => true; + type: "create_server"; + client: Client; } | { - type: "pending_friend_requests"; - users: User[]; + type: "create_webhook"; + channel: Channel; + callback: (id: string) => void; } | { - type: "modify_account"; + type: "custom_status"; client: Client; - field: "username" | "email" | "password"; } | { - type: "server_identity"; - member: ServerMember; + type: "delete_bot"; + bot: Bot; } | { - type: "channel_info"; + type: "delete_channel"; channel: Channel; } | { - type: "server_info"; + type: "delete_category"; server: Server; + categoryId: string; } | { - type: "image_viewer"; - embed?: API.Image; - file?: File; + type: "delete_message"; + message: Message; } | { - type: "user_picker"; - omit?: string[]; - callback: (users: string[]) => Promise; + type: "delete_server"; + server: Server; } | { - type: "user_profile"; - user_id: string; - isPlaceholder?: boolean; - placeholderProfile?: API.UserProfile; + type: "delete_role"; + role: ServerRole; + cb: () => void; } | { - type: "create_bot"; + type: "edit_email"; client: Client; - onCreate: (bot: Bot) => void; } | { - type: "onboarding"; - callback: (username: string, loginAfterSuccess?: true) => Promise; + type: "edit_password"; + client: Client; } | { - type: "create_role"; - server: Server; - callback: (id: string) => void; + type: "edit_username"; + client: Client; } | { - type: "leave_group"; - channel: Channel; + type: "emoji_preview"; + emoji: Emoji; } | { - type: "close_dm"; - channel: Channel; + /** + * @deprecated build proper error handling! + */ + type: "error"; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + error: any; } | { - type: "delete_channel"; - channel: Channel; + type: "error2"; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + error: any; } | { - type: "create_invite"; - channel: Channel; + type: "image_viewer"; + embed?: ImageEmbed; + gif?: VideoEmbed; + file?: File; } | { - type: "leave_server"; - server: Server; + type: "join_server"; + client: Client; } | { - type: "delete_server"; - server: Server; + type: "kick_member"; + member: ServerMember; } | { - type: "delete_bot"; - bot: Bot; + type: "leave_server"; + server: Server; } | { - type: "delete_message"; - message: Message; + type: "mfa_enable_totp"; + identifier: string; + secret: string; + callback: (code?: string) => void; } + | ({ + type: "mfa_flow"; + } & ( + | { + mfa: MFA; + state: "known"; + callback: (ticket?: MFATicket) => void; + } + | { + state: "unknown"; + available_methods: API.MFAMethod[]; + callback: (response?: API.MFAResponse) => void; + } + )) + | { type: "mfa_recovery"; codes: string[]; mfa: MFA } | { - type: "kick_member"; - member: ServerMember; + type: "onboarding"; + callback: (username: string, loginAfterSuccess?: true) => Promise; } | { - type: "ban_member"; - member: ServerMember; + type: "policy_change"; + changes: ProtocolV1["types"]["policyChange"][]; + acknowledge: () => Promise; } | { - type: "unfriend_user"; + type: "edit_pronouns"; user: User; } | { - type: "block_user"; - user: User; + type: "rename_session"; + session: Session; } | { - type: "create_channel"; - server: Server; - cb?: (channel: Channel) => void; + type: "report_content"; + client: Client; + target: Server | User | Message; + contextMessage?: Message; } | { - type: "create_category"; + type: "server_identity"; + member: ServerMember; + } + | { + type: "server_info"; server: Server; } | { - type: "import_theme"; + type: "invite"; + invite: PublicChannelInvite; } | { type: "settings"; @@ -230,18 +243,73 @@ export type Modals = context?: any; } | { - type: "edit_keybind"; - action: KeybindAction; - onSubmit: (sequence: KeyComboSequence) => void; - }; - -export type ModalProps = Modals & { type: T }; -export type ReturnType = - | ComponentProps + type: "signed_out"; + } + | { + type: "sign_out_sessions"; + client: Client; + } + // unimplemented: (modals.tsx#L58) + | { + type: "report_success"; + user?: User; + } + | { + type: "out_of_date"; + version: string; + } + | { + type: "reset_bot_token"; + bot: Bot; + } + | { + type: "link_warning"; + url: URL; + display: string; + } + // | { + // type: "pending_friend_requests"; + // users: User[]; + // } + | { + type: "user_picker"; + omit?: string[]; + callback: (users: string[]) => Promise; + } + | { + type: "user_profile"; + user: User; + isPlaceholder?: boolean; + placeholderProfile?: API.UserProfile; + } + | { + type: "user_profile_roles"; + member: ServerMember; + } + | { + type: "user_profile_mutual_friends"; + users: User[]; + } + | { + type: "user_profile_mutual_groups"; + groups: (Server | Channel)[]; + } + | { + type: "leave_group"; + channel: Channel; + } + | { + type: "close_dm"; + channel: Channel; + } + | { + type: "unfriend_user"; + user: User; + } | { - _children: (props: { show: boolean; onClose: () => void }) => JSX.Element; + type: "block_user"; + user: User; + } + | { + type: "import_theme"; }; -export type PropGenerator = ( - props: ModalProps, - onClose: () => void -) => ReturnType; diff --git a/packages/client/components/routing/index.tsx b/packages/client/components/routing/index.tsx index 8fc3350d..4ac009d8 100644 --- a/packages/client/components/routing/index.tsx +++ b/packages/client/components/routing/index.tsx @@ -11,17 +11,21 @@ import { useLocation } from "@solidjs/router"; */ export { Navigate, - Router, Route, + Router, + useBeforeLeave, + useLocation, useNavigate, useParams, - useLocation, - useBeforeLeave, } from "@solidjs/router"; const RE_SERVER = /\/server\/([A-Z0-9]{26})/; const RE_CHANNEL = /\/channel\/([A-Z0-9]{26})/; const RE_MESSAGE_ID = /\/channel\/[A-Z0-9]{26}\/([A-Z0-9]{26})/; +const RE_BOT_ID = /\/bot\/([A-Z0-9]{26})/; + +const RE_INVITE_EXACT = /^\/invite\/([\w\d]+)$/; +const RE_BOT_ID_EXACT = /^\/bot\/[A-Z0-9]{26}$/; const RE_SERVER_EXACT = /^\/server\/([A-Z0-9]{26})$/; const RE_CHANNEL_EXACT = @@ -33,6 +37,11 @@ const RE_MESSAGE_ID_EXACT = * Route parameters available globally */ type GlobalParams = { + /** + * Invite ID + */ + inviteId?: string; + /** * Server ID */ @@ -62,6 +71,16 @@ type GlobalParams = { * Exact match for message? */ exactMessage: boolean; + + /** + * Bot ID + */ + botId?: string; + + /** + * Exact match for bot? + */ + exactBot: boolean; }; /** @@ -74,8 +93,15 @@ export function paramsFromPathname(pathname: string): GlobalParams { exactServer: !!pathname.match(RE_SERVER_EXACT), exactChannel: !!pathname.match(RE_CHANNEL_EXACT), exactMessage: !!pathname.match(RE_MESSAGE_ID_EXACT), + exactBot: !!pathname.match(RE_BOT_ID_EXACT), }; + // Check for invite ID + const invite = pathname.match(RE_INVITE_EXACT); + if (invite) { + params.inviteId = invite[1]; + } + // Check for server ID const server = pathname.match(RE_SERVER); if (server) { @@ -94,6 +120,12 @@ export function paramsFromPathname(pathname: string): GlobalParams { params.messageId = message[1]; } + // Check for bot ID + const bot = pathname.match(RE_BOT_ID); + if (bot) { + params.botId = bot[1]; + } + return params; } diff --git a/packages/client/components/rtc/Demo.tsx b/packages/client/components/rtc/Demo.tsx new file mode 100644 index 00000000..d3467a82 --- /dev/null +++ b/packages/client/components/rtc/Demo.tsx @@ -0,0 +1,395 @@ +import { Match, Show, Switch } from "solid-js"; +import { + TrackLoop, + TrackReference, + VideoTrack, + isTrackReference, + useEnsureParticipant, + useIsMuted, + useIsSpeaking, + useTrackRefContext, + useTracks, +} from "solid-livekit-components"; + +import { Track } from "livekit-client"; +import { Channel } from "upryzing.js"; +import { css } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { UserContextMenu } from "@revolt/app"; +import { useUser } from "@revolt/markdown/users"; +import { + Avatar, + Button, + Column, + IconButton, + OverflowingText, + Row, + iconSize, +} from "@revolt/ui"; + +import MdHeadsetOff from "@material-design-icons/svg/outlined/headset_off.svg?component-solid"; +import MdMicOn from "@material-design-icons/svg/outlined/mic.svg?component-solid"; +import MdMicOff from "@material-design-icons/svg/outlined/mic_off.svg?component-solid"; + +import { InRoom, useVoice } from "."; + +export function RoomParticipants() { + const tracks = useTracks( + [ + { source: Track.Source.Camera, withPlaceholder: true }, + { source: Track.Source.ScreenShare, withPlaceholder: false }, + ], + { onlySubscribed: false }, + ); + + return ( +
+ {() => } +
+ ); +} + +export function FakeParticipants() { + return ( +
+ + + + + + + + + + + + + +
+ ); +} + +const Tile = styled("div", { + base: { + minWidth: "240px", + maxWidth: "240px", + display: "grid", + aspectRatio: "16/9", + transition: ".3s ease all", + borderRadius: "var(--borderRadius-lg)", + background: "#0001", + overflow: "hidden", + outlineWidth: "3px", + outlineStyle: "solid", + outlineOffset: "-3px", + outlineColor: "transparent", + }, + variants: { + speaking: { + yes: { + outlineColor: "#23a559", + }, + }, + }, +}); + +export function LeParticipant() { + const participant = useEnsureParticipant(); + const track = useTrackRefContext(); + const isMuted = useIsMuted({ + participant, + source: Track.Source.Microphone, + }); + const isSpeaking = useIsSpeaking(participant); + + const user = useUser(participant.identity); + + return ( + + {/*{participant.identity}
muted? {isMuted() ? 'yes' : 'no'}*/} + ( + + ), + }} + > + +
+ } + > + + + +
+
+ + {participant.identity} + + +
+ +
+
+
+ + ); +} + +export function DemoWrapper(props: { channel: Channel }) { + const voice = useVoice()!; + + const shouldShow = () => { + const room = voice.room(); + return !room + ? !!props.channel.server + : voice.channel()?.id === props.channel.id; + }; + + return ( + + + + + + ); +} + +export function Demo(props: { channel: Channel }) { + const voice = useVoice()!; + + /** + * Join voice call + * copy pasted from channelheader + * todo: make this consistnet + */ + async function joinCall() { + voice.connect(props.channel); + } + + return ( + /*
+ state: {voice.state()} +
+ + +
+ +
+ +
+ + + } + > + + + +
+
*/ + + {/* */} + + Connecting... + + + + +
+ + + +
+ voice.toggleMute()} + > + }> + + + + + +
+
+ + +
+ + + +
+
+ + voice.disconnect()}>Leave Call + } + > + + + + + + + {/* */} + +
+ +
+ +
+ +
+
+
+
+ + ); +} + +const Actions = styled("div", { + base: { + display: "flex", + gap: "2", + padding: "2", + }, +}); diff --git a/packages/client/components/rtc/components/InRoom.tsx b/packages/client/components/rtc/components/InRoom.tsx new file mode 100644 index 00000000..2b69a924 --- /dev/null +++ b/packages/client/components/rtc/components/InRoom.tsx @@ -0,0 +1,31 @@ +import { JSX, Show } from "solid-js"; +import { useMaybeRoomContext } from "solid-livekit-components"; + +import { useVoice } from ".."; + +/** + * Render only if in a voice call (and optionally check if channelId matches) + * + * Like exposes fallback prop + */ +export function InRoom(props: { + channelId?: string; + children: JSX.Element; + fallback?: JSX.Element; +}) { + const room = useMaybeRoomContext(); + const voice = useVoice(); + + return ( + + {props.children} + + ); +} diff --git a/packages/client/components/rtc/components/RoomAudioManager.tsx b/packages/client/components/rtc/components/RoomAudioManager.tsx new file mode 100644 index 00000000..28acc633 --- /dev/null +++ b/packages/client/components/rtc/components/RoomAudioManager.tsx @@ -0,0 +1,65 @@ +import { createEffect, createMemo } from "solid-js"; +import { AudioTrack, useTracks } from "solid-livekit-components"; + +import { getTrackReferenceId, isLocal } from "@livekit/components-core"; +import { Key } from "@solid-primitives/keyed"; +import { RemoteTrackPublication, Track } from "livekit-client"; + +import { useState } from "@revolt/state"; + +import { useVoice } from "../state"; + +export function RoomAudioManager() { + const voice = useVoice(); + const state = useState(); + + const tracks = useTracks( + [ + Track.Source.Microphone, + Track.Source.ScreenShareAudio, + Track.Source.Unknown, + ], + { + updateOnlyOn: [], + onlySubscribed: false, + }, + ); + + const filteredTracks = createMemo(() => + tracks().filter( + (track) => + !isLocal(track.participant) && + track.publication.kind === Track.Kind.Audio, + ), + ); + + createEffect(() => { + const tracks = filteredTracks(); + console.info("[rtc] filtered tracks", filteredTracks()); + for (const track of tracks) { + (track.publication as RemoteTrackPublication).setSubscribed(true); + console.info(track.publication); + } + }); + + return ( +
+ getTrackReferenceId(item)}> + {(track) => ( + + )} + +
+ ); +} diff --git a/packages/client/components/rtc/index.ts b/packages/client/components/rtc/index.ts new file mode 100644 index 00000000..6d1e346d --- /dev/null +++ b/packages/client/components/rtc/index.ts @@ -0,0 +1,4 @@ +export { VoiceContext, useVoice } from "./state"; + +export { InRoom } from "./components/InRoom"; +export { RoomAudioManager } from "./components/RoomAudioManager"; diff --git a/packages/client/components/rtc/state.tsx b/packages/client/components/rtc/state.tsx new file mode 100644 index 00000000..7596d7b0 --- /dev/null +++ b/packages/client/components/rtc/state.tsx @@ -0,0 +1,210 @@ +import { + Accessor, + JSX, + Setter, + batch, + createContext, + createSignal, + useContext, +} from "solid-js"; +import { RoomContext } from "solid-livekit-components"; + +import { Room } from "livekit-client"; +import { Channel } from "upryzing.js"; + +import { useState } from "@revolt/state"; +import { Voice as VoiceSettings } from "@revolt/state/stores/Voice"; +import { VoiceCallCardContext } from "@revolt/ui/components/features/voice/callCard/VoiceCallCard"; + +import { InRoom } from "./components/InRoom"; +import { RoomAudioManager } from "./components/RoomAudioManager"; + +type State = + | "READY" + | "DISCONNECTED" + | "CONNECTING" + | "CONNECTED" + | "RECONNECTING"; + +class Voice { + #settings: VoiceSettings; + + channel: Accessor; + #setChannel: Setter; + + room: Accessor; + #setRoom: Setter; + + state: Accessor; + #setState: Setter; + + deafen: Accessor; + #setDeafen: Setter; + + microphone: Accessor; + #setMicrophone: Setter; + + video: Accessor; + #setVideo: Setter; + + screenshare: Accessor; + #setScreenshare: Setter; + + constructor(voiceSettings: VoiceSettings) { + this.#settings = voiceSettings; + + const [channel, setChannel] = createSignal(); + this.channel = channel; + this.#setChannel = setChannel; + + const [room, setRoom] = createSignal(); + this.room = room; + this.#setRoom = setRoom; + + const [state, setState] = createSignal("READY"); + this.state = state; + this.#setState = setState; + + const [deafen, setDeafen] = createSignal(false); + this.deafen = deafen; + this.#setDeafen = setDeafen; + + const [microphone, setMicrophone] = createSignal(false); + this.microphone = microphone; + this.#setMicrophone = setMicrophone; + + const [video, setVideo] = createSignal(false); + this.video = video; + this.#setVideo = setVideo; + + const [screenshare, setScreenshare] = createSignal(false); + this.screenshare = screenshare; + this.#setScreenshare = setScreenshare; + } + + async connect(channel: Channel, auth?: { url: string; token: string }) { + this.disconnect(); + + const room = new Room({ + audioCaptureDefaults: { + deviceId: this.#settings.preferredAudioInputDevice, + echoCancellation: this.#settings.echoCancellation, + noiseSuppression: this.#settings.noiseSupression, + }, + audioOutput: { + deviceId: this.#settings.preferredAudioOutputDevice, + }, + }); + + batch(() => { + this.#setRoom(room); + this.#setChannel(channel); + this.#setState("CONNECTING"); + + this.#setMicrophone(false); + this.#setDeafen(false); + this.#setVideo(false); + this.#setScreenshare(false); + + if (this.speakingPermission) + room.localParticipant + .setMicrophoneEnabled(true) + .then((track) => this.#setMicrophone(typeof track !== "undefined")); + }); + + room.addListener("connected", () => this.#setState("CONNECTED")); + + room.addListener("disconnected", () => this.#setState("DISCONNECTED")); + + if (!auth) { + auth = await channel.joinCall("worldwide"); + } + + await room.connect(auth.url, auth.token, { + autoSubscribe: false, + }); + } + + disconnect() { + const room = this.room(); + if (!room) return; + + room.removeAllListeners(); + room.disconnect(); + + batch(() => { + this.#setState("READY"); + this.#setRoom(undefined); + this.#setChannel(undefined); + }); + } + + async toggleDeafen() { + this.#setDeafen((s) => !s); + } + + async toggleMute() { + const room = this.room(); + if (!room) throw "invalid state"; + await room.localParticipant.setMicrophoneEnabled( + !room.localParticipant.isMicrophoneEnabled, + ); + + this.#setMicrophone(room.localParticipant.isMicrophoneEnabled); + } + + async toggleCamera() { + const room = this.room(); + if (!room) throw "invalid state"; + await room.localParticipant.setCameraEnabled( + !room.localParticipant.isCameraEnabled, + ); + + this.#setVideo(room.localParticipant.isCameraEnabled); + } + + async toggleScreenshare() { + const room = this.room(); + if (!room) throw "invalid state"; + await room.localParticipant.setScreenShareEnabled( + !room.localParticipant.isScreenShareEnabled, + ); + + this.#setScreenshare(room.localParticipant.isScreenShareEnabled); + } + + getConnectedUser(userId: string) { + return this.room()?.getParticipantByIdentity(userId); + } + + get listenPermission() { + return !!this.channel()?.havePermission("Listen"); + } + + get speakingPermission() { + return !!this.channel()?.havePermission("Speak"); + } +} + +const voiceContext = createContext(null as unknown as Voice); + +/** + * Mount global voice context and room audio manager + */ +export function VoiceContext(props: { children: JSX.Element }) { + const state = useState(); + const voice = new Voice(state.voice); + + return ( + + + {props.children} + + + + + + ); +} + +export const useVoice = () => useContext(voiceContext); diff --git a/packages/client/components/state/SyncWorker.tsx b/packages/client/components/state/SyncWorker.tsx new file mode 100644 index 00000000..42907aa4 --- /dev/null +++ b/packages/client/components/state/SyncWorker.tsx @@ -0,0 +1,50 @@ +import { createEffect, on, onCleanup } from "solid-js"; + +import { ProtocolV1 } from "upryzing.js/lib/events/v1"; + +import { useClient } from "@revolt/client"; + +import { useState } from "."; + +/** + * Manage synchronisation of settings to-from API + */ +export function SyncWorker() { + const state = useState(); + const client = useClient(); + + /** + * Handle incoming events + * @param event Event + */ + function handleEvent(event: ProtocolV1["server"]) { + if (event.type === "UserSettingsUpdate") { + state.sync.consumeEvent(event.update); + } + } + + // sync REMOTE->LOCAL settings + createEffect( + on( + () => client(), + (client) => { + if (client) { + state.sync.initialSync(client); + + client.events.addListener("event", handleEvent); + onCleanup(() => client.events.removeListener("event", handleEvent)); + } + }, + ), + ); + + // sync LOCAL->REMOTE settings + createEffect( + on( + () => state.sync.shouldSync, + (shouldSync) => shouldSync && state.sync.save(client()), + ), + ); + + return null; +} diff --git a/packages/client/components/state/index.tsx b/packages/client/components/state/index.tsx index 190f25f5..bfdbb55d 100644 --- a/packages/client/components/state/index.tsx +++ b/packages/client/components/state/index.tsx @@ -1,21 +1,32 @@ -import { JSX, Show, createSignal, onMount } from "solid-js"; +import { + JSX, + Show, + createContext, + createSignal, + onMount, + useContext, +} from "solid-js"; import { SetStoreFunction, createStore } from "solid-js/store"; import equal from "fast-deep-equal"; import localforage from "localforage"; -import { registerController } from "@revolt/common"; - import { AbstractStore, Store } from "./stores"; import { Auth } from "./stores/Auth"; import { Draft } from "./stores/Draft"; import { Experiments } from "./stores/Experiments"; import { Keybinds } from "./stores/Keybinds"; import { Layout } from "./stores/Layout"; +import { LinkSafety } from "./stores/LinkSafety"; import { Locale } from "./stores/Locale"; import { NotificationOptions } from "./stores/NotificationOptions"; import { Ordering } from "./stores/Ordering"; import { Settings } from "./stores/Settings"; +import { Sync } from "./stores/Sync"; +import { Theme } from "./stores/Theme"; +import { Voice } from "./stores/Voice"; + +export { SyncWorker } from "./SyncWorker"; /** * Introduce some delay before writing state to disk @@ -42,10 +53,14 @@ export class State { experiments = new Experiments(this); keybinds = new Keybinds(this); layout = new Layout(this); + linkSafety = new LinkSafety(this); locale = new Locale(this); notifications = new NotificationOptions(this); ordering = new Ordering(this); settings = new Settings(this); + sync = new Sync(this); + theme = new Theme(this); + voice = new Voice(this); /** * Iterate over all available stores @@ -56,7 +71,7 @@ export class State { Object.keys(this).filter( (key) => (this[key as keyof State] as unknown as { _storeHint: boolean }) - ?._storeHint + ?._storeHint, ) as (keyof Store)[] ).map((key) => this[key] as AbstractStore); } @@ -84,8 +99,6 @@ export class State { this.store = store as never; this.setStore = setStore; this.writeQueue = {}; - - registerController("state", this); } /** @@ -98,6 +111,9 @@ export class State { // resolve key const key = args[0] as string; + // touch the key if syncable + this.sync.touchIfSyncable(key); + // remove existing queued task if it exists if (this.writeQueue[key]) { clearTimeout(this.writeQueue[key]); @@ -113,15 +129,15 @@ export class State { localforage.setItem( key, JSON.parse( - JSON.stringify((this.store as Record)[key]) - ) + JSON.stringify((this.store as Record)[key]), + ), ); if (import.meta.env.DEV) { - console.info("Wrote state to disk."); + console.info("[store.save] Wrote state to disk."); } }, - IGNORE_WRITE_DELAY.includes(key) ? 0 : DISK_WRITE_WAIT_MS + IGNORE_WRITE_DELAY.includes(key) ? 0 : DISK_WRITE_WAIT_MS, ) as unknown as number; }; @@ -134,7 +150,7 @@ export class State { // run side-effects if (import.meta.env.DEV) { - console.info("[store] updated data", args[0]); + console.debug("[store] updated data", args[0]); } }; @@ -176,6 +192,29 @@ export class State { } /** - * Global application state + * State context + */ +const stateContext = createContext(null! as State); + +/** + * Mount state context */ -export const state = new State(); +export function StateContext(props: { children: JSX.Element }) { + const stateLocal = new State(); + const [ready, setReady] = createSignal(false); + + onMount(() => stateLocal.hydrate().then(() => setReady(true))); + + return ( + + {props.children} + + ); +} + +/** + * Use application state + */ +export function useState() { + return useContext(stateContext); +} diff --git a/packages/client/components/state/stores/Auth.ts b/packages/client/components/state/stores/Auth.ts index 2933d5a0..79dbebbb 100644 --- a/packages/client/components/state/stores/Auth.ts +++ b/packages/client/components/state/stores/Auth.ts @@ -1,5 +1,4 @@ -import { TransitionType } from "@revolt/client/Controller"; -import { CONFIGURATION, getController } from "@revolt/common"; +import { CONFIGURATION } from "@revolt/common"; import { State } from ".."; @@ -43,15 +42,6 @@ export class Auth extends AbstractStore<"auth", TypeAuth> { valid: true, }); } - - const session = this.getSession(); - if (session) { - const clientController = getController("client"); - clientController.lifecycle.transition({ - type: TransitionType.LoginCached, - session, - }); - } } /** diff --git a/packages/client/components/state/stores/Draft.ts b/packages/client/components/state/stores/Draft.ts index ff93a39b..a72313cf 100644 --- a/packages/client/components/state/stores/Draft.ts +++ b/packages/client/components/state/stores/Draft.ts @@ -1,6 +1,7 @@ -import { batch } from "solid-js"; +import { Setter, batch, createSignal } from "solid-js"; -import { API, Channel, Client, Message } from "@upryzing/upryzing.js"; +import { ulid } from "ulid"; +import { API, Channel, Client, Message } from "upryzing.js"; import { CONFIGURATION, insecureUniqueId } from "@revolt/common"; @@ -59,12 +60,23 @@ export type TypeDraft = { /** * All active message drafts */ - drafts: Record; + drafts: Record; /** * Unsent messages */ - outbox: Record; + outbox: Record; + + /** + * Current message being edited + * or used as a marker to load newest message as editor + */ + editingMessageId?: string | true; + + /** + * Value of message currently being edited + */ + editingMessageContent?: string; }; /** @@ -80,20 +92,19 @@ export const ALLOWED_IMAGE_TYPES = [ /** * Message drafts store */ -export class Draft extends AbstractStore<"draft", TypeDraft> { +export class Draft extends AbstractStore { /** * Keep track of cached files */ - private fileCache: Record< - string, - { file: File; dataUri: string | undefined } - >; + private fileCache: Record; /** * Current text selection */ private textSelection?: TextSelection; + _setNodeReplacement?: Setter; + /** * Construct store * @param state State @@ -103,6 +114,7 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { this.fileCache = {}; this.getFile = this.getFile.bind(this); + this.setEditingMessageContent = this.setEditingMessageContent.bind(this); } /** @@ -125,7 +137,7 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { /** * Validate the given data to see if it is compliant and return a compliant object */ - clean(input: Partial): TypeDraft { + clean(input: Partial): TypeDraft { const drafts: TypeDraft["drafts"] = {}; const outbox: TypeDraft["outbox"] = {}; @@ -141,7 +153,7 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { (x) => typeof x !== "object" || typeof x.id !== "string" || - typeof x.mention !== "boolean" + typeof x.mention !== "boolean", ); const messageDrafts = input.drafts; @@ -229,16 +241,18 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { */ setDraft( channelId: string, - data?: DraftData | ((data: DraftData) => DraftData) + data?: DraftData | ((data: DraftData) => DraftData), ) { if (typeof data === "function") { data = data(this.getDraft(channelId)); } if (typeof data === "undefined") { + console.info("[draft] cleared!"); return this.clearDraft(channelId); } + console.info("[draft] updated to ", data); this.set("drafts", channelId, data); } @@ -266,21 +280,13 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { * @param existingDraft The existing draft to send */ async sendDraft(client: Client, channel: Channel, existingDraft?: DraftData) { - const draft = existingDraft ?? this.getDraft(channel.id); - - // Try sending the message - const { content, replies, files } = draft; + const draft = existingDraft ?? this.popDraft(channel.id); - if ( - (content === undefined || content?.trim() === "") && - (files === undefined || files?.length == 0) - ) { - console.log("Invalid message, not sending"); - return; - } + // Check if this is something we can even send + if (!draft.content && !draft.files?.length) return; - // TODO: const idempotencyKey = ulid(); - const idempotencyKey = Math.random().toString(); + // Add message to the outbox + const idempotencyKey = ulid(); this.set("outbox", channel.id, [ ...this.getPendingMessages(channel.id), { @@ -290,6 +296,9 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { } as UnsentMessage, ]); + // Try sending the message + const { content, replies, files } = draft; + // Construct message object const attachments: string[] = []; const data: API.DataMessageSend = { @@ -307,9 +316,15 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { for (const fileId of files) { // Prepare for upload const body = new FormData(); - const { file } = this.getFile(fileId); + const { file, autumnId, uploadProgress } = this.getFile(fileId); + + // Use ID if already uploaded + if (autumnId) { + attachments.push(autumnId); + continue; + } + body.set("file", file); - const token = this.state.auth.getSession()?.token ?? ""; // We have to use XMLHttpRequest because modern fetch duplex streams require QUIC or HTTP/2 const xhr = new XMLHttpRequest(); @@ -319,19 +334,19 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { >((resolve) => { xhr.upload.addEventListener("progress", (event) => { if (event.lengthComputable) { - // TODO: show this to users - console.log("upload progress:", event.loaded / event.total); + uploadProgress[1](event.loaded / event.total); } }); xhr.addEventListener("loadend", () => { + uploadProgress[1](1); resolve([xhr.readyState === 4 && xhr.status === 200, xhr.response]); }); xhr.open( "POST", `${client.configuration!.features.pigeon.url}/attachments`, - true + true, ); const [authHeader, authHeaderValue] = client.authenticationHeader; @@ -341,9 +356,10 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { xhr.send(body); }); - // TODO: keep track of uploaded files (and don't reupload those that succeded if message or something else fails) if (!success) throw "Upload Error"; + attachments.push(response.id); + this.fileCache[fileId].autumnId = response.id; } } @@ -366,12 +382,10 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { "outbox", channel.id, this.getPendingMessages(channel.id).filter( - (entry) => entry.idempotencyKey !== idempotencyKey - ) + (entry) => entry.idempotencyKey !== idempotencyKey, + ), ); - - this.clearDraft(channel.id); - } catch (err) { + } catch { this.set( "outbox", channel.id, @@ -381,8 +395,8 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { ...entry, status: "failed", } - : entry - ) + : entry, + ), ); } } @@ -404,7 +418,7 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { return { content, replies, - files, + files: files?.slice(0, CONFIGURATION.MAX_ATTACHMENTS), }; } @@ -417,7 +431,7 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { retrySend(client: Client, channel: Channel, idempotencyKey: string) { batch(() => { const draft = this.get().outbox[channel.id].find( - (entry) => entry.idempotencyKey === idempotencyKey + (entry) => entry.idempotencyKey === idempotencyKey, ); // TODO: validation? @@ -436,8 +450,8 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { "outbox", channel.id, this.getPendingMessages(channel.id).filter( - (entry) => entry.idempotencyKey !== idempotencyKey - ) + (entry) => entry.idempotencyKey !== idempotencyKey, + ), ); } @@ -501,13 +515,23 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { * @param selfId Own user ID */ addReply(message: Message, selfId: string) { + this._setNodeReplacement?.(["_focus"]); + // Ignore if reply already exists if ( this.getDraft(message.channelId).replies?.find( - (reply) => reply.id === message.id + (reply) => reply.id === message.id, ) - ) + ) { return; + } + + if ( + (this.getDraft(message.channelId).replies?.length ?? 0) >= + CONFIGURATION.MAX_REPLIES + ) { + return; + } // We should not mention ourselves, otherwise use previous mention state const shouldMention = @@ -540,7 +564,7 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { // Save current mention reply state as new default this.state.layout.setSectionState( LAYOUT_SECTIONS.MENTION_REPLY, - !reply.mention + !reply.mention, ); return { ...reply, mention: !reply.mention }; @@ -567,15 +591,34 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { * @param channelId Channel ID * @param file File to add */ - addFile(channelId: string, file: File) { + async addFile(channelId: string, file: File) { const id = insecureUniqueId(); this.fileCache[id] = { file, dataUri: ALLOWED_IMAGE_TYPES.includes(file.type) ? URL.createObjectURL(file) : undefined, + // we know what we're doing here... + // eslint-disable-next-line solid/reactivity + uploadProgress: createSignal(0), }; + if (this.fileCache[id].dataUri) { + await new Promise((resolve, reject) => { + const image = new Image(); + + image.onload = () => { + this.fileCache[id].dimensions = [image.width, image.height]; + resolve(void 0); + }; + + image.onerror = reject; + image.src = this.fileCache[id].dataUri!; + }) + // ignore errors + .catch(() => {}); + } + this.setDraft(channelId, (data) => ({ files: [...(data.files ?? []), id], })); @@ -615,6 +658,16 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { return this.fileCache[fileId]; } + /** + * Whether additional elements (attachment/reply) are present + * @param channelId Channel ID + * @returns Whether information is present + */ + hasAdditionalElements(channelId: string): boolean { + const draft = this.getDraft(channelId); + return !!(draft.replies?.length || draft.files?.length); + } + /** * Remove additional information from a draft (file or reply) * @param channelId Channel ID @@ -641,4 +694,43 @@ export class Draft extends AbstractStore<"draft", TypeDraft> { return false; } + + /** + * Set message ID + * @param message Message ID + */ + setEditingMessage(message: Message | true | undefined) { + batch(() => { + if (message instanceof Message) + this.set("editingMessageContent", message.content); + else this.set("editingMessageContent", undefined); + + this.set( + "editingMessageId", + message instanceof Message ? message.id : message, + ); + }); + } + + /** + * Set editing message content + * @param content Content + */ + setEditingMessageContent(content: string) { + this.set("editingMessageContent", content); + } + + /** + * Message that is currently being edited + */ + get editingMessageId() { + return this.get().editingMessageId; + } + + /** + * Message edit content + */ + get editingMessageContent() { + return this.get().editingMessageContent; + } } diff --git a/packages/client/components/state/stores/Experiments.ts b/packages/client/components/state/stores/Experiments.ts index 5a3d048b..87ced0f1 100644 --- a/packages/client/components/state/stores/Experiments.ts +++ b/packages/client/components/state/stores/Experiments.ts @@ -5,44 +5,22 @@ import { AbstractStore } from "."; /** * Union type of available experiments. */ -export type Experiment = - | "file_uploads" - | "friends" - | "account_switcher" - | "gif_picker" - | "user_card" - | "emoji_picker" - | "plugins" - | "voice_chat"; +export type Experiment = "gif_picker" | "plugins"; /** * Currently active experiments. */ -export const AVAILABLE_EXPERIMENTS: Experiment[] = [ - "file_uploads", - "friends", - "account_switcher", - "gif_picker", - "user_card", - "emoji_picker", - "plugins", - "voice_chat", -]; +export const AVAILABLE_EXPERIMENTS: Experiment[] = ["gif_picker", "plugins"]; /** * Experiments enabled by default. */ -export const DEFAULT_EXPERIMENTS: Experiment[] = ["file_uploads"]; +export const DEFAULT_EXPERIMENTS: Experiment[] = []; /** * Always-on development-mode experiments. */ -export const ALWAYS_ON_DEVELOPMENT_EXPERIMENTS: Experiment[] = [ - "file_uploads", - "friends", - "gif_picker", - "user_card", -]; +export const ALWAYS_ON_DEVELOPMENT_EXPERIMENTS: Experiment[] = []; /** * Definitions for experiments listed by {@link Experiment}. @@ -50,38 +28,14 @@ export const ALWAYS_ON_DEVELOPMENT_EXPERIMENTS: Experiment[] = [ export const EXPERIMENTS: { [key in Experiment]: { title: string; description: string }; } = { - file_uploads: { - title: "File Uploads", - description: "Enable file uploads when messaging.", - }, - friends: { - title: "Friends Menu", - description: "Enable the friends menu in home.", - }, - account_switcher: { - title: "Account Switcher", - description: "Enable the account switcher on the login page.", - }, gif_picker: { - title: "GIF Picker", - description: "Search and send GIFs from GIFBox!", - }, - user_card: { - title: "Member Pop-out Card", - description: "Click on members to see more information about them.", - }, - emoji_picker: { - title: "Emoji Picker Placeholder", - description: "Search and add emoji to your messages.", + title: "GIF Picker Placeholder", + description: "Not available yet.", }, plugins: { title: "Plugins v2 Placeholder", description: "Not available yet.", }, - voice_chat: { - title: "Voice Chat Placeholder", - description: "Not available yet.", - }, }; export interface TypeExperiments { @@ -177,7 +131,7 @@ export class Experiments extends AbstractStore<"experiments", TypeExperiments> { disable(experiment: Experiment) { if (this.isEnabled(experiment)) { this.set("enabled", (enabled) => - enabled.filter((entry) => entry !== experiment) + enabled.filter((entry) => entry !== experiment), ); } } diff --git a/packages/client/components/state/stores/Keybinds.ts b/packages/client/components/state/stores/Keybinds.ts index e0190b3d..0b94bd17 100644 --- a/packages/client/components/state/stores/Keybinds.ts +++ b/packages/client/components/state/stores/Keybinds.ts @@ -1,60 +1,57 @@ -import { - KeyCombo, - KeyComboSequence, - KeybindAction, - KeybindActions, - KeybindSequence, -} from "@revolt/keybinds"; - +// import { +// KeyCombo, +// KeyComboSequence, +// KeybindAction, +// KeybindActions, +// KeybindSequence, +// } from "@revolt/keybinds"; import { State } from ".."; import { AbstractStore } from "."; -/** utility to make writing the default keybinds easier, requires all `KeybindAction` values to be filled out */ -function keybindMap( - obj: Record -): Record { - const entries = Object.entries(obj) as [KeybindAction, string[]][]; - const parsed = entries.map(([act, seqs]) => [ - act, - seqs.map((seq) => KeybindSequence.parse(seq)), - ]); - return Object.fromEntries(parsed); -} - -export const DEFAULT_VALUES: KeybindActions = keybindMap({ - [KeybindAction.NavigateChannelUp]: ["Alt+ArrowUp"], - [KeybindAction.NavigateChannelDown]: ["Alt+ArrowDown"], - // temporary, Control+Alt+ArrowUp does not seem to work on chrome or firefox at the moment - [KeybindAction.NavigateServerUp]: ["Control+ArrowUp"], - [KeybindAction.NavigateServerDown]: ["Control+ArrowDown"], - - [KeybindAction.AutoCompleteUp]: ["ArrowUp"], - [KeybindAction.AutoCompleteDown]: ["ArrowDown"], - [KeybindAction.AutoCompleteSelect]: ["Enter", "Tab"], - - [KeybindAction.NavigatePreviousContext]: [], //["Escape"], - [KeybindAction.NavigatePreviousContextModal]: [], - [KeybindAction.NavigatePreviousContextSettings]: [], - - [KeybindAction.InputForceSubmit]: ["Control+Enter"], - [KeybindAction.InputSubmit]: ["Enter"], - [KeybindAction.InputCancel]: [], // ["Escape"], - - [KeybindAction.MessagingMarkChannelRead]: [], // ["Escape"], - [KeybindAction.MessagingScrollToBottom]: ["Escape"], - [KeybindAction.MessagingEditPreviousMessage]: ["ArrowUp"], - - [KeybindAction.DeveloperToggleAllExperiments]: [], -}); +// /** utility to make writing the default keybinds easier, requires all `KeybindAction` values to be filled out */ +// function keybindMap( +// obj: Record, +// ): Record { +// const entries = Object.entries(obj) as [KeybindAction, string[]][]; +// const parsed = entries.map(([act, seqs]) => [ +// act, +// seqs.map((seq) => KeybindSequence.parse(seq)), +// ]); +// return Object.fromEntries(parsed); +// } + +// export const DEFAULT_VALUES: KeybindActions = keybindMap({ +// [KeybindAction.NavigateChannelUp]: ["Alt+ArrowUp"], +// [KeybindAction.NavigateChannelDown]: ["Alt+ArrowDown"], +// // temporary, Control+Alt+ArrowUp does not seem to work on chrome or firefox at the moment +// [KeybindAction.NavigateServerUp]: ["Control+ArrowUp"], +// [KeybindAction.NavigateServerDown]: ["Control+ArrowDown"], + +// [KeybindAction.AutoCompleteUp]: ["ArrowUp"], +// [KeybindAction.AutoCompleteDown]: ["ArrowDown"], +// [KeybindAction.AutoCompleteSelect]: ["Enter", "Tab"], + +// [KeybindAction.NavigatePreviousContext]: [], //["Escape"], +// [KeybindAction.NavigatePreviousContextModal]: [], +// [KeybindAction.NavigatePreviousContextSettings]: [], + +// [KeybindAction.InputForceSubmit]: ["Control+Enter"], +// [KeybindAction.InputSubmit]: ["Enter"], +// [KeybindAction.InputCancel]: [], // ["Escape"], + +// [KeybindAction.MessagingMarkChannelRead]: [], // ["Escape"], +// [KeybindAction.MessagingScrollToBottom]: ["Escape"], +// [KeybindAction.MessagingEditPreviousMessage]: ["ArrowUp"], + +// [KeybindAction.DeveloperToggleAllExperiments]: [], +// }); export type TypeKeybinds = { - keybinds: KeybindActions; + _phantom?: never; }; export class Keybinds extends AbstractStore<"keybinds", TypeKeybinds> { - keybinds = Map; - /** * Construct store * @param state State @@ -74,82 +71,13 @@ export class Keybinds extends AbstractStore<"keybinds", TypeKeybinds> { * Generate default values */ default() { - return { - keybinds: DEFAULT_VALUES, - }; + return {}; } /** * Validate the given data to see if it is compliant and return a compliant object */ - clean(input: Partial): TypeKeybinds { - const actions = this.default(); - // TODO: implement this - // throw new Error(`clean is not implemented for Keybinds yet`); - return { keybinds: { ...actions.keybinds, ...input.keybinds } }; - } - - getKeybinds() { - return this.get().keybinds; - } - - /** Get the default built-in keybind of an action */ - getDefaultKeybind(action: KeybindAction, index: number) { - return this.default().keybinds[action]?.[index]; - } - - /** - * Binds a keybind to an action at the given index - * @param action action to bind to - * @param index index to bind to - * @param sequence the keybind sequence - */ - setKeybind(action: KeybindAction, index: number, sequence: KeyComboSequence) { - this.set("keybinds", action, index, sequence); - } - - /** - * Adds a new keybind to an action - * @param action the action to add a keybind to - * @param sequence the keybind sequence to add - */ - addKeybind(action: KeybindAction, sequence: KeyComboSequence) { - this.set("keybinds", action, (keybinds) => [...keybinds, sequence]); - } - - /** - * Resets a keybind back to the built-in default. - * If there is none, remove it from the list of keybinds for the given action. - * @param action action to reset - * @param index index to reset - */ - resetKeybindToDefault(action: KeybindAction, index: number) { - const defaultValue = this.getDefaultKeybind(action, index); - if (defaultValue) { - this.set("keybinds", action, index, defaultValue); - } else { - // todo: maybe convert into a more efficient utility - this.set("keybinds", action, (keybinds) => { - // shallow copy so splice doesn't mutate the original - keybinds = [...keybinds]; - keybinds.splice(index, 1); - return keybinds; - }); - } - } - - /** - * Checks to see if a keybind is the default value - * @param action The action to check - * @param index The index to check - */ - isDefaultKeybind(action: KeybindAction, index: number) { - const keybindSequence = this.getKeybinds()?.[action]?.[index]; - const defaultSequence = DEFAULT_VALUES[action][index]; - return KeybindSequence.matches(keybindSequence, defaultSequence); - } - - isDefaultIndex(action: KeybindAction, index: number) { - return index < DEFAULT_VALUES[action].length; + clean(_input: Partial): TypeKeybinds { + return {}; } } diff --git a/packages/client/components/state/stores/Layout.ts b/packages/client/components/state/stores/Layout.ts index c6688ba1..d73916a6 100644 --- a/packages/client/components/state/stores/Layout.ts +++ b/packages/client/components/state/stores/Layout.ts @@ -8,12 +8,18 @@ import { AbstractStore } from "."; * Static section IDs */ export enum LAYOUT_SECTIONS { + PRIMARY_SIDEBAR = "PRIMARY_SIDEBAR", MEMBER_SIDEBAR = "MEMBER_SIDEBAR", MENTION_REPLY = "MENTION_REPLY", MATURE = "nsfw", } export interface TypeLayout { + /** + * URL to redirect to after login + */ + nextPath?: string; + /** * The current section of the program we are in * @@ -76,6 +82,10 @@ export class Layout extends AbstractStore<"layout", TypeLayout> { clean(input: Partial): TypeLayout { const layout: TypeLayout = this.default(); + if (typeof input.nextPath === "string") { + layout.nextPath = input.nextPath; + } + if (typeof input.activeInterface === "string") { layout.activeInterface = input.activeInterface; } @@ -99,6 +109,15 @@ export class Layout extends AbstractStore<"layout", TypeLayout> { return layout; } + /** + * Pop the next redirect path + */ + popNextPath() { + const nextUrl = this.get().nextPath; + this.set("nextPath", undefined); + return nextUrl; + } + /** * Get the last active path in the app */ @@ -107,12 +126,38 @@ export class Layout extends AbstractStore<"layout", TypeLayout> { return this.get().activePath[section] ?? "/"; } + /** + * Get the last active discover path in the app + */ + getLastActiveDiscoverPath() { + return this.get().activePath["discover"]; + } + + /** + * Get the last active server path + */ + getLastActiveServerPath(serverId: string) { + return this.get().activePath[serverId] ?? `/server/${serverId}`; + } + + /** + * Set the next redirect path + */ + setNextPath(pathname: string) { + this.set("nextPath", pathname); + } + /** * Set the last active path in the app */ setLastActivePath(pathname: string) { + if (pathname.startsWith("/settings") || pathname.startsWith("/invite")) + return; + const params = paramsFromPathname(pathname); - const section = params.serverId ?? "home"; + const section = pathname.startsWith("/discover") + ? "discover" + : (params.serverId ?? "home"); this.set("activeInterface", section); this.set("activePath", section, pathname); } @@ -146,7 +191,7 @@ export class Layout extends AbstractStore<"layout", TypeLayout> { this.setSectionState( id, !this.getSectionState(id, defaultValue), - defaultValue + defaultValue, ); } } diff --git a/packages/client/components/state/stores/LinkSafety.ts b/packages/client/components/state/stores/LinkSafety.ts new file mode 100644 index 00000000..8444f4c7 --- /dev/null +++ b/packages/client/components/state/stores/LinkSafety.ts @@ -0,0 +1,65 @@ +import { State } from ".."; + +import { AbstractStore } from "."; + +export type TypeLinkSafety = { + /** + * Origins that the user has allowed to be opened + */ + savedOrigins: string[]; +}; + +/** + * Keep track of safe origins + */ +export class LinkSafety extends AbstractStore<"linkSafety", TypeLinkSafety> { + /** + * Construct store + * @param state State + */ + constructor(state: State) { + super(state, "linkSafety"); + } + + /** + * Hydrate external context + */ + hydrate(): void {} + + /** + * Generate default values + */ + default(): TypeLinkSafety { + return { + savedOrigins: [], + }; + } + + /** + * Validate the given data to see if it is compliant and return a compliant object + */ + clean(input: Partial): TypeLinkSafety { + return { + savedOrigins: + input.savedOrigins?.filter((origin) => typeof origin === "string") ?? + [], + }; + } + + /** + * Check whether an origin of a URL is trusted + * @param url URL + * @returns Whether it's trusted + */ + isTrusted(url: URL) { + return this.get().savedOrigins.includes(url.origin); + } + + /** + * Trust a URL + * @param url URL + */ + trust(url: URL) { + this.set("savedOrigins", [...this.get().savedOrigins, url.origin]); + } +} diff --git a/packages/client/components/state/stores/Locale.ts b/packages/client/components/state/stores/Locale.ts index f6557fd3..9372b484 100644 --- a/packages/client/components/state/stores/Locale.ts +++ b/packages/client/components/state/stores/Locale.ts @@ -2,8 +2,10 @@ import { Language, Languages, browserPreferredLanguage, - setLanguage, + loadAndSwitchLocale, } from "@revolt/i18n"; +import type { LocaleOptions } from "@revolt/i18n/Languages"; +import { updateTimeLocaleOptions } from "@revolt/i18n/dayjs"; import { State } from ".."; @@ -14,6 +16,11 @@ export type TypeLocale = { * Current language in use */ lang: Language; + + /** + * Options + */ + options: LocaleOptions; }; /** @@ -32,7 +39,8 @@ export class Locale extends AbstractStore<"locale", TypeLocale> { * Hydrate external context */ hydrate(): void { - setLanguage(this.get().lang); + const { lang, options } = this.get(); + loadAndSwitchLocale(lang, options); } /** @@ -41,6 +49,7 @@ export class Locale extends AbstractStore<"locale", TypeLocale> { default(): TypeLocale { return { lang: browserPreferredLanguage() as Language, + options: {}, }; } @@ -53,8 +62,22 @@ export class Locale extends AbstractStore<"locale", TypeLocale> { lang = this.default().lang; } + const options: LocaleOptions = {}; + if (typeof input.options?.dateFormat === "string") { + options.dateFormat = input.options.dateFormat; + } + + if (typeof input.options?.timeFormat === "string") { + options.timeFormat = input.options.timeFormat; + } + + if (typeof input.options?.rtl === "boolean") { + options.rtl = input.options.rtl; + } + return { lang, + options, }; } @@ -66,4 +89,26 @@ export class Locale extends AbstractStore<"locale", TypeLocale> { this.set("lang", language); this.hydrate(); } + + /** + * Change date format + * @param dateFormat Date format + */ + setDateFormat(dateFormat: string): void { + this.set("options", "dateFormat", dateFormat); + updateTimeLocaleOptions({ + dateFormat, + }); + } + + /** + * Change time format + * @param timeFormat Time format + */ + setTimeFormat(timeFormat: string): void { + this.set("options", "timeFormat", timeFormat); + updateTimeLocaleOptions({ + timeFormat, + }); + } } diff --git a/packages/client/components/state/stores/NotificationOptions.ts b/packages/client/components/state/stores/NotificationOptions.ts index 24e5cfeb..1cd3dd4b 100644 --- a/packages/client/components/state/stores/NotificationOptions.ts +++ b/packages/client/components/state/stores/NotificationOptions.ts @@ -1,4 +1,6 @@ -import { Channel, Server } from "@upryzing/upryzing.js"; +import { Accessor, createSignal } from "solid-js"; + +import { Channel, Server } from "upryzing.js"; import { State } from ".."; @@ -7,17 +9,12 @@ import { AbstractStore } from "."; /** * Possible notification states */ -export type NotificationState = "all" | "mention" | "none" | "muted"; +export type NotificationState = "all" | "mention" | "none"; /** * Possible notification states */ -const NotificationStates: NotificationState[] = [ - "all", - "mention", - "none", - "muted", -]; +const NotificationStates: NotificationState[] = ["all", "mention", "none"]; /** * Default notification states for various types of channels @@ -29,7 +26,6 @@ export const DEFAULT_STATES: { DirectMessage: "all", Group: "all", TextChannel: undefined!, - VoiceChannel: undefined!, }; /** @@ -37,50 +33,53 @@ export const DEFAULT_STATES: { */ export const DEFAULT_SERVER_STATE: NotificationState = "mention"; +export interface MuteState { + until?: number; +} + export interface TypeNotificationOptions { /** * Per-server settings */ - server: Record; + server: Record; /** * Per-channel settings */ - channel: Record; -} + channel: Record; -/** - * Create a notification either directly or using service worker - * @param title Notification Title - * @param options Notification Options - * @returns Notification - */ -async function createNotification( - title: string, - options: globalThis.NotificationOptions -) { - try { - return new Notification(title, options); - } catch (err) { - const sw = await navigator.serviceWorker.getRegistration(); - sw?.showNotification(title, options); - } + /** + * Server mute settings + */ + server_mutes: Record; + + /** + * Channel mute settings + */ + channel_mutes: Record; } /** * Manages the user's notification preferences. */ -export class NotificationOptions extends AbstractStore< - "notifications", - TypeNotificationOptions -> { - private activeNotifications: Record = {}; +export class NotificationOptions extends AbstractStore { + private activeNotifications: Record = {}; + + #now: Accessor; /** * Construct new Experiments store. */ constructor(state: State) { super(state, "notifications"); + + // memory leak? -- maybe this should be a global util somewhere + // todo: refactor + const [now, setNow] = createSignal(+new Date()); + this.#now = now; + + // update every minute + setInterval(() => setNow(+new Date()), 6e3); } /** @@ -97,20 +96,30 @@ export class NotificationOptions extends AbstractStore< return { server: {}, channel: {}, + server_mutes: {}, + channel_mutes: {}, }; } /** * Validate the given data to see if it is compliant and return a compliant object */ - clean(input: Partial): TypeNotificationOptions { + clean(input: Partial): TypeNotificationOptions { const server: TypeNotificationOptions["server"] = {}; const channel: TypeNotificationOptions["channel"] = {}; + const server_mutes: TypeNotificationOptions["server_mutes"] = {}; + const channel_mutes: TypeNotificationOptions["channel_mutes"] = {}; if (typeof input.server === "object") { for (const serverId of Object.keys(input.server)) { const entry = input.server[serverId]; - if (NotificationStates.includes(entry)) { + + // migrate legacy muted channels to new dict. + if ((entry as unknown) === "muted") { + server_mutes[serverId] = {}; + } + + if (entry && NotificationStates.includes(entry)) { server[serverId] = entry; } } @@ -119,15 +128,51 @@ export class NotificationOptions extends AbstractStore< if (typeof input.channel === "object") { for (const channelId of Object.keys(input.channel)) { const entry = input.channel[channelId]; - if (NotificationStates.includes(entry)) { + + // migrate legacy muted channels to new dict. + if ((entry as unknown) === "muted") { + channel_mutes[channelId] = {}; + } + + if (entry && NotificationStates.includes(entry)) { channel[channelId] = entry; } } } + const now = +new Date(); + + if (typeof input.server_mutes === "object") { + for (const serverId of Object.keys(input.server_mutes)) { + const entry = input.server_mutes[serverId]; + if ( + entry && + (typeof entry.until === "undefined" || + (typeof entry.until === "number" && entry.until > now)) + ) { + server_mutes[serverId] = { until: entry.until }; + } + } + } + + if (typeof input.channel_mutes === "object") { + for (const channelId of Object.keys(input.channel_mutes)) { + const entry = input.channel_mutes[channelId]; + if ( + entry && + (typeof entry.until === "undefined" || + (typeof entry.until === "number" && entry.until > now)) + ) { + channel_mutes[channelId] = { until: entry.until }; + } + } + } + return { server, channel, + server_mutes, + channel_mutes, }; } @@ -156,22 +201,92 @@ export class NotificationOptions extends AbstractStore< } /** - * Check whether a Channel or Server is muted + * Set notification state for a server + * @param server Server + * @param state State + */ + setServer(server: Server, state: NotificationState | undefined) { + this.set("server", server.id, state); + } + + /** + * Set mute state for a server + * @param server Server + * @param state State + */ + setServerMute(server: Server, state: MuteState | undefined) { + this.set("server_mutes", server.id, state); + } + + /** + * Get muted state for a server + * @param server Server + * @returns Current state + */ + getServerMute(server: Server) { + return this.get().server_mutes[server.id]; + } + + /** + * Set notification state for a channel + * @param channel Channel + * @param state State + */ + setChannel(channel: Channel, state: NotificationState | undefined) { + this.set("channel", channel.id, state); + } + + /** + * Set mute state for a channel + * @param channel Channel + * @param state State + */ + setChannelMute(channel: Channel, state: MuteState | undefined) { + this.set("channel_mutes", channel.id, state); + } + + /** + * Get notification state for a channel + * @param channel Channel + * @returns Current state + */ + getChannel(channel: Channel) { + return this.get().channel[channel.id]; + } + + /** + * Get muted state for a channel + * @param channel Channel + * @returns Current state + */ + getChannelMute(channel: Channel) { + return this.get().channel_mutes[channel.id]; + } + + /** + * Check whether a Channel or Server is muted (channel will inherit server) * @param target Channel or Server * @returns Whether this object is muted */ - isMuted(target?: Channel | Server) { - let value: NotificationState | undefined; + isMuted(target?: Channel | Server): boolean { + let value: MuteState | undefined; if (target instanceof Channel) { - value = this.computeForChannel(target); + if (this.isMuted(target.server)) return true; + value = this.get().channel_mutes[target.id]; } else if (target instanceof Server) { - value = this.computeForServer(target); + value = this.get().server_mutes[target.id]; } - if (value === "muted") { - return true; - } + return !!value && (!value.until || value.until > this.#now()); + } - return false; + /** + * Check whether a Channel is muted (ignoring server) + * @param channel Channel + * @returns Whether this channel is muted + */ + isChannelMuted(channel: Channel): boolean { + const value = this.get().channel_mutes[channel.id]; + return !!value && (!value.until || value.until > this.#now()); } } diff --git a/packages/client/components/state/stores/Ordering.ts b/packages/client/components/state/stores/Ordering.ts index 90cda147..46c80a37 100644 --- a/packages/client/components/state/stores/Ordering.ts +++ b/packages/client/components/state/stores/Ordering.ts @@ -1,4 +1,4 @@ -import { getController } from "@revolt/common"; +import { Client } from "upryzing.js"; import { State } from ".."; @@ -14,7 +14,7 @@ export interface TypeOrdering { /** * Handles ordering of items in the app interface. */ -export class Ordering extends AbstractStore<"ordering", TypeOrdering> { +export class Ordering extends AbstractStore { /** * Construct store * @param state State @@ -43,7 +43,7 @@ export class Ordering extends AbstractStore<"ordering", TypeOrdering> { /** * Validate the given data to see if it is compliant and return a compliant object */ - clean(input: Partial): TypeOrdering { + clean(input: Partial): TypeOrdering { const ordering: TypeOrdering = this.default(); if (Array.isArray(input.servers)) { @@ -61,8 +61,7 @@ export class Ordering extends AbstractStore<"ordering", TypeOrdering> { * All known servers with ordering applied * @returns List of Server objects */ - get orderedServers() { - const client = getController("client").getCurrentClient(); + orderedServers(client: Client) { const known = new Set(client?.servers.keys() ?? []); const ordered = [...this.get().servers]; @@ -92,16 +91,14 @@ export class Ordering extends AbstractStore<"ordering", TypeOrdering> { * All known active DM conversations ordered by last updated * @returns List of Channel objects */ - get orderedConversations() { - const client = getController("client").getCurrentClient(); - + orderedConversations(client: Client) { return ( - client?.channels + client.channels .toList() .filter( (channel) => (channel.type === "DirectMessage" && channel.active) || - channel.type === "Group" + channel.type === "Group", ) .sort((a, b) => +b.updatedAt - +a.updatedAt) ?? [] ); diff --git a/packages/client/components/state/stores/Settings.ts b/packages/client/components/state/stores/Settings.ts index 0eedac26..a3263732 100644 --- a/packages/client/components/state/stores/Settings.ts +++ b/packages/client/components/state/stores/Settings.ts @@ -1,3 +1,8 @@ +import { + UNICODE_EMOJI_PACKS, + UnicodeEmojiPacks, +} from "@revolt/markdown/emoji/UnicodeEmoji"; + import { State } from ".."; import { AbstractStore } from "."; @@ -5,7 +10,7 @@ import { AbstractStore } from "."; interface SettingsDefinition { /** * Whether to enable desktop notifications - * Revolt will try to get notification permission after login if it doesn't already. + * Upryzing will try to get notification permission after login if it doesn't already. * TODO: implement */ // "notifications:desktop": boolean; @@ -17,10 +22,9 @@ interface SettingsDefinition { // "notifications:sounds": SoundOptions; /** - * Selected emoji pack - * TODO: implement + * Selected unicode emoji */ - // "appearance:emoji": EmojiPack; + "appearance:unicode_emoji": UnicodeEmojiPacks; // TODO: this should be part of theme // "appearance:ligatures": boolean; @@ -45,10 +49,25 @@ interface SettingsDefinition { "appearance:compact_mode": boolean; /** - * Indicate new users to Revolt + * Indicate new users to Upryzing * TODO: implement */ // "appearance:show_account_age": boolean; + + /** + * Whether to include 'copy ID' in context menus + */ + "advanced:copy_id": boolean; + + /** + * Whether to include admin panel links in context menus + */ + "advanced:admin_panel": boolean; + + /** + * Last read changelog index + */ + "changelog:last_index": number; } /** @@ -57,23 +76,29 @@ interface SettingsDefinition { type ValueType = SettingsDefinition[T] extends boolean ? "boolean" + : SettingsDefinition[T] extends number + ? "number" : SettingsDefinition[T] extends string ? "string" - : (v: Partial) => SettingsDefinition[T] | undefined; + : (v: Partial) => SettingsDefinition[T] | undefined; /** * Expected types of settings keys, enforce some sort of validation is present for all keys. * If we cannot validate the value as a primitive, clean it up using a function. */ -const EXPECTED_TYPES: { [K in keyof SettingsDefinition]: ValueType } = { +const EXPECTED_TYPES: { [K in keyof SettingsDefinition]: ValueType } = { + "appearance:unicode_emoji": "string", "appearance:show_send_button": "boolean", "appearance:compact_mode": "boolean", + "advanced:copy_id": "boolean", + "advanced:admin_panel": "boolean", + "changelog:last_index": "number", }; /** * In reality, this is a partial so we map it accordingly here. */ -export type TypeSettings = Partial; +export type TypeSettings = Partial; /** * Default values for settings, if applicable. @@ -83,7 +108,7 @@ const DEFAULT_VALUES: TypeSettings = {}; /** * Settings store */ -export class Settings extends AbstractStore<"settings", TypeSettings> { +export class Settings extends AbstractStore { /** * Construct store * @param state State @@ -103,13 +128,19 @@ export class Settings extends AbstractStore<"settings", TypeSettings> { * Generate default values */ default(): TypeSettings { - return {}; + return { + "appearance:unicode_emoji": "fluent-3d", + "appearance:show_send_button": true, + "appearance:compact_mode": false, + "advanced:copy_id": false, + "advanced:admin_panel": false, + }; } /** * Validate the given data to see if it is compliant and return a compliant object */ - clean(input: Partial): TypeSettings { + clean(input: Partial): TypeSettings { const settings: TypeSettings = this.default(); for (const key of Object.keys(input) as (keyof TypeSettings)[]) { @@ -117,13 +148,17 @@ export class Settings extends AbstractStore<"settings", TypeSettings> { if (typeof expectedType === "function") { const cleanedValue = (expectedType as (value: unknown) => unknown)( - input[key] + input[key], ); if (cleanedValue) { settings[key] = cleanedValue as never; } + } else if (key === "appearance:unicode_emoji") { + if (UNICODE_EMOJI_PACKS.includes(input[key] as never)) { + settings[key] = input[key]; + } } else if (typeof input[key] === expectedType) { - settings[key] = input[key]; + settings[key] = input[key] as never; } } diff --git a/packages/client/components/state/stores/Sync.ts b/packages/client/components/state/stores/Sync.ts new file mode 100644 index 00000000..401206a1 --- /dev/null +++ b/packages/client/components/state/stores/Sync.ts @@ -0,0 +1,197 @@ +import { batch } from "solid-js"; + +import { ReactiveSet } from "@solid-primitives/set"; +import { Client } from "upryzing.js"; + +import { State } from ".."; + +import { AbstractStore } from "."; + +type SynchronisedStores = "ordering" | "notifications"; + +const STORE_KEYS: SynchronisedStores[] = ["ordering", "notifications"]; + +export interface TypeSynchronisation { + revision: Record; +} + +/** + * Synchronisation orchestration + */ +export class Sync extends AbstractStore { + /** + * Block sync for remote updates + */ + #blockSync: Set; + + /** + * Keys that need to be synced out + */ + #syncQueue: ReactiveSet; + + /** + * Construct store + * @param state State + */ + constructor(state: State) { + super(state, "sync"); + this.#blockSync = new Set(); + this.#syncQueue = new ReactiveSet(); + } + + /** + * Hydrate external context + */ + hydrate(): void {} + + /** + * Generate default values + */ + default(): TypeSynchronisation { + return { + revision: { + ordering: 0, + notifications: 0, + }, + }; + } + + /** + * Validate the given data to see if it is compliant and return a compliant object + */ + clean(input: Partial): TypeSynchronisation { + return { + revision: Object.keys(input.revision ?? {}) + .filter((key) => STORE_KEYS.includes(key as SynchronisedStores)) + .filter((key) => input.revision?.[key as SynchronisedStores]) + .reduce( + (d, k) => ({ ...d, [k]: input.revision?.[k as SynchronisedStores] }), + {} as TypeSynchronisation["revision"], + ), + }; + } + + /** + * Synchronise data into store + * @param client Client + */ + async initialSync(client: Client) { + const response = await client.api.post("/sync/settings/fetch", { + keys: STORE_KEYS, + }); + + for (const key in response) { + const [ts, data] = response[key]; + this.merge(ts, key as SynchronisedStores, data); + } + } + + /** + * Send data to remote + * @param client Client + */ + async save(client: Client) { + // find all keys for sync + const keys = this.#syncQueue.keys().toArray(); + + // due to API constraints, merge ts down + const ts = +new Date(); + + // generate payload + const payload = keys.reduce( + (d, k) => ({ + ...d, + [k]: JSON.stringify(this.state.get(k)), + }), + { + timestamp: ts, + }, + ); + + // apply new ts and remove all of the keys + batch(() => + keys.forEach((key) => { + this.set("revision", key, ts); + this.#syncQueue.delete(key); + }), + ); + + // send data to the server + await client.api.post("/sync/settings/set", payload); + } + + /** + * Get revision for key + * @param key Key + * @returns Revision timestamp + */ + private ts(key: SynchronisedStores) { + return this.get().revision[key]; + } + + /** + * Update timestamp for key + * @param key Key + */ + touch(key: SynchronisedStores) { + if (this.#blockSync.has(key)) { + this.#blockSync.delete(key); + return; + } + + this.set("revision", key, +new Date()); + this.#syncQueue.add(key); + } + + /** + * Update timestamp for key + * @param key Key + */ + touchIfSyncable(key: string) { + if (STORE_KEYS.includes(key as SynchronisedStores)) { + this.touch(key as SynchronisedStores); + } + } + + /** + * Merge data + * @param ts Timestamp + * @param key Store key + * @param data Data to merge + */ + merge(ts: number, key: SynchronisedStores, data: string) { + if (import.meta.env.DEV) + console.info(`[sync] merge ${key} at ${ts} with`, data); + + if (ts > this.ts(key)) { + // if ts is newer, hydrate the store with it + const parsed = this.state[key].clean(JSON.parse(data)); + this.set("revision", key, ts); + this.#blockSync.add(key); + this.state.set(key, parsed); + } else if (ts !== this.ts(key)) { + // if ts is old, trigger write to synchronise to remote + this.touch(key); + } + } + + /** + * Consume client events + * @param event Update event + */ + consumeEvent(event: Record) { + for (const key in event) { + if (STORE_KEYS.includes(key as SynchronisedStores)) { + const [ts, data] = event[key]; + this.merge(ts, key as SynchronisedStores, data); + } + } + } + + /** + * Whether there are items in queue to sync + */ + get shouldSync() { + return this.#syncQueue.values().next().done === false; + } +} diff --git a/packages/client/components/state/stores/Theme.ts b/packages/client/components/state/stores/Theme.ts new file mode 100644 index 00000000..79066486 --- /dev/null +++ b/packages/client/components/state/stores/Theme.ts @@ -0,0 +1,371 @@ +import { Accessor, createSignal } from "solid-js"; + +import { Fonts, MonospaceFonts } from "@revolt/ui/themes/fonts"; + +import { State } from ".."; + +import { AbstractStore } from "."; + +export type TypeTheme = { + /** + * Base theme preset + */ + preset: "you"; + + /** + * Light/dark mode + */ + mode: "light" | "dark" | "system"; + + /** + * Accent + * (Material You) + */ + m3Accent: string; + + /** + * Constrast + * (Material You) + */ + m3Contrast: number; + + /** + * Variant + * (Material You) + */ + m3Variant: + | "monochrome" + | "neutral" + | "tonal_spot" + | "vibrant" + | "expressive" + | "fidelity" + | "content" + | "rainbow" + | "fruit_salad"; + + /** + * Whether to permit blurry surfaces + */ + blur: boolean; + + /** + * Interface font + */ + interfaceFont: Fonts; + + /** + * Monospace font + */ + monospaceFont: MonospaceFonts; + + /** + * Message size + */ + messageSize: number; + + /** + * Spacing between message groups + */ + messageGroupSpacing: number; +}; + +export type SelectedTheme = Pick< + TypeTheme, + | "blur" + | "interfaceFont" + | "monospaceFont" + | "messageSize" + | "messageGroupSpacing" +> & { + preset: "you"; + darkMode: boolean; + + accent: string; + contrast: number; + variant: TypeTheme["m3Variant"]; +}; + +/** + * Manages theme information + */ +export class Theme extends AbstractStore<"theme", TypeTheme> { + prefersDark: Accessor; + + /** + * Construct store + * @param state State + */ + constructor(state: State) { + super(state, "theme"); + + // handle prefers-color-scheme value and changes + const [prefersDark, setPrefersDark] = createSignal( + window.matchMedia && + window.matchMedia("(prefers-color-scheme: dark)").matches, + ); + + this.prefersDark = prefersDark; + + window + .matchMedia("(prefers-color-scheme: dark)") + .addEventListener("change", (event) => setPrefersDark(event.matches)); + + this.toggleBlur = this.toggleBlur.bind(this); + } + + /** + * Hydrate external context + */ + hydrate(): void { + /** nothing needs to be done */ + } + + /** + * Generate default values + */ + default(): TypeTheme { + return { + preset: "you", + mode: "system", + + m3Accent: "#FF5733", + m3Contrast: 0.0, + m3Variant: "tonal_spot", + + interfaceFont: "Inter", + monospaceFont: "Fira Code", + + blur: true, + messageSize: 14, + messageGroupSpacing: 12, + }; + } + + /** + * Validate the given data to see if it is compliant and return a compliant object + */ + clean(input: Partial): TypeTheme { + const data: TypeTheme = this.default(); + + if (["light", "dark", "system"].includes(input.mode!)) { + data.mode = input.mode!; + } + + if (["you", "neutral"].includes(input.preset!)) { + data.preset = input.preset!; + } + + if (typeof input.m3Contrast === "number") { + data.m3Contrast = input.m3Contrast; + } + + if ( + input.m3Accent && + input.m3Accent.match(/#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})/) + ) { + data.m3Accent = input.m3Accent; + } + + if ( + [ + "monochrome", + "neutral", + "tonal_spot", + "vibrant", + "expressive", + "fidelity", + "content", + "rainbow", + "fruit_salad", + ].includes(input.m3Variant!) + ) { + data.m3Variant = input.m3Variant!; + } + + if (typeof input.blur === "boolean") { + data.blur = input.blur; + } + + if (typeof input.messageSize === "number") { + data.messageSize = input.messageSize; + } + + if (typeof input.messageGroupSpacing === "number") { + data.messageGroupSpacing = input.messageGroupSpacing; + } + + return data; + } + + /** + * Get the currently selected theme (considering system settings) + */ + get activeTheme(): SelectedTheme { + const opts = this.get(); + + switch (opts.preset) { + case "you": + return { + blur: opts.blur, + interfaceFont: opts.interfaceFont, + monospaceFont: opts.monospaceFont, + messageSize: opts.messageSize, + messageGroupSpacing: opts.messageGroupSpacing, + preset: "you", + darkMode: + opts.mode === "dark" || + (opts.mode === "system" && this.prefersDark()), + + accent: opts.m3Accent, + contrast: opts.m3Contrast, + variant: opts.m3Variant, + }; + } + } + + /** + * Get light/dark/system mode + */ + get mode() { + return this.get().mode; + } + + /** + * Set light/dark/system mode + * @param mode Mode + */ + setMode(mode: TypeTheme["mode"]) { + this.set("mode", mode); + } + + /** + * Get current preset + */ + get preset() { + return this.get().preset; + } + + /** + * Set the active preset + * @param preset Preset + */ + setPreset(preset: TypeTheme["preset"]) { + this.set("preset", preset); + } + + /** + * Get current accent + */ + get m3Accent() { + return this.get().m3Accent; + } + + /** + * Set the accent of the Material You theme + * @param accent Accent + */ + setM3Accent(accent: string) { + this.set("m3Accent", accent); + } + + /** + * Get current contrast + */ + get m3Contrast() { + return this.get().m3Contrast; + } + + /** + * Set the contrast of the Material You theme + * @param contrast Contrast + */ + setM3Contrast(contrast: number) { + this.set("m3Contrast", contrast); + } + + /** + * Get current variant + */ + get m3Variant() { + return this.get().m3Variant; + } + + /** + * Set the variant of the Material You theme + * @param variant Variant + */ + setM3Variant(variant: TypeTheme["m3Variant"]) { + this.set("m3Variant", variant); + } + + /** + * Get current blur state + */ + get blur() { + return this.get().blur; + } + + /** + * Toggle blur state + */ + toggleBlur() { + this.set("blur", !this.blur); + } + + /** + * Get current interface font + */ + get interfaceFont() { + return this.get().interfaceFont; + } + + /** + * Set interface font + */ + setInterfaceFont(font: Fonts) { + return this.set("interfaceFont", font); + } + + /** + * Get current monospace font + */ + get monospaceFont() { + return this.get().monospaceFont; + } + + /** + * Set monospace font + */ + setMonospaceFont(font: MonospaceFonts) { + return this.set("monospaceFont", font); + } + + /** + * Get current message size + */ + get messageSize() { + return this.get().messageSize; + } + + /** + * Set message size + */ + set messageSize(size: number) { + this.set("messageSize", size); + } + + /** + * Get current message group spacing + */ + get messageGroupSpacing() { + return this.get().messageGroupSpacing; + } + + /** + * Set message group spacing + */ + set messageGroupSpacing(space: number) { + this.set("messageGroupSpacing", space); + } +} diff --git a/packages/client/components/state/stores/Voice.ts b/packages/client/components/state/stores/Voice.ts new file mode 100644 index 00000000..b9ade44b --- /dev/null +++ b/packages/client/components/state/stores/Voice.ts @@ -0,0 +1,221 @@ +import { State } from ".."; + +import { AbstractStore } from "."; + +export interface TypeVoice { + preferredAudioInputDevice?: string; + preferredAudioOutputDevice?: string; + + echoCancellation: boolean; + noiseSupression: boolean; + + inputVolume: number; + outputVolume: number; + + userVolumes: Record; + userMutes: Record; +} + +/** + * Handles enabling and disabling client experiments. + */ +export class Voice extends AbstractStore<"voice", TypeVoice> { + /** + * Construct store + * @param state State + */ + constructor(state: State) { + super(state, "voice"); + } + + /** + * Hydrate external context + */ + hydrate(): void { + /** nothing needs to be done */ + } + + /** + * Generate default values + */ + default(): TypeVoice { + return { + echoCancellation: true, + noiseSupression: true, + inputVolume: 1.0, + outputVolume: 1.0, + userVolumes: {}, + userMutes: {}, + }; + } + + /** + * Validate the given data to see if it is compliant and return a compliant object + */ + clean(input: Partial): TypeVoice { + const data = this.default(); + + if (typeof input.preferredAudioInputDevice === "string") { + data.preferredAudioInputDevice = input.preferredAudioInputDevice; + } + + if (typeof input.preferredAudioOutputDevice === "string") { + data.preferredAudioOutputDevice = input.preferredAudioOutputDevice; + } + + if (typeof input.echoCancellation === "boolean") { + data.echoCancellation = input.echoCancellation; + } + + if (typeof input.noiseSupression === "boolean") { + data.noiseSupression = input.noiseSupression; + } + + if (typeof input.inputVolume === "number") { + data.inputVolume = input.inputVolume; + } + + if (typeof input.outputVolume === "number") { + data.outputVolume = input.outputVolume; + } + + if (typeof input.userVolumes === "object") { + Object.entries(input.userVolumes) + .filter( + ([userId, volume]) => + typeof userId === "string" && typeof volume === "number", + ) + .forEach(([k, v]) => (data.userVolumes[k] = v)); + } + + if (typeof input.userMutes === "object") { + Object.entries(input.userMutes) + .filter( + ([userId, muted]) => typeof userId === "string" && muted === true, + ) + .forEach(([k, v]) => (data.userMutes[k] = v)); + } + + return data; + } + + /** + * Set a user's volume + * @param userId User ID + * @param volume Volume + */ + setUserVolume(userId: string, volume: number) { + this.set("userVolumes", userId, volume); + } + + /** + * Get a user's volume + * @param userId User ID + * @returns Volume or default + */ + getUserVolume(userId: string): number { + return this.get().userVolumes[userId] || 1.0; + } + + /** + * Set whether a user is muted + * @param userId User ID + * @param muted Whether they should be muted + */ + setUserMuted(userId: string, muted: boolean) { + this.set("userMutes", userId, muted); + } + + /** + * Get whether a user is muted + * @param userId User ID + * @returns Whether muted + */ + getUserMuted(userId: string): boolean { + return this.get().userMutes[userId] || false; + } + + /** + * Set the preferred audio input device + */ + set preferredAudioInputDevice(value: string) { + this.set("preferredAudioInputDevice", value); + } + + /** + * Set the preferred audio output device + */ + set preferredAudioOutputDevice(value: string) { + this.set("preferredAudioOutputDevice", value); + } + + /** + * Set echo cancellation + */ + set echoCancellation(value: boolean) { + this.set("echoCancellation", value); + } + + /** + * Set noise cancellation + */ + set noiseSupression(value: boolean) { + this.set("noiseSupression", value); + } + + /** + * Set input volume + */ + set inputVolume(value: number) { + this.set("inputVolume", value); + } + + /** + * Set output volume + */ + set outputVolume(value: number) { + this.set("outputVolume", value); + } + + /** + * Get the preferred audio input device + */ + get preferredAudioInputDevice(): string | undefined { + return this.get().preferredAudioInputDevice; + } + + /** + * Get the preferred audio output device + */ + get preferredAudioOutputDevice(): string | undefined { + return this.get().preferredAudioInputDevice; + } + + /** + * Get echo cancellation + */ + get echoCancellation(): boolean | undefined { + return this.get().echoCancellation; + } + + /** + * Get noise supression + */ + get noiseSupression(): boolean | undefined { + return this.get().noiseSupression; + } + + /** + * Get input volume + */ + get inputVolume(): number { + return this.get().inputVolume; + } + + /** + * Get noise supression + */ + get outputVolume(): number { + return this.get().outputVolume; + } +} diff --git a/packages/client/components/state/stores/index.ts b/packages/client/components/state/stores/index.ts index 511e2a2e..abf01d5e 100644 --- a/packages/client/components/state/stores/index.ts +++ b/packages/client/components/state/stores/index.ts @@ -7,10 +7,14 @@ import { TypeDraft } from "./Draft"; import { TypeExperiments } from "./Experiments"; import { TypeKeybinds } from "./Keybinds"; import { TypeLayout } from "./Layout"; +import { TypeLinkSafety } from "./LinkSafety"; import { TypeLocale } from "./Locale"; import { TypeNotificationOptions } from "./NotificationOptions"; import { TypeOrdering } from "./Ordering"; import { TypeSettings } from "./Settings"; +import { TypeSynchronisation } from "./Sync"; +import { TypeTheme } from "./Theme"; +import { TypeVoice } from "./Voice"; export type Store = { auth: TypeAuth; @@ -18,10 +22,14 @@ export type Store = { experiments: TypeExperiments; keybinds: TypeKeybinds; layout: TypeLayout; + linkSafety: TypeLinkSafety; locale: TypeLocale; notifications: TypeNotificationOptions; ordering: TypeOrdering; settings: TypeSettings; + sync: TypeSynchronisation; + theme: TypeTheme; + voice: TypeVoice; }; /** @@ -64,8 +72,11 @@ export abstract class AbstractStore { /** * Set some value in this store */ - protected set: SetStoreFunction = (...args: any[]) => { - (this.state.set as any)(this.key, ...args); + protected set: SetStoreFunction = (...args: unknown[]) => { + (this.state.set as unknown as (...args: unknown[]) => void)( + this.key, + ...args, + ); }; /** diff --git a/packages/client/components/ui/components/common/Draggable.tsx b/packages/client/components/ui/components/common/Draggable.tsx deleted file mode 100644 index 72b2fb19..00000000 --- a/packages/client/components/ui/components/common/Draggable.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { dndzone } from "solid-dnd-directive"; -import { For, JSX, createEffect, createSignal } from "solid-js"; - -interface Props { - items: Item[]; - children: (item: T) => JSX.Element; - onChange: (ids: string[]) => void; -} - -type Item = { id: string } & T; - -/** - * The dnd zone library requires you to have an id key - */ -interface ContainerItem { - id: string; - item: T; -} - -interface DragHandleEvent { - detail: { - items: ContainerItem[]; - }; - type: "consider" | "finalize"; -} - -/** - * Typescript removes dndzone because it thinks that it is not being used. - * This trick prevents that from happening. - * https://github.com/solidjs/solid/issues/1005#issuecomment-1134778606 - */ -0 && dndzone; - -/** - * Draggable list container - */ -export function Draggable(props: Props) { - const [containerItems, setContainerItems] = createSignal[]>( - [] - ); - - createEffect(() => { - const newContainerItems = props.items.map((item) => ({ - id: item.id, - item, - })); - setContainerItems(newContainerItems); - }); - - /** - * Handle DND event from solid-dnd-directive - * @param e - */ - function handleDndEvent(e: DragHandleEvent) { - const { items: newContainerItems } = e.detail; - setContainerItems(newContainerItems); - if (e.type === "finalize") - props.onChange( - newContainerItems.map((containerItems) => containerItems.id) - ); - } - - return ( -
- - {(containerItem) => props.children(containerItem.item)} - -
- ); -} diff --git a/packages/client/components/ui/components/common/index.ts b/packages/client/components/ui/components/common/index.ts deleted file mode 100644 index e92b6c41..00000000 --- a/packages/client/components/ui/components/common/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { Draggable } from "./Draggable"; -export { Masks } from "./Masks"; diff --git a/packages/client/components/ui/components/context/Keybinds.tsx b/packages/client/components/ui/components/context/Keybinds.tsx deleted file mode 100644 index 38bb5667..00000000 --- a/packages/client/components/ui/components/context/Keybinds.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { - Accessor, - ParentComponent, - createContext, - onCleanup, - onMount, - useContext, -} from "solid-js"; - -import { - KeybindAction, - KeybindActions, - KeybindEventHandler, -} from "@revolt/keybinds"; - -const KeybindsContext = createContext>(); - -interface Props { - /**A getter to keybinds */ - keybinds: Accessor; -} - -/** Provides a context to a keybind event handler */ -export const KeybindsProvider: ParentComponent = (props) => { - const handler = new KeybindEventHandler(props.keybinds); - - onMount(() => { - document.addEventListener("keydown", handler); - }); - - onCleanup(() => { - document.removeEventListener("keydown", handler); - }); - - return ( - - {props.children} - - ); -}; - -/** - * Use the keybinds context - * @note for getting keybind data you may be looking for {@link @revolt/state} - **/ -export const useKeybindActions = () => useContext(KeybindsContext)!; diff --git a/packages/client/components/ui/components/context/index.ts b/packages/client/components/ui/components/context/index.ts deleted file mode 100644 index 7038dcfa..00000000 --- a/packages/client/components/ui/components/context/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { KeybindsProvider } from "./Keybinds"; diff --git a/packages/client/components/ui/components/design/atoms/display/Avatar.tsx b/packages/client/components/ui/components/design/Avatar.tsx similarity index 56% rename from packages/client/components/ui/components/design/atoms/display/Avatar.tsx rename to packages/client/components/ui/components/design/Avatar.tsx index 2e575e63..b83cb248 100644 --- a/packages/client/components/ui/components/design/atoms/display/Avatar.tsx +++ b/packages/client/components/ui/components/design/Avatar.tsx @@ -1,8 +1,11 @@ -import { JSXElement, createEffect, createSignal, on } from "solid-js"; +import { JSXElement, Show } from "solid-js"; +import { css } from "styled-system/css"; import { styled } from "styled-system/jsx"; -import { Initials } from "./Initials"; +import { Initials } from "../utils"; + +import { Ripple } from "./Ripple"; export type Props = { /** @@ -52,6 +55,11 @@ export type Props = { */ interactive?: boolean; + /** + * Click handler + */ + onClick?: (e: MouseEvent) => void; + /** * HTML Web Component slot */ @@ -67,19 +75,6 @@ const Image = styled("img", { height: "100%", objectFit: "cover", }, - variants: { - shape: { - circle: { - borderRadius: "var(--borderRadius-full)", - }, - "rounded-square": { - borderRadius: "var(--borderRadius-md)", - }, - }, - }, - defaultVariants: { - shape: "circle", - }, }); /** @@ -98,32 +93,82 @@ const FallbackBase = styled("div", { fontSize: "0.75rem", }, variants: { - shape: { - circle: { - borderRadius: "var(--borderRadius-full)", - }, - "rounded-square": { - borderRadius: "var(--borderRadius-md)", - }, - }, contrast: { true: { - color: "var(--colours-component-avatar-fallback-contrast-foreground)", - background: - "var(--colours-component-avatar-fallback-contrast-background)", + color: "var(--md-sys-color-on-primary)", + background: "var(--md-sys-color-primary)", }, false: { - color: "var(--colours-component-avatar-fallback-foreground)", - background: "var(--colours-component-avatar-fallback-background)", + fill: "var(--md-sys-color-on-surface)", + color: "var(--md-sys-color-on-surface)", + background: "var(--md-sys-color-surface-container-low)", }, }, }, defaultVariants: { - shape: "circle", contrast: false, }, }); +/** + * Generic Avatar component + * + * Partially inspired by Adw.Avatar API, we allow users to specify a fallback component (usually just text) to display in case the URL is invalid. + */ +export function Avatar(props: Props) { + return ( + + + + + + + + + {typeof props.fallback === "string" ? ( + + ) : ( + props.fallback + )} + + } + > + + + + + + {props.overlay} + + ); +} + /** * Avatar parent container */ @@ -147,70 +192,25 @@ const ParentBase = styled("svg", { }); /** - * Inner SVG container + * Shape container (for Ripple support) */ -const ForeignObject = styled("foreignObject", { +const Shape = styled("div", { base: { - transition: "var(--transitions-fast) filter", + overflow: "hidden", + width: "100%", + height: "100%", }, -}); - -/** - * Generic Avatar component - * - * Partially inspired by Adw.Avatar API, we allow users to specify a fallback component (usually just text) to display in case the URL is invalid. - */ -export function Avatar(props: Props) { - const [url, setUrl] = createSignal(props.src); - - // Clear the source URL on change before applying new to avoid - // the stale image remaining on screen and hence causing weird - // visual issues in virtual containers. - createEffect( - on( - () => props.src, - (src) => { - if (url() !== src) { - setUrl(""); - setTimeout(() => setUrl(src)); - } + variants: { + shape: { + circle: { + borderRadius: "var(--borderRadius-circle)", }, - { defer: true } - ) - ); - - return ( - - - {url() && } - {!url() && ( - - {typeof props.fallback === "string" ? ( - - ) : ( - props.fallback - )} - - )} - - {props.overlay} - - ); -} + "rounded-square": { + borderRadius: "var(--borderRadius-md)", + }, + }, + }, + defaultVariants: { + shape: "circle", + }, +}); diff --git a/packages/client/components/ui/components/material/Badge.tsx b/packages/client/components/ui/components/design/Badge.tsx similarity index 70% rename from packages/client/components/ui/components/material/Badge.tsx rename to packages/client/components/ui/components/design/Badge.tsx index e99ddd22..0171a223 100644 --- a/packages/client/components/ui/components/material/Badge.tsx +++ b/packages/client/components/ui/components/design/Badge.tsx @@ -9,6 +9,12 @@ interface Props { variant: "small" | "large"; } +/** + * Badges show notifications, counts, or status information on navigation items and icons + * + * @library MDUI + * @specification https://m3.material.io/components/badges/overview + */ export function Badge(props: Props) { return ( diff --git a/packages/client/components/ui/components/design/Button.tsx b/packages/client/components/ui/components/design/Button.tsx new file mode 100644 index 00000000..c142304a --- /dev/null +++ b/packages/client/components/ui/components/design/Button.tsx @@ -0,0 +1,518 @@ +import { Show, createRenderEffect, on, splitProps } from "solid-js"; +import { JSX } from "solid-js/jsx-runtime"; + +import { AriaButtonProps, createButton } from "@solid-aria/button"; +import { cva } from "styled-system/css/cva"; + +import { Ripple } from "./Ripple"; +import { typography } from "./Text"; + +type Props = Omit< + Parameters[0] & + AriaButtonProps & + JSX.DirectiveAttributes & + Pick< + JSX.ButtonHTMLAttributes, + "role" | "tabIndex" | "aria-selected" + >, + "onClick" | "_permitAnimation" | "disabled" +> & { + groupActive?: boolean; + bg?: string; +}; + +/** + * Buttons prompt most actions in a UI + * + * If you wish to create standard button groups: + * + * ```tsx + * + * + * + * + * + * ``` + * + * If you wish to create connected button groups: + * + * ```tsx + * + * + * + * + * + * ``` + * + * @specification https://m3.material.io/components/buttons + */ +export function Button(props: Props) { + const [passthrough, propsRest] = splitProps(props, [ + "aria-selected", + "tabIndex", + "role", + ]); + + const [style, rest] = splitProps(propsRest, [ + "bg", + "size", + "shape", + "variant", + "group", + "groupActive", + ]); + let ref: HTMLButtonElement | undefined; + + const shape = () => + style.group + ? style.groupActive !== (style.group === "standard") + ? "round" + : "square" + : style.shape; + + const variant = () => + style.group ? (style.groupActive ? "filled" : "tonal") : style.variant; + + let _permitAnimation = false; + createRenderEffect( + on( + () => shape(), + () => (_permitAnimation = true), + { defer: true }, + ), + ); + + const { buttonProps } = createButton(rest, () => ref); + return ( + + ); +} + +const button = cva({ + base: { + ...typography.raw(), + + // for : + position: "relative", + + paddingInline: "var(--padding-inline)", + + flexShrink: 0, + display: "flex", + alignItems: "center", + justifyContent: "center", + + fontWeight: 500, + fontFamily: "inherit", + + cursor: "pointer", + border: "none", + transition: "var(--transitions-medium) all", + + color: "var(--color)", + fill: "var(--color)", + }, + variants: { + /** + * Variant is equivalent to 'color' in Material spec + */ + variant: { + elevated: { + boxShadow: "0 0.5px 1.5px #0004", + background: "var(--md-sys-color-surface-container-low)", + "--color": "var(--md-sys-color-primary)", + }, + filled: { + background: "var(--md-sys-color-primary)", + "--color": "var(--md-sys-color-on-primary)", + }, + tonal: { + background: "var(--md-sys-color-secondary-container)", + "--color": "var(--md-sys-color-on-secondary-container)", + }, + outlined: { + border: "1px solid var(--md-sys-color-outline-variant)", + "--color": "var(--md-sys-color-on-surface-variant)", + }, + text: { + "--color": "var(--md-sys-color-primary)", + }, + _error: { + background: "var(--md-sys-color-error)", + "--color": "var(--md-sys-color-on-error)", + }, + + // Old entries: + + /** + * @deprecated + */ + success: { + fill: "var(--unset-fg)", + color: "var(--unset-fg)", + background: "var(--unset-bg)", + }, + /** + * @deprecated + */ + warning: { + fill: "var(--unset-fg)", + color: "var(--unset-fg)", + background: "var(--unset-bg)", + }, + /** + * @deprecated + */ + error: { + fill: "var(--unset-fg)", + color: "var(--unset-fg)", + background: "var(--unset-bg)", + }, + /** + * @deprecated use filled + */ + primary: { + fill: "var(--unset-fg)", + color: "var(--unset-fg)", + background: "var(--unset-bg)", + }, + /** + * @deprecated use tonal + */ + secondary: { + fill: "var(--unset-fg)", + color: "var(--unset-fg)", + background: "var(--unset-bg)", + }, + /** + * @deprecated use text instead + */ + plain: { + fill: "var(--unset-fg)", + color: "var(--unset-fg)", + background: "var(--unset-bg)", + }, + }, + /** + * Expressive shapes + */ + shape: { + round: { + borderRadius: "var(--borderRadius-full)", + }, + square: {}, + }, + /** + * Expressive button groups + */ + group: { + "connected-start": {}, + "connected-end": {}, + connected: {}, + standard: {}, + }, + /** + * Internal helper for expressive button animation + */ + _permitAnimation: { + true: {}, + false: {}, + }, + /** + * Expressive sizes + */ + size: { + xs: { + height: "32px", + "--padding-inline": "12px", + }, + sm: { + height: "40px", + "--padding-inline": "16px", + }, + md: { + height: "56px", + "--padding-inline": "24px", + }, + lg: { + height: "96px", + "--padding-inline": "48px", + }, + xl: { + height: "136px", + "--padding-inline": "64px", + }, + + // Old code: + icon: { + width: "36px", + height: "36px", + }, + /** + * @deprecated + */ + small: { + height: "40px", + paddingInline: "16px", + borderRadius: "12px", + + ...typography.raw(), + }, + /** + * @deprecated + */ + normal: { + height: "38px", + minWidth: "96px", + padding: "2px 16px", + fontSize: "0.8125rem", + }, + /** + * @deprecated + */ + fab: { + width: "42px", + height: "42px", + borderRadius: "var(--borderRadius-lg)", + }, + /** + * @deprecated + */ + fluid: { + borderRadius: "var(--borderRadius-md)", + }, + /** + * @deprecated + */ + inline: { + padding: "var(--gap-xs) var(--gap-md)", + fontSize: "0.8125rem", + borderRadius: "var(--borderRadius-md)", + }, + /** + * @deprecated + */ + none: { + borderRadius: "0", + }, + }, + /** + * Whether the button is disabled + */ + disabled: { + true: { + cursor: "not-allowed", + }, + false: {}, + }, + }, + defaultVariants: { + size: "sm", + shape: "round", + variant: "filled", + disabled: false, + }, + compoundVariants: [ + // disabled styles + { + variant: ["elevated", "filled", "tonal", "outlined"], + disabled: true, + css: { + "--color": + "color-mix(in srgb, 38% var(--md-sys-color-on-surface), transparent)", + background: + "color-mix(in srgb, 10% var(--md-sys-color-on-surface), transparent)", + }, + }, + { + variant: "text", + disabled: true, + css: { + "--color": + "color-mix(in srgb, 38% var(--md-sys-color-on-surface), transparent)", + background: + "color-mix(in srgb, 10% var(--md-sys-color-on-surface), transparent)", + }, + }, + + // border radius for different squared sizes + { + shape: "square", + size: ["sm", "xs"], + css: { + borderRadius: "var(--borderRadius-md)", + }, + }, + { + shape: "square", + size: "md", + css: { + borderRadius: "var(--borderRadius-lg)", + }, + }, + { + shape: "square", + size: ["xl", "lg"], + css: { + borderRadius: "var(--borderRadius-xl)", + }, + }, + + // hard-code values for rounded connected group shapes + { + shape: "round", + size: ["sm", "xs"], + css: { + borderRadius: "48px", + }, + }, + { + shape: "round", + size: ["md"], + css: { + borderRadius: "64px", + }, + }, + { + shape: "round", + size: ["xl", "lg"], + css: { + borderRadius: "160px", + }, + }, + + // left-side connected group + { + shape: "square", + size: ["sm", "xs"], + group: "connected-start", + css: { + borderRadius: "48px var(--borderRadius-md) var(--borderRadius-md) 48px", + }, + }, + { + shape: "square", + size: "md", + group: "connected-start", + css: { + borderRadius: "64px var(--borderRadius-lg) var(--borderRadius-lg) 64px", + }, + }, + { + shape: "square", + size: ["xl", "lg"], + group: "connected-start", + css: { + borderRadius: + "160px var(--borderRadius-xl) var(--borderRadius-xl) 160px", + }, + }, + + // right-side connected group + { + shape: "square", + size: ["sm", "xs"], + group: "connected-end", + css: { + borderRadius: "var(--borderRadius-md) 48px 48px var(--borderRadius-md)", + }, + }, + { + shape: "square", + size: "md", + group: "connected-end", + css: { + borderRadius: "var(--borderRadius-lg) 64px 64px var(--borderRadius-lg)", + }, + }, + { + shape: "square", + size: ["xl", "lg"], + group: "connected-end", + css: { + borderRadius: + "var(--borderRadius-xl) 160px 160px var(--borderRadius-xl)", + }, + }, + + // run animation when group activates + // connected doesn't actually animate: + // { + // shape: "round", + // group: ["connected-start", "connected-end", "connected"], + // _permitAnimation: true, + // css: { + // animationName: "materialPhysicsButtonSelect", + // animationDuration: "0.3s", + // animationFillMode: "forwards", + // }, + // }, + { + shape: "square", + group: ["standard"], + _permitAnimation: true, + css: { + animationName: "materialPhysicsButtonSelect", + animationDuration: "0.3s", + animationFillMode: "forwards", + }, + }, + ], +}); diff --git a/packages/client/components/ui/components/design/CategoryButton.tsx b/packages/client/components/ui/components/design/CategoryButton.tsx new file mode 100644 index 00000000..6337ce53 --- /dev/null +++ b/packages/client/components/ui/components/design/CategoryButton.tsx @@ -0,0 +1,425 @@ +import { + ComponentProps, + For, + JSX, + Match, + Show, + Switch, + createSignal, + splitProps, +} from "solid-js"; + +import { cva } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import MdChevronRight from "@material-design-icons/svg/outlined/chevron_right.svg?component-solid"; +import MdContentCopy from "@material-design-icons/svg/outlined/content_copy.svg?component-solid"; +import MdKeyboardDown from "@material-design-icons/svg/outlined/keyboard_arrow_down.svg?component-solid"; +import MdOpenInNew from "@material-design-icons/svg/outlined/open_in_new.svg?component-solid"; + +import { OverflowingText, iconSize } from "../utils"; + +import { Ripple } from "./Ripple"; +import { typography } from "./Text"; + +/** + * Permissible actions + */ +type Action = + | "chevron" + | "collapse" + | "external" + | "edit" + | "copy" + | JSX.Element; + +export interface Props { + readonly icon?: JSX.Element | "blank"; + readonly children?: JSX.Element; + readonly description?: JSX.Element; + + readonly disabled?: boolean; + readonly onClick?: () => void; + readonly action?: Action | Action[]; + + readonly roundedIcon?: boolean; + + readonly variant?: "filled" | "tonal" | "tertiary"; +} + +/** + * Category Button + * + * @specification none + */ +export function CategoryButton(props: Props) { + return ( + + + + + {props.icon} + + + + + + + + + {props.children} + + + {props.description} + + + + {(action) => ( + + + + + + + + + + + + + + + + + + + + + + + )} + + + ); +} + +/** + * Base container for button + */ +const Base = styled("a", { + base: { + // for : + position: "relative", + + gap: "16px", + padding: "13px", + borderRadius: "var(--borderRadius-md)", + + userSelect: "none", + cursor: "pointer", + transition: "background-color 0.1s ease-in-out", + + display: "flex", + alignItems: "center", + flexDirection: "row", + + color: "var(--color)", + fill: "var(--color)", + }, + variants: { + variant: { + filled: { + background: "var(--md-sys-color-primary)", + "--color": "var(--md-sys-color-on-primary)", + }, + tonal: { + background: "var(--md-sys-color-secondary-container)", + "--color": "var(--md-sys-color-on-secondary-container)", + }, + tertiary: { + background: "var(--md-sys-color-tertiary-container)", + "--color": "var(--md-sys-color-on-tertiary-container)", + }, + }, + isLink: { + true: { + cursor: "pointer", + }, + false: { + cursor: "initial", + }, + }, + disabled: { + true: { + cursor: "not-allowed", + }, + }, + }, + defaultVariants: { + variant: "tonal", + }, +}); + +/** + * Title and description styles + */ +const Content = styled("div", { + base: { + display: "flex", + flexGrow: 1, + flexDirection: "column", + + fontWeight: 500, + fontSize: "14px", + gap: "2px", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis", + }, +}); + +/** + * Accented wrapper for the category button icons + */ +const IconWrapper = styled("div", { + base: { + fill: "var(--md-sys-color-on-surface)", + background: "var(--md-sys-color-surface-dim)", + + width: "36px", + height: "36px", + display: "flex", + flexShrink: 0, + alignItems: "center", + justifyContent: "center", + }, + variants: { + rounded: { + true: { + borderRadius: "var(--borderRadius-full)", + }, + false: { + borderRadius: "var(--borderRadius-md)", + }, + }, + }, + defaultVariants: { + rounded: true, + }, +}); + +/** + * Category button icon wrapper for the blank state + */ +const BlankIconWrapper = styled(IconWrapper, { + base: { + background: "transparent", + }, +}); + +/** + * Description shown below title + */ +const Description = styled("span", { + base: { + ...typography.raw({ class: "label" }), + + textWrap: "wrap", + + "& a:hover": { + textDecoration: "underline", + }, + }, +}); + +/** + * Container for action icons + */ +const Action = styled("div", { + base: { + width: "24px", + height: "24px", + flexShrink: 0, + + display: "grid", + placeItems: "center", + }, +}); + +/** + * Group a set of category buttons + */ +export const CategoryButtonGroup = styled("div", { + base: { + display: "flex", + flexDirection: "column", + gap: "var(--gap-xs)", + + borderRadius: "var(--borderRadius-xl)", + overflow: "hidden", + }, +}); + +CategoryButton.Group = CategoryButtonGroup; + +type CollapseProps = Omit< + ComponentProps, + "onClick" | "children" +> & { + children?: JSX.Element; + title?: JSX.Element; + + scrollable?: boolean; +}; + +/** + * Category button with collapsed children + */ +export function CategoryCollapse(props: CollapseProps) { + const [local, remote] = splitProps(props, ["action", "children"]); + + const [opened, setOpened] = createSignal(false); + + let details: HTMLDivElement | undefined; + let column: HTMLDivElement | undefined; + + /** + * Toggle the opened state and scroll to the beginning of contents + */ + const toggleOpened = () => { + const openedState = opened(); + + if (!openedState) { + column?.scroll({ top: 0 }); + } + + setOpened(!openedState); + }; + + /** + * Recalculate the column height for transition + */ + const updatedHeight = () => { + const calculatedHeight = opened() + ? Math.min(column?.scrollHeight || 0, 340) + : 0; + + return `${calculatedHeight}px`; + }; + + return ( +
+ + void 0} + > + {props.title} + + + + {props.children} +
+ } + > + +
+ {props.children} +
+
+
+ + ); +} + +CategoryButton.Collapse = CategoryCollapse; + +/** + * Column with inner content + */ +const innerColumn = cva({ + base: { + display: "flex", + flexDirection: "column", + gap: "var(--gap-xs)", + + borderRadius: "var(--borderRadius-md)", + transition: "0.3s", + + scrollbarWidth: "none", + "&::-webkit-scrollbar": { + display: "none", + }, + }, + variants: { + static: { + true: { + overflow: "hidden", + }, + }, + }, +}); + +/** + * Parent base component + */ +const Details = styled("div", { + base: { + "&:not(.open) .InnerColumn": { + opacity: 0, + pointerEvents: "none", + }, + + /* add transition to the icon */ + "& summary div:last-child svg": { + transition: "0.3s", + }, + + /* rotate chevron when it is open */ + "&.open summary div:last-child svg": { + transform: "rotate(180deg)", + }, + + /* add additional padding between top button and children when it is open */ + "&.open summary": { + marginBottom: "var(--gap-xs)", + }, + + /* hide the default details component marker */ + "& summary": { + transition: "0.3s", + listStyle: "none", + }, + + "& summary::marker, summary::-webkit-details-marker": { + display: "none", + }, + + /* connect elements vertically */ + // "& > :not(summary) .CategoryButton": { + // /* and set child backgrounds */ + // background: "var(--unset-bg)", + // }, + }, +}); diff --git a/packages/client/components/ui/components/design/Checkbox.tsx b/packages/client/components/ui/components/design/Checkbox.tsx new file mode 100644 index 00000000..7367e02e --- /dev/null +++ b/packages/client/components/ui/components/design/Checkbox.tsx @@ -0,0 +1,24 @@ +import type { JSX } from "solid-js"; + +import "mdui/components/checkbox.js"; + +type Props = { + children?: JSX.Element; + required?: boolean; + name?: string; + checked?: boolean; + disabled?: boolean; + indeterminate?: boolean; + class?: string; + onChange?: (event: { currentTarget: { checked: boolean } }) => void; +}; + +/** + * Checkboxes let users select one or more items from a list, or turn an item on or off + * + * @library MDUI + * @specification https://m3.material.io/components/checkbox + */ +export function Checkbox(props: Props) { + return ; +} diff --git a/packages/client/components/ui/components/design/DataTable.tsx b/packages/client/components/ui/components/design/DataTable.tsx new file mode 100644 index 00000000..0bbf5e54 --- /dev/null +++ b/packages/client/components/ui/components/design/DataTable.tsx @@ -0,0 +1,188 @@ +import { + For, + JSXElement, + Show, + createEffect, + createSignal, + on, +} from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { styled } from "styled-system/jsx"; + +import MdChevronLeft from "@material-design-icons/svg/outlined/chevron_left.svg?component-solid"; +import MdChevronRight from "@material-design-icons/svg/outlined/chevron_right.svg?component-solid"; +import MdFirstPage from "@material-design-icons/svg/outlined/first_page.svg?component-solid"; +import MdLastPage from "@material-design-icons/svg/outlined/last_page.svg?component-solid"; + +import { Row } from "../layout"; + +import { Button } from "./Button"; + +interface Props { + itemCount?: number; + header?: JSXElement; + columns: JSXElement[]; + children: (page: number, itemsPerPage: number) => JSXElement; +} + +/** + * Data tables display sets of data across rows and columns + * + * This component is not present in Material 3 thus has been inspired by the following implementations: + * - https://m2.material.io/design/components/data-tables.html + * - https://material-web-additions.maicol07.it/components/data-table/ + */ +export function DataTable(props: Props) { + const [page, setPage] = createSignal(0); + const [itemsPerPage, setItemsPerPage] = createSignal(0); + + createEffect( + on( + () => props.itemCount, + (itemCount) => + setItemsPerPage((count) => (count ? count : itemCount ? 12 : 0)), + ), + ); + + const lastPage = () => + props.itemCount + ? Math.max(0, Math.floor(props.itemCount / itemsPerPage() - 1)) + : 0; + + return ( + + + + + +
{props.header}
+ + + + {(header) => {header}} + + + + {props.children(page(), itemsPerPage())} + + + + + {/* + Rows per page: + + setItemsPerPage(parseInt(e.currentTarget.value)) + } + > + 12 + 25 + 50 + 100 + + */} + + + {page() * itemsPerPage() + 1}- + {Math.min( + props.itemCount!, + page() * itemsPerPage() + itemsPerPage(), + )}{" "} + of {props.itemCount} + + + + + + + + + + + + + +
+
+ ); +} + +const Container = styled("div", { + base: { + width: "100%", + overflowX: "auto", + borderRadius: "var(--borderRadius-md)", + border: "1px solid var(--md-sys-color-outline-variant)", + }, +}); + +const Table = styled("table", { + base: { + width: "100%", + // margin: "var(--gap-md)", + }, +}); + +const Header = styled("td", { + base: { + padding: "var(--gap-lg)", + }, +}); + +const Head = styled("thead", { + base: { + color: "var(--md-sys-color-on-surface-variant)", + }, +}); + +const TableRow = styled("tr", { + base: { + borderBlock: "1px solid var(--md-sys-color-outline-variant)", + }, +}); + +const Cell = styled("td", { + base: { + padding: "var(--gap-lg)", + }, +}); + +const Pagination = styled("div", { + base: { + display: "flex", + alignItems: "center", + gap: "32px", + justifyContent: "end", + }, +}); + +DataTable.Row = TableRow; +DataTable.Cell = Cell; diff --git a/packages/client/components/ui/components/design/Dialog.tsx b/packages/client/components/ui/components/design/Dialog.tsx new file mode 100644 index 00000000..20f5a192 --- /dev/null +++ b/packages/client/components/ui/components/design/Dialog.tsx @@ -0,0 +1,231 @@ +import type { JSX } from "solid-js"; +import { For, Show } from "solid-js"; +import { Portal } from "solid-js/web"; +import { Motion, Presence } from "solid-motionone"; + +import { styled } from "styled-system/jsx"; + +import { Button } from "./Button"; +import { typography } from "./Text"; + +export interface DialogProps { + show: boolean; + onClose: () => void; +} + +export interface DialogAction { + text: JSX.Element; + onClick?: () => void | Promise | true | false; + isDisabled?: boolean; +} + +type Props = DialogProps & { + icon?: JSX.Element; + title?: JSX.Element; + children: JSX.Element; + actions?: DialogAction[]; + isDisabled?: boolean; + + scrimBackground?: string; + + minWidth?: number; + padding?: number; +}; + +/** + * Dialogs provide important prompts in a user flow + * + * @specification https://m3.material.io/components/dialogs + */ +export function Dialog(props: Props) { + return ( + + + + + + e.stopPropagation()} + > + + {props.icon} + + + + {props.title} + + + {props.children} + + + + {(action) => ( + + )} + + + + + + + + + + ); +} + +/** + * Full-screen scrim shown below dialogs + * + * @specification https://m3.material.io/components/dialogs + */ +Dialog.Scrim = styled("div", { + base: { + top: 0, + left: 0, + right: 0, + bottom: 0, + position: "fixed", + zIndex: "100", + + maxHeight: "100%", + + display: "grid", + userSelect: "none", + placeItems: "center", + + pointerEvents: "all", + + animationName: "scrimFadeIn", + animationDuration: "0.1s", + animationFillMode: "forwards", + transition: "var(--transitions-medium) all", + }, + variants: { + show: { + false: { + animationName: "unset", + pointerEvents: "none", + background: "transparent", + }, + }, + padding: { + true: { + padding: "80px", + }, + }, + overflow: { + true: { + overflowY: "auto", + }, + }, + dark: { + true: { + "--background": "rgba(0, 0, 0, 0.9)", + }, + false: { + "--background": "rgba(0, 0, 0, 0.6)", + }, + }, + }, + defaultVariants: { + show: true, + padding: true, + overflow: true, + dark: false, + }, +}); + +const Container = styled("div", { + base: { + padding: "24px", + minWidth: "280px", + maxWidth: "560px", + borderRadius: "28px", + + display: "flex", + flexDirection: "column", + + color: "var(--md-sys-color-on-surface)", + background: "var(--md-sys-color-surface-container-high)", + }, +}); + +const Icon = styled("div", { + base: { + alignSelf: "center", + marginBottom: "16px", + fill: "var(--md-sys-color-on-surface)", + }, +}); + +const Title = styled("span", { + base: { + ...typography.raw({ class: "headline", size: "small" }), + marginBlockEnd: "16px", + }, + variants: { + withIcon: { + true: { + textAlign: "center", + }, + }, + }, + defaultVariants: { + withIcon: false, + }, +}); + +const Content = styled("div", { + base: { + color: "var(--md-sys-color-on-surface-variant)", + }, +}); + +const Actions = styled("div", { + base: { + gap: "8px", + display: "flex", + justifyContent: "end", + marginBlockStart: "24px", + }, +}); diff --git a/packages/client/components/ui/components/design/IconButton.tsx b/packages/client/components/ui/components/design/IconButton.tsx new file mode 100644 index 00000000..ae8953dc --- /dev/null +++ b/packages/client/components/ui/components/design/IconButton.tsx @@ -0,0 +1,308 @@ +import { Show, splitProps } from "solid-js"; +import { JSX } from "solid-js/jsx-runtime"; + +import { AriaButtonProps, createButton } from "@solid-aria/button"; +import { cva } from "styled-system/css/cva"; + +import { Ripple } from "./Ripple"; +import { typography } from "./Text"; + +type Props = Omit< + Parameters[0] & + AriaButtonProps & + JSX.DirectiveAttributes & + Pick< + JSX.ButtonHTMLAttributes, + "role" | "tabIndex" | "aria-selected" + >, + "onClick" | "disabled" +>; + +/** + * Icon buttons help people take minor actions with one tap + * + * @specification https://m3.material.io/components/icon-buttons + */ +export function IconButton(props: Props) { + const [passthrough, propsRest] = splitProps(props, [ + "aria-selected", + "tabIndex", + "role", + ]); + + const [style, rest] = splitProps(propsRest, [ + "size", + "shape", + "width", + "variant", + "_compositionSendMessage", + ]); + let ref: HTMLButtonElement | undefined; + + const { buttonProps } = createButton(rest, () => ref); + return ( + + ); +} + +const iconButton2 = cva({ + base: { + ...typography.raw(), + + // for : + position: "relative", + + // ensure it's always 1:1 + aspectRatio: "1/1", + + flexShrink: 0, + display: "flex", + alignItems: "center", + justifyContent: "center", + + fontWeight: 500, + fontFamily: "inherit", + + cursor: "pointer", + border: "none", + transition: "var(--transitions-fast) all", + + color: "var(--colour)", + fill: "var(--colour)", + }, + variants: { + variant: { + filled: { + background: "var(--md-sys-color-primary)", + "--colour": "var(--md-sys-color-on-primary)", + }, + tonal: { + background: "var(--md-sys-color-secondary-container)", + "--colour": "var(--md-sys-color-on-secondary-container)", + }, + outlined: { + border: "1px solid var(--md-sys-color-outline-variant)", + "--colour": "var(--md-sys-color-on-surface-variant)", + }, + standard: { + "--colour": "var(--md-sys-color-on-surface-variant)", + }, + + _header: { + "--colour": "white", + }, + }, + size: { + xs: { + height: "32px", + }, + sm: { + height: "40px", + }, + md: { + height: "56px", + }, + lg: { + height: "96px", + }, + xl: { + height: "136px", + }, + }, + shape: { + round: { + borderRadius: "var(--borderRadius-full)", + }, + square: {}, + }, + width: { + narrow: {}, + default: {}, + wide: {}, + }, + /** + * Whether the button is disabled + */ + disabled: { + true: { + cursor: "not-allowed", + }, + false: {}, + }, + _compositionSendMessage: { + true: { + width: "48px", + aspectRatio: "unset", + height: "100% !important", + borderEndRadius: "var(--borderRadius-xl)", + }, + }, + }, + defaultVariants: { + variant: "standard", + width: "default", + shape: "round", + size: "sm", + disabled: false, + _compositionSendMessage: false, + }, + compoundVariants: [ + // disabled styles + { + variant: ["filled", "tonal", "outlined"], + disabled: true, + css: { + // todo: check these are correct + "--color": + "color-mix(in srgb, 38% var(--md-sys-color-on-surface), transparent)", + background: + "color-mix(in srgb, 10% var(--md-sys-color-on-surface), transparent)", + }, + }, + { + variant: "standard", + disabled: true, + css: { + // todo: check these are correct + "--color": + "color-mix(in srgb, 38% var(--md-sys-color-on-surface), transparent)", + background: + "color-mix(in srgb, 10% var(--md-sys-color-on-surface), transparent)", + }, + }, + + { + size: ["xs", "sm"], + width: "narrow", + css: { + paddingInline: "4px", + }, + }, + { + size: "xs", + width: "default", + css: { + paddingInline: "6px", + }, + }, + { + size: "xs", + width: "wide", + css: { + paddingInline: "10px", + }, + }, + { + size: "sm", + width: "default", + css: { + paddingInline: "8px", + }, + }, + { + size: "sm", + width: "wide", + css: { + paddingInline: "14px", + }, + }, + { + size: "md", + width: "narrow", + css: { + paddingInline: "12px", + }, + }, + { + size: "md", + width: "default", + css: { + paddingInline: "16px", + }, + }, + { + size: "md", + width: "wide", + css: { + paddingInline: "24px", + }, + }, + { + size: "lg", + width: "narrow", + css: { + paddingInline: "16px", + }, + }, + { + size: "lg", + width: "default", + css: { + paddingInline: "32px", + }, + }, + { + size: "lg", + width: "wide", + css: { + paddingInline: "48px", + }, + }, + { + size: "xl", + width: "narrow", + css: { + paddingInline: "32px", + }, + }, + { + size: "xl", + width: "default", + css: { + paddingInline: "48px", + }, + }, + { + size: "xl", + width: "wide", + css: { + paddingInline: "72px", + }, + }, + { + size: ["xs", "sm"], + shape: "square", + css: { + borderRadius: "var(--borderRadius-md)", + }, + }, + { + size: "md", + shape: "square", + css: { + borderRadius: "var(--borderRadius-lg)", + }, + }, + { + size: ["lg", "xl"], + shape: "square", + css: { + borderRadius: "var(--borderRadius-xl)", + }, + }, + ], +}); diff --git a/packages/client/components/ui/components/material/List.tsx b/packages/client/components/ui/components/design/List.tsx similarity index 66% rename from packages/client/components/ui/components/material/List.tsx rename to packages/client/components/ui/components/design/List.tsx index 60f7ad0f..5aaec54b 100644 --- a/packages/client/components/ui/components/material/List.tsx +++ b/packages/client/components/ui/components/design/List.tsx @@ -5,11 +5,20 @@ import "mdui/components/list-subheader.js"; import "mdui/components/list.js"; import { cva } from "styled-system/css"; +/** + * Lists are continuous, vertical indexes of text and images + * + * @library MDUI + * @specification https://m3.material.io/components/lists + */ export function List(props: { children: JSXElement }) { return {props.children}; } -export function ListSubheader(props: { children: JSXElement }) { +/** + * A subheader used in a list + */ +function ListSubheader(props: { children: JSXElement }) { return ( {props.children} @@ -17,13 +26,18 @@ export function ListSubheader(props: { children: JSXElement }) { ); } +List.Subheader = ListSubheader; + const subheader = cva({ base: { paddingInline: "var(--gap-lg)", }, }); -export function ListItem(props: { +/** + * An item that appears in a list + */ +function ListItem(props: { children: JSXElement; rounded?: boolean; disabled?: boolean; @@ -32,6 +46,8 @@ export function ListItem(props: { return ; } +List.Item = ListItem; + const listitem = cva({ base: { minHeight: 0, diff --git a/packages/client/components/ui/components/design/LoadingProgress.tsx b/packages/client/components/ui/components/design/LoadingProgress.tsx new file mode 100644 index 00000000..43374cab --- /dev/null +++ b/packages/client/components/ui/components/design/LoadingProgress.tsx @@ -0,0 +1,11 @@ +import "mdui/components/circular-progress.js"; + +/** + * Progress indicators express an unspecified wait time or display the duration of a process + * + * @library MDUI + * @specification https://m3.material.io/components/progress-indicators + */ +export function CircularProgress() { + return ; +} diff --git a/packages/client/components/ui/components/design/Menu.tsx b/packages/client/components/ui/components/design/Menu.tsx new file mode 100644 index 00000000..430cd776 --- /dev/null +++ b/packages/client/components/ui/components/design/Menu.tsx @@ -0,0 +1,17 @@ +import type { JSX } from "solid-js"; + +import "mdui/components/menu-item.js"; + +/** + * Single item that appears in a menu + * + * @library MDUI + * @specification https://m3.material.io/components/menus + */ +export function MenuItem( + props: JSX.HTMLAttributes & { + value?: string; + }, +) { + return ; +} diff --git a/packages/client/components/ui/components/design/atoms/inputs/MenuButton.tsx b/packages/client/components/ui/components/design/MenuButton.tsx similarity index 67% rename from packages/client/components/ui/components/design/atoms/inputs/MenuButton.tsx rename to packages/client/components/ui/components/design/MenuButton.tsx index 78efbfa1..29d18a87 100644 --- a/packages/client/components/ui/components/design/atoms/inputs/MenuButton.tsx +++ b/packages/client/components/ui/components/design/MenuButton.tsx @@ -3,11 +3,8 @@ import { JSX, Show, splitProps } from "solid-js"; import { cva } from "styled-system/css"; import { styled } from "styled-system/jsx"; -import { Ripple } from "@revolt/ui/components/material"; -import { hoverStyles } from "@revolt/ui/directives"; - -import { typography } from "../display"; -import { Unreads } from "../indicators"; +import { Ripple } from "./Ripple"; +import { Unreads } from "./Unreads"; export type Props = { /** @@ -43,6 +40,54 @@ export type Props = { readonly actions?: JSX.Element; }; +/** + * Button intended for sidebar contexts + */ +export function MenuButton(props: Props & JSX.HTMLAttributes) { + const [local, other] = splitProps(props, [ + "attention", + "size", + "icon", + "children", + "alert", + "actions", + ]); + + return ( + // TODO: port to panda-css to merge down components +
+ + {/* */} + {local.icon} + {local.children} + + + + + + {local.actions && ( + e.stopPropagation()}> + {local.actions} + + )} + {/* */} +
+ ); +} + /** * Top-level container */ @@ -53,18 +98,28 @@ const base = cva({ fontWeight: 500, fontSize: "15px", userSelect: "none", + cursor: "pointer", // for : position: "relative", display: "flex", + alignItems: "center", margin: "0 var(--gap-md)", padding: "0 var(--gap-md)", borderRadius: "var(--borderRadius-xl)", + color: "var(--color)", + fill: "var(--color)", + "& > svg": { alignSelf: "center", }, + + // swap `.hover-hide` elements w/ `.hover-show` elements on hover + "&:hover .hover-hide, &:not(:hover) .hover-show": { + display: "none", + }, }, variants: { size: { @@ -82,35 +137,30 @@ const base = cva({ }, attention: { normal: { - color: "var(--colours-component-menubtn-default-foreground)", - background: "var(--colours-component-menubtn-default-background)", + "--color": "var(--md-sys-color-outline)", + background: "transparent", }, muted: { - color: "var(--colours-component-menubtn-muted-foreground)", - background: "var(--colours-component-menubtn-muted-background)", + "--color": "var(--md-sys-color-outline-variant)", + background: "transparent", + + "& img": { + opacity: "0.3", + }, }, active: { - color: "var(--colours-component-menubtn-selected-foreground)", - background: "var(--colours-component-menubtn-default-background)", + "--color": "var(--md-sys-color-on-surface)", + background: "transparent", }, selected: { - color: "var(--colours-component-menubtn-selected-foreground)", - background: "var(--colours-component-menubtn-selected-background)", - }, - }, - hasActions: { - no: {}, - yes: { - "&:hover :last-child": { - display: "flex", - }, + "--color": "var(--md-sys-color-on-primary-container)", + background: "var(--md-sys-color-primary-container)", }, }, }, defaultVariants: { size: "normal", attention: "normal", - hasActions: "no", }, }); @@ -131,54 +181,9 @@ const Actions = styled("div", { base: { alignSelf: "center", - display: "none", + display: "flex", alignItems: "center", flexDirection: "row", gap: "var(--gap-sm)", }, }); - -/** - * Menu button element - */ -export function MenuButton(props: Props & JSX.HTMLAttributes) { - const [local, other] = splitProps(props, [ - "attention", - "size", - "icon", - "children", - "alert", - "actions", - ]); - - return ( - // TODO: port to panda-css to merge down components -
- - {/* */} - {local.icon} - {local.children} - - - - {local.actions && ( - e.stopPropagation()}>{local.actions} - )} - {/* */} -
- ); -} diff --git a/packages/client/components/ui/components/design/Radio.tsx b/packages/client/components/ui/components/design/Radio.tsx new file mode 100644 index 00000000..074fb1aa --- /dev/null +++ b/packages/client/components/ui/components/design/Radio.tsx @@ -0,0 +1,37 @@ +import { JSX } from "solid-js"; + +import "mdui/components/radio-group.js"; +import "mdui/components/radio.js"; + +interface GroupProps { + value?: string; + onChange?: (event: { currentTarget: { value: string } }) => void; + required?: boolean; + disabled?: boolean; + children?: JSX.Element; +} + +interface Props { + value?: string; + children?: JSX.Element; +} + +/** + * Radio buttons let people select one option from a set of options + * + * @library MDUI + * @specification https://m3.material.io/components/radio + */ +export function Radio2(props: GroupProps) { + return ; +} + +/** + * Radio buttons let people select one option from a set of options + * + * @library MDUI + * @specification https://m3.material.io/components/radio + */ +Radio2.Option = function Option(props: Props) { + return ; +}; diff --git a/packages/client/components/ui/components/design/Ripple.tsx b/packages/client/components/ui/components/design/Ripple.tsx new file mode 100644 index 00000000..15bc5946 --- /dev/null +++ b/packages/client/components/ui/components/design/Ripple.tsx @@ -0,0 +1,24 @@ +import "@material/web/ripple/ripple.js"; + +interface Props { + disabled?: boolean; +} + +/** + * Ripple overlay provides hover and pressed states for interactive elements + * + * You should ensure the parent element has relative positioning: + * + * ```tsx + *
+ * + * .. your content + *
+ * ``` + * + * @library Material Web Components + * @specification https://m3.material.io/foundations/interaction/states/applying-states + */ +export function Ripple(props: Props) { + return ; +} diff --git a/packages/client/components/ui/components/design/Slider.tsx b/packages/client/components/ui/components/design/Slider.tsx new file mode 100644 index 00000000..26ca13dc --- /dev/null +++ b/packages/client/components/ui/components/design/Slider.tsx @@ -0,0 +1,41 @@ +import { type JSX, createEffect, createSignal, on, splitProps } from "solid-js"; + +import "mdui/components/slider.js"; + +type Props = Omit< + JSX.HTMLAttributes, + "onChange" | "onInput" +> & { + min?: number; + max?: number; + step?: number; + value: number; + tickmarks?: boolean; + labelFormatter?: (value: number) => string; + onChange?: (event: { currentTarget: { value: number } }) => void; + onInput?: (event: { currentTarget: { value: number } }) => void; +}; + +/** + * Sliders let users make selections from a range of values + * + * @library MDUI + * @specification https://m3.material.io/components/sliders + */ +export function Slider(props: Props) { + const [ref, setRef] = createSignal<{ + labelFormatter?: (value: number) => string; + }>(); + + const [local, rest] = splitProps(props, ["labelFormatter"]); + + createEffect( + on(ref, (ref) => { + if (ref && local.labelFormatter) { + ref.labelFormatter = local.labelFormatter; + } + }), + ); + + return ; +} diff --git a/packages/client/components/ui/components/design/Switch.tsx b/packages/client/components/ui/components/design/Switch.tsx new file mode 100644 index 00000000..40ee1326 --- /dev/null +++ b/packages/client/components/ui/components/design/Switch.tsx @@ -0,0 +1,147 @@ +import { BiRegularCheck, BiRegularX } from "solid-icons/bi"; + +import { styled } from "styled-system/jsx"; + +import { Ripple } from "./Ripple"; + +export const Switch = { + Override: OverrideSwitch, +}; + +type State = "allow" | "neutral" | "deny"; + +interface Props { + readonly value: State; + readonly disabled?: boolean; + readonly onChange: (state: State) => void; +} + +/** + * Override Switch + */ +function OverrideSwitch(props: Props) { + return ( + + !props.disabled && props.onChange("allow")} + role="radio" + > + + + + !props.disabled && props.onChange("neutral")} + role="radio" + > + + + + + + !props.disabled && props.onChange("deny")} + role="radio" + > + + + + + ); +} + +const SwitchContainer = styled("div", { + base: { + flexShrink: 0, + width: "fit-content", + // height: 'fit-content', + + display: "flex", + margin: "4px 0", + overflow: "hidden", + borderRadius: "var(--borderRadius-md)", + + // "&[aria-disabled]": { + // pointerEvents: "none", + // opacity: 0.6, + // }, + + transition: "var(--transitions-fast) all", + background: "var(--md-sys-color-primary-container)", + }, +}); + +const Override = styled("div", { + base: { + // for : + position: "relative", + + padding: "4px", + display: "flex", + cursor: "pointer", + alignItems: "center", + transition: "var(--transitions-fast) all", + + "&:hover": { + // filter: "brightness(0.8)", + }, + + "& svg": { + stroke: "5px solid red", + }, + }, + variants: { + selected: { + allow: {}, + neutral: {}, + deny: {}, + }, + type: { + allow: {}, + neutral: {}, + deny: {}, + }, + }, + compoundVariants: [ + { + type: "allow", + selected: "allow", + css: { + // TODO + color: "green", + background: "green", + }, + }, + { + type: "neutral", + selected: "neutral", + css: { + fill: "var(--md-sys-color-inverse-on-surface)", + background: "var(--md-sys-color-inverse-surface)", + }, + }, + { + type: "deny", + selected: "deny", + css: { + // TODO + color: "red", + background: "red", + }, + }, + ], +}); diff --git a/packages/client/components/ui/components/design/atoms/display/Typography.tsx b/packages/client/components/ui/components/design/Text.tsx similarity index 88% rename from packages/client/components/ui/components/design/atoms/display/Typography.tsx rename to packages/client/components/ui/components/design/Text.tsx index 36169316..74472f7f 100644 --- a/packages/client/components/ui/components/design/atoms/display/Typography.tsx +++ b/packages/client/components/ui/components/design/Text.tsx @@ -3,27 +3,13 @@ import type { JSX } from "solid-js/jsx-runtime"; import { cva } from "styled-system/css"; -type TypographyProps = { - /** - * Which variant to use - */ - readonly variant: any; - // eslint-disable-next-line @typescript-eslint/no-explicit-any -} & JSX.HTMLAttributes; - -/** - * Typography component for displaying text around the app - * @param props Text rendering options - */ -export const Typography = (props: TypographyProps) => { - return Replace me! <Typograhy/> removed!; -}; - /** * Simple span Text wrapper to apply Typography styles + * + * @specification https://m3.material.io/styles/typography/type-scale-tokens */ export function Text( - props: Parameters[0] & { children: JSX.Element } + props: Parameters[0] & { children: JSX.Element }, ) { const [local, remote] = splitProps(props, ["children"]); return {local.children}; @@ -31,6 +17,8 @@ export function Text( /** * Apply styles for chosen typography + * + * @specification https://m3.material.io/styles/typography/type-scale-tokens */ export const typography = cva({ variants: { @@ -43,7 +31,7 @@ export const typography = cva({ _messages: { fontWeight: 400, - fontSize: "14px", + fontSize: "var(--message-size)", }, _status: { @@ -128,7 +116,7 @@ export const typography = cva({ lineHeight: "1.75rem", fontSize: "1.375rem", letterSpacing: "0", - fontWeight: 500, + fontWeight: 550, }, }, { @@ -138,7 +126,7 @@ export const typography = cva({ lineHeight: "1.5rem", fontSize: "1rem", letterSpacing: "0.009375rem", - fontWeight: 500, + fontWeight: 550, }, }, { @@ -148,7 +136,7 @@ export const typography = cva({ lineHeight: "1.25rem", fontSize: "0.875rem", letterSpacing: "0.00625rem", - fontWeight: 500, + fontWeight: 550, }, }, { diff --git a/packages/client/components/ui/components/design/TextEditor.tsx b/packages/client/components/ui/components/design/TextEditor.tsx new file mode 100644 index 00000000..7eac4f91 --- /dev/null +++ b/packages/client/components/ui/components/design/TextEditor.tsx @@ -0,0 +1,1053 @@ +import { useFloating } from "solid-floating-ui"; +import { + Accessor, + For, + Match, + Show, + Switch, + createEffect, + createMemo, + createSignal, + on, + onCleanup, + onMount, +} from "solid-js"; +import { Portal } from "solid-js/web"; + +import { AutoSizer } from "@dschz/solid-auto-sizer"; +import { autoUpdate, flip, shift } from "@floating-ui/dom"; +import autocomplete, { + ActionKind, + closeAutocomplete, +} from "prosemirror-autocomplete"; +import codemark from "prosemirror-codemark"; +import codeMirrorBlockPlugin, { + codeBlockKeymap, + defaultSettings, + languageLoaders, + legacyLanguageLoaders, +} from "prosemirror-codemirror-block"; +import { baseKeymap, toggleMark } from "prosemirror-commands"; +import { history, redo, undo } from "prosemirror-history"; +import { InputRule, inputRules } from "prosemirror-inputrules"; +import { keymap } from "prosemirror-keymap"; +import { Node } from "prosemirror-model"; +import { EditorState, EditorStateConfig, Selection } from "prosemirror-state"; +import { EditorView } from "prosemirror-view"; +import { Channel, ServerMember, ServerRole, User } from "upryzing.js"; +import { css, cva } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { useClient } from "@revolt/client"; +import { CustomEmoji, UnicodeEmoji } from "@revolt/markdown/emoji"; +import { unicodeEmojiUrl } from "@revolt/markdown/emoji/UnicodeEmoji"; +import { + blankModel, + markdownFromProseMirrorModel, + markdownToProseMirrorModel, + schema, +} from "@revolt/markdown/prosemirror"; +import { useState } from "@revolt/state"; + +import emojiMapping from "../../emojiMapping.json"; +import { AutoCompleteSearchSpace } from "../utils/autoComplete"; + +import { Avatar } from "./Avatar"; +import { typography } from "./Text"; + +const EMOJI_KEYS = Object.keys(emojiMapping).sort(); +const MAPPED_EMOJI_KEYS = EMOJI_KEYS.map((id) => ({ id, name: id })); + +interface Props { + /** + * Auto focus the input on creation + */ + autoFocus?: boolean; + + /** + * Placeholder to show when no text is shown + */ + placeholder?: string; + + /** + * Initial value to show in the text box + */ + initialValue?: readonly [string]; + + /** + * Signal for sending a node replacement or focus request to the editor + */ + nodeReplacement?: Node | readonly ["_focus"]; + + /** + * Event is fired when the text content changes + * @param value Text value + */ + onChange: (value: string) => void; + + /** + * Event is fired when user submits (Enter) content + */ + onComplete?: () => void; + + /** + * Event is fired when any keys are input + */ + onTyping?: () => void; + + /** + * Event is fired when 'previous context' is requested + * i.e. edit the last message (given current is empty) + */ + onPreviousContext?: () => void; + + autoCompleteSearchSpace?: AutoCompleteSearchSpace; +} + +interface AutoCompleteView { + element: HTMLDivElement; + // query: string; + selected: number; + result: + | { + type: "emoji"; + matches: MatchEmoji[]; + } + | { + type: "user"; + matches: MatchUser[]; + } + | { + type: "role"; + matches: ServerRole[]; + } + | { + type: "channel"; + matches: Channel[]; + }; +} + +type MatchEmoji = + | { + type: "unicode"; + codepoint: string; + name: string; + } + | { + type: "custom"; + id: string; + name: string; + }; + +type MatchUser = User | ServerMember; + +/** + * Rich text editor powered by ProseMirror + * + * Will fill the width of the parent, e.g. wrap the editor: + * ```ts + *
+ * + *
+ * ``` + */ +export function TextEditor(props: Props) { + const applicationState = useState(); + + const proseMirror = document.createElement("div"); + proseMirror.style.width = "0px"; // initial width + + // don't show the editor to start (messes with auto sizing) + proseMirror.style.height = "0px"; + proseMirror.style.display = "none"; + + const placeholder = document.createElement("span"); + proseMirror.prepend(placeholder); + + const [value, setValue] = createSignal(props.initialValue?.[0] ?? ""); + const [focused, setFocused] = createSignal(false); + + createEffect(() => (placeholder.innerText = props.placeholder ?? "")); + + createEffect( + () => (placeholder.style.display = value().length ? "none" : "block"), + ); + + proseMirror.className = css({ + flexGrow: 1, + alignItems: "center", + + cursor: "text", + + "& > .ProseMirror": { + width: "100%", + // todo: consider alternative, nicer looking indication that it's selected + outline: "none", + + fontWeight: 400, + fontSize: "var(--message-size)", + }, + + // copied from elements.ts: + "& h1": { + fontSize: "2em", + fontWeight: 600, + }, + "& h2": { + fontSize: "1.6em", + fontWeight: 600, + }, + "& h3": { + fontSize: "1.4em", + fontWeight: 600, + }, + "& h4": { + fontSize: "1.2em", + fontWeight: 600, + }, + "& h5": { + fontSize: "1em", + fontWeight: 600, + }, + "& h6": { + fontSize: "0.8em", + fontWeight: 600, + }, + "& ul": { + listStylePosition: "outside", + paddingLeft: "1.5em", + + "& li": { + listStyleType: "disc", + }, + + "& li li": { + listStyleType: "circle", + }, + }, + "& ol": { + listStylePosition: "outside", + paddingLeft: "1.5em", + + listStyleType: "decimal", + }, + + // anchors.ts + "& a": { + color: "var(--md-sys-color-primary) !important", + }, + }); + + placeholder.className = css({ + ...typography.raw({ class: "_messages" }), + color: "var(--md-color-outline)", + position: "absolute", + whiteSpace: "nowrap", + userSelect: "none", + opacity: 0.5, + }); + + // initialise auto complete + const client = useClient(); + const [autoComplete, setAutoComplete] = createSignal(); + + // todo: (AC1.) define what items will be searched through + const searchSpace = createMemo(() => { + return { + emoji: [MAPPED_EMOJI_KEYS, client().emojis.toList()].flat(), + users: + props.autoCompleteSearchSpace?.members ?? + props.autoCompleteSearchSpace?.users ?? + client().users.toList(), + roles: props.autoCompleteSearchSpace?.roles ?? [], + channels: + props.autoCompleteSearchSpace?.channels ?? client().channels.toList(), + }; + }); + + // todo: (AC2.) define search mechanism for the new trigger + function updateAutoComplete(trigger: string, query?: string) { + query = query?.toLowerCase(); + + if (query) { + // find the autocomplete element + const element = document.getElementsByClassName( + "autocomplete", + )[0] as HTMLDivElement; + + if (!element) return setAutoComplete(undefined); + + // perform query + const space = searchSpace(); + let result: AutoCompleteView["result"] | null = null; + switch (trigger) { + case "emoji": { + const matches: MatchEmoji[] = []; + const emoji = space.emoji.sort((a, b) => + a.name.localeCompare(b.name), + ); + + for (let i = 0; i < emoji.length && matches.length < 10; i++) { + const emote = emoji[i]; + if (emote.name.includes(query)) { + const id = emote.id; + matches.push( + id.length === 26 + ? { + type: "custom", + id, + name: emote.name, + } + : { + type: "unicode", + codepoint: emojiMapping[id as keyof typeof emojiMapping], + name: emote.name, + }, + ); + } + } + + result = { + type: "emoji", + matches, + }; + + break; + } + case "user": { + const matches: MatchUser[] = []; + const users = space.users.sort((a, b) => + a.displayName!.localeCompare(b.displayName!), + ); + + let i = -1; + while (matches.length < 10 && i + 1 < users.length) { + const user = users[++i]; + if ( + user.displayName!.toLowerCase().includes(query) || + (user instanceof ServerMember && + user.user?.username.toLowerCase().includes(query)) + ) { + matches.push(users[i]); + } + } + + result = { + type: "user", + matches, + }; + + break; + } + case "role": { + const matches: ServerRole[] = []; + const roles = space.roles.sort((a, b) => + a.name.localeCompare(b.name), + ); + + let i = -1; + while (matches.length < 10 && i + 1 < roles.length) { + const role = roles[++i]; + if (role.name.toLowerCase().includes(query)) { + matches.push(roles[i]); + } + } + + result = { + type: "role", + matches, + }; + + break; + } + case "channel": { + const matches: Channel[] = []; + const channels = space.channels.sort((a, b) => + a.name.localeCompare(b.name), + ); + + let i = -1; + while (matches.length < 10 && i + 1 < channels.length) { + const role = channels[++i]; + if (role.name.toLowerCase().includes(query)) { + matches.push(channels[i]); + } + } + + result = { + type: "channel", + matches, + }; + + break; + } + } + + if (result?.matches.length) { + setAutoComplete((ac) => ({ + element, + // query, + result, + + // ensure selected is within range + selected: ac?.selected ? ac.selected % result.matches.length : 0, + })); + + return; + } + } + + setAutoComplete(undefined); + } + + // eslint-disable-next-line solid/reactivity + const autoCompletePlugin = props.autoCompleteSearchSpace + ? // (AC3.) define the triggers + autocomplete({ + triggers: [ + { name: "channel", trigger: "#" }, + { name: "user", trigger: "@" }, + { name: "role", trigger: "%" }, + { name: "emoji", trigger: ":" }, + ], + reducer(action) { + const name = action.type?.name; + switch (action.kind) { + case ActionKind.open: + updateAutoComplete(name!, action.filter); + return true; + case ActionKind.close: + updateAutoComplete(name!); + return false; + case ActionKind.up: + setAutoComplete((ac) => + ac + ? { + ...ac, + selected: + (ac.selected - 1 + ac.result.matches.length) % + ac.result.matches.length, + } + : undefined, + ); + return true; + case ActionKind.down: + setAutoComplete((ac) => + ac + ? { + ...ac, + selected: (ac.selected + 1) % ac.result.matches.length, + } + : undefined, + ); + return true; + case ActionKind.enter: { + // (AC4.) define how to insert the new node + const ac = autoComplete(); + switch (ac?.result?.type) { + case "emoji": { + const match = ac.result.matches[ac.selected]; + + let tr = action.view.state.tr.deleteRange( + action.range.from, + action.range.to, + ); + + if (match.type == "unicode") { + tr = tr.insert( + action.range.from, + schema.nodes.rfm_unicode_emoji.createAndFill({ + id: match.codepoint, + pack: applicationState.settings.getValue( + "appearance:unicode_emoji", + ), + src: unicodeEmojiUrl( + applicationState.settings.getValue( + "appearance:unicode_emoji", + ), + match.codepoint, + ), + })!, + ); + } else { + tr = tr.insert( + action.range.from, + schema.nodes.rfm_custom_emoji.createAndFill({ + id: match.id, + src: `https://cdn.revoltusercontent.com/emojis/${match.id}`, + })!, + ); + } + + action.view.dispatch(tr); + + return true; + } + case "user": { + const match = ac.result.matches[ac.selected]; + + let tr = action.view.state.tr.deleteRange( + action.range.from, + action.range.to, + ); + + tr = tr.insert( + action.range.from, + schema.nodes.rfm_user_mention.createAndFill({ + id: + match instanceof ServerMember + ? match.id.user + : match.id, + username: match.displayName, + avatar: match.animatedAvatarURL, + })!, + ); + + action.view.dispatch(tr); + + return true; + } + case "role": { + const match = ac.result.matches[ac.selected]; + + let tr = action.view.state.tr.deleteRange( + action.range.from, + action.range.to, + ); + + tr = tr.insert( + action.range.from, + schema.nodes.rfm_role_mention.createAndFill({ + id: match.id, + name: match.name, + })!, + ); + + action.view.dispatch(tr); + + return true; + } + case "channel": { + const match = ac.result.matches[ac.selected]; + + let tr = action.view.state.tr.deleteRange( + action.range.from, + action.range.to, + ); + + tr = tr.insert( + action.range.from, + schema.nodes.rfm_channel_mention.createAndFill({ + id: match.id, + name: match.name, + })!, + ); + + action.view.dispatch(tr); + + return true; + } + } + + return false; + } + default: + updateAutoComplete(name!, action.filter); + return false; + } + }, + }) + : []; + + function selectAutoCompleteItem(selected: number) { + setAutoComplete((ac) => + ac + ? { + ...ac, + selected, + } + : undefined, + ); + } + + function confirmAutoCompleteItem() { + // send a fake Enter event to trigger the AC plugin handler + const event = new KeyboardEvent("keydown", { key: "Enter" }); + view.someProp("handleKeyDown", (f) => f(view, event)); + } + + // configure prosemirror + const config: EditorStateConfig = { + schema, + plugins: [ + history(), + keymap(codeBlockKeymap), + keymap({ + "Shift-Enter": baseKeymap["Enter"], + Space: () => { + // typing a space should cancel autocomplete + closeAutocomplete(view); + + return false; + }, + }), + ...codemark({ + markType: schema.marks.code, + }), + codeMirrorBlockPlugin({ + ...defaultSettings, + languageLoaders: { ...languageLoaders, ...legacyLanguageLoaders }, + undo, + redo, + }), + inputRules({ + rules: [ + new InputRule(/^```$/, (state, match, start, end) => { + return state.tr.replaceRangeWith( + start, + end, + schema.nodes.code_block.createAndFill()!, + ); + }), + new InputRule(/^#{1,6}\s$/, (state, match, start, end) => { + return state.tr.replaceRangeWith( + start, + end, + schema.nodes.heading.createAndFill({ + level: match[0].length - 1, + })!, + ); + }), + new InputRule(/^(?:-|\*)\s$/, (state, match, start, end) => { + return state.tr.replaceRangeWith( + start, + end, + schema.nodes.bullet_list.createAndFill(null, [ + schema.nodes.list_item.createAndFill(null)!, + ])!, + ); + }), + new InputRule(/^(\d*)\.\s$/, (state, match, start, end) => { + return state.tr.replaceRangeWith( + start, + end, + schema.nodes.ordered_list.createAndFill( + { + order: parseInt(match[1]), + }, + [schema.nodes.list_item.createAndFill(null)!], + )!, + ); + }), + new InputRule( + /(? { + const [_, text] = match; + if (!text.length) return null; + + if ( + state.doc.rangeHasMark(start, end, schema.marks.strikethrough) + ) + return null; + + return state.tr + .replaceRangeWith( + start, + end, + schema.text(text, [ + schema.marks.strikethrough.create(), + ...activeMarks(state.doc, start, end), + ]), + ) + .setStoredMarks([]); + }, + ), + new InputRule( + /(? { + const [_, operatorBegin, text, operatorEnd] = match; + if (!text.length) return null; + + if (operatorBegin.length === operatorEnd.length) { + if (operatorBegin.length === 2) return null; + + if (state.doc.rangeHasMark(start, end, schema.marks.em)) + return null; + + return state.tr + .replaceRangeWith( + start, + end, + schema.text(text, [ + schema.marks.em.create(), + ...activeMarks(state.doc, start, end), + ]), + ) + .setStoredMarks([]); + } + + return null; + }, + ), + new InputRule( + /(? { + const [_, operatorBegin, text, operatorEnd] = match; + if (!text.length) return null; + + if (operatorBegin.length === operatorEnd.length) { + if (state.doc.rangeHasMark(start, end, schema.marks.strong)) + return null; + + return state.tr + .replaceRangeWith( + start, + end, + schema.text(text, [ + schema.marks.strong.create(), + ...activeMarks(state.doc, start, end), + ]), + ) + .setStoredMarks([]); + } + + return null; + }, + ), + ], + }), + ...autoCompletePlugin, + keymap({ + Enter: () => { + // note: unsure if ProseMirror correctly handles + // event.isComposing, it is assumed that it does! + + if (props.onComplete) { + props.onComplete(); + return true; + } + + return false; + }, + // todo + "Ctrl-b": toggleMark(schema.marks.strong), + "Ctrl-i": toggleMark(schema.marks.em), + "Ctrl-s": toggleMark(schema.marks.strikethrough), + }), + keymap({ "Mod-z": undo, "Mod-y": redo }), + keymap(baseKeymap), + ], + }; + + const state = EditorState.create({ + ...config, + doc: blankModel(), // populated by initialValue effect + // doc: markdownToProseMirrorModel(props.initialValue?.[0] ?? "", client()), + }); + + const view = new EditorView(proseMirror, { + state, + dispatchTransaction(tr) { + view.updateState(this.state.applyTransaction(tr).state); + + const value = markdownFromProseMirrorModel(view.state.doc); + props.onChange?.(value); + setValue(value); + }, + handleDOMEvents: { + focus: () => setFocused(true), + blur: () => setFocused(false), + keydown: (_, event) => { + if (event.key === "ArrowUp" && !value().length) + return props.onPreviousContext?.(); + + if (event.key === "Enter" && !event.shiftKey && props.onComplete) + return; + + props.onTyping?.(); + }, + }, + nodeViews: {}, + }); + + createEffect( + on( + () => props.initialValue, + (value) => { + if (value) { + view.updateState( + EditorState.create({ + ...config, + doc: value[0] + ? markdownToProseMirrorModel(value[0], client()) + : blankModel(), + }), + ); + + setValue(value[0]); + } + }, + // { + // defer: true, + // }, + ), + ); + + createEffect( + on( + () => props.nodeReplacement, + (value) => { + if (value) { + view.dom.focus(); + + if (value instanceof Node) { + view.updateState( + view.state.applyTransaction( + view.state.tr.replaceSelectionWith(value), + ).state, + ); + + const text = markdownFromProseMirrorModel(view.state.doc); + setValue(text); + props.onChange(text); + } + } + }, + { + defer: true, + }, + ), + ); + + function onClick() { + if (!focused()) { + view.dom.focus(); + } + } + + proseMirror.addEventListener("click", onClick); + + onCleanup(() => proseMirror.removeEventListener("click", onClick)); + + // auto focus on mount + onMount( + () => + props.autoFocus && + setTimeout(() => { + view.dom.focus(); + + // ensure the cursor is at the end + view.updateState( + view.state.apply( + view.state.tr.setSelection(Selection.atEnd(view.state.doc)), + ), + ); + }, 0), + ); + + return ( + <> + + {(size) => { + createEffect(() => { + proseMirror.style.minWidth = "0"; + proseMirror.style.maxWidth = size.width + "px"; + proseMirror.style.width = "100%"; + proseMirror.style.height = "100%"; + proseMirror.style.display = "flex"; + }); + + return proseMirror; + }} + + + + + + + + ); +} + +/** + * Get a list of active marks in a range + * @param doc Document + * @param start Start of range + * @param end End of range + */ +function activeMarks(doc: Node, start: number, end: number) { + return Object.values(schema.marks) + .filter((mark) => doc.rangeHasMark(start, end, mark)) + .map((mark) => mark.create()); +} + +/** + * Component to render all of the auto complete suggestions + * + * (AC5.) include visual rendering for auto complete + */ +function Suggestions(props: { + state: Accessor; + selectAutoCompleteItem: (idx: number) => void; + confirmAutoCompleteItem: () => void; +}) { + const element = () => props.state()!.element; + const [floating, setFloating] = createSignal(); + const state = useState(); + + const position = useFloating(element, floating, { + placement: "top-start", + middleware: [flip(), shift()], + whileElementsMounted: autoUpdate, + }); + + return ( +
+ + + + {(match, idx) => ( + props.selectAutoCompleteItem(idx())} + onMouseDown={(e) => e.preventDefault()} // don't lose editor focus + onClick={props.confirmAutoCompleteItem} + > + + {" "} + :{match.name}: + + } + > + + {" "} + :{match.name}: + + + + )} + + + + + {(match, idx) => ( + props.selectAutoCompleteItem(idx())} + onMouseDown={(e) => e.preventDefault()} // don't lose editor focus + onClick={props.confirmAutoCompleteItem} + > + {" "} + {match.displayName} + {match instanceof ServerMember && + match.displayName !== match.user?.username && ( + <> + {" "} + @{match.user?.username}#{match.user?.discriminator} + + )} + + )} + + + + + {(match, idx) => ( + props.selectAutoCompleteItem(idx())} + onMouseDown={(e) => e.preventDefault()} // don't lose editor focus + onClick={props.confirmAutoCompleteItem} + > + {match.name} + + )} + + + + + {(match, idx) => ( + props.selectAutoCompleteItem(idx())} + onMouseDown={(e) => e.preventDefault()} // don't lose editor focus + onClick={props.confirmAutoCompleteItem} + > + #{match.name} + + )} + + + +
+ ); +} + +/** + * Individual auto complete entry + */ +const Entry = styled("div", { + base: { + display: "flex", + alignItems: "center", + + cursor: "pointer", + gap: "var(--gap-md)", + background: "transparent", + padding: "var(--gap-sm) var(--gap-md)", + }, + variants: { + selected: { + true: { + background: + "color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent)", + }, + }, + }, +}); + +/** + * Entry name + */ +const Name = styled("div", { + base: { + fontSize: "0.9em", + }, +}); + +/** + * Auto complete container + */ +const base = cva({ + base: { + display: "flex", + flexDirection: "column", + padding: "var(--gap-md) 0", + overflow: "hidden", + borderRadius: "var(--borderRadius-xs)", + background: "var(--md-sys-color-surface-container)", + color: "var(--md-sys-color-on-surface)", + fill: "var(--md-sys-color-on-surface)", + boxShadow: "0 0 3px var(--md-sys-color-shadow)", + }, +}); diff --git a/packages/client/components/ui/components/design/TextField.tsx b/packages/client/components/ui/components/design/TextField.tsx new file mode 100644 index 00000000..d04a112c --- /dev/null +++ b/packages/client/components/ui/components/design/TextField.tsx @@ -0,0 +1,71 @@ +import type { JSX } from "solid-js"; + +import "mdui/components/select.js"; +import "mdui/components/text-field.js"; + +type Props = JSX.HTMLAttributes & { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + value?: any; + autoFocus?: boolean; + required?: boolean; + name?: string; + label?: string; + autosize?: boolean; + disabled?: boolean; + rows?: number; + "min-rows"?: number; + "max-rows"?: number; + placeholder?: string; + type?: "text" | "password" | "email" | "file"; + variant?: "filled" | "outlined"; + enterkeyhint?: + | "enter" + | "done" + | "go" + | "next" + | "previous" + | "search" + | "find"; +}; + +/** + * Text fields let users enter text into a UI + * + * @library MDUI + * @specification https://m3.material.io/components/text-fields + */ +export function TextField(props: Props) { + return ( + + ); +} + +function Select( + props: JSX.HTMLAttributes & { + value?: string; + variant?: "filled" | "outlined"; + required?: boolean; + disabled?: boolean; + }, +) { + return ; +} + +/** + * Select menu allows the user to pick a menu item + * + * Use the `MenuItem` component as the child: + * ```tsx + * + * hello! + * world! + * + * ``` + * + * @library MDUI + * @specification https://m3.material.io/components/menus + */ +TextField.Select = Select; diff --git a/packages/client/components/ui/components/design/atoms/indicators/Unreads.tsx b/packages/client/components/ui/components/design/Unreads.tsx similarity index 59% rename from packages/client/components/ui/components/design/atoms/indicators/Unreads.tsx rename to packages/client/components/ui/components/design/Unreads.tsx index 20f35e19..ab13de34 100644 --- a/packages/client/components/ui/components/design/atoms/indicators/Unreads.tsx +++ b/packages/client/components/ui/components/design/Unreads.tsx @@ -2,6 +2,10 @@ import { Match, Switch } from "solid-js"; import { styled } from "styled-system/jsx"; +import MdAdd from "@material-design-icons/svg/outlined/add.svg?component-solid"; + +import { iconSize } from "../utils"; + export type Props = { unread: boolean; count: number; @@ -14,30 +18,32 @@ const UnreadCounter = styled("div", { base: { width: "10px", height: "10px", - marginTop: "-1px", textAlign: "center", fontSize: "8px", fontWeight: 600, - color: "var(--customColours-error-onColor)", + color: "var(--md-sys-color-on-error)", + fill: "var(--md-sys-color-on-error)", }, }); /** * Unreads count SVG graphic */ -export function UnreadsGraphic(props: Props) { +function UnreadsGraphic(props: Props) { return ( 0}> - + - {props.count < 10 ? props.count : "9+"} + + {props.count < 10 ? props.count : } + - + ); @@ -53,3 +59,5 @@ export function Unreads(props: Props & { size: string }) { ); } + +Unreads.Graphic = UnreadsGraphic; diff --git a/packages/client/components/ui/components/design/atoms/indicators/UserStatus.tsx b/packages/client/components/ui/components/design/UserStatus.tsx similarity index 74% rename from packages/client/components/ui/components/design/atoms/indicators/UserStatus.tsx rename to packages/client/components/ui/components/design/UserStatus.tsx index 8456bd9e..6675eeb3 100644 --- a/packages/client/components/ui/components/design/atoms/indicators/UserStatus.tsx +++ b/packages/client/components/ui/components/design/UserStatus.tsx @@ -1,6 +1,4 @@ -import { useTheme } from "solid-styled-components"; - -import type { API } from "@upryzing/upryzing.js"; +import type { API } from "upryzing.js"; export type Props = { /** @@ -13,7 +11,7 @@ export type Props = { /** * Overlays user status in current SVG */ -export const UserStatusGraphic = (props: Props) => { +const UserStatusGraphic = (props: Props) => { /** * Convert status to lower case */ @@ -24,7 +22,7 @@ export const UserStatusGraphic = (props: Props) => { cx="27" cy="27" r="5" - fill={`var(--customColours-status-${statusLowercase()}-color)`} + fill={`var(--brand-presence-${statusLowercase()})`} mask={`url(#accessible-status-${statusLowercase()})`} /> ); @@ -40,3 +38,5 @@ export function UserStatus(props: Props & { size: string }) { ); } + +UserStatus.Graphic = UserStatusGraphic; diff --git a/packages/client/components/ui/components/design/atoms/display/Avatar.stories.tsx b/packages/client/components/ui/components/design/atoms/display/Avatar.stories.tsx deleted file mode 100644 index 66ece5bf..00000000 --- a/packages/client/components/ui/components/design/atoms/display/Avatar.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import type { ComponentProps } from "solid-js"; - -import TestImage from "../../../../test-images/the-halal-design-studio-ZrJpH6W-HDs-unsplash.jpg"; -import type { ComponentStory } from "../../../stories"; -import { UserStatusGraphic } from "../indicators"; - -import { Avatar } from "./Avatar"; - -export default { - category: "Design System/Atoms/Avatar", - component: Avatar, - stories: [ - { title: "Default" }, - { - title: "Cut Out", - props: { - interactive: true, - holepunch: "bottom-right", - overlay: () => , - }, - }, - { - title: "Fallback", - props: { - fallback: "test fallback string", - src: undefined, - interactive: true, - holepunch: "bottom-right", - overlay: () => , - }, - }, - ], - props: { - size: 256, - src: TestImage, - }, - propTypes: { - size: "number", - src: "string", - fallback: "string", - interactive: "boolean", - holepunch: ["none", "bottom-right", "top-right", "right"], - overlay: "component", - }, -} as ComponentStory>; diff --git a/packages/client/components/ui/components/design/atoms/display/ColouredText.tsx b/packages/client/components/ui/components/design/atoms/display/ColouredText.tsx deleted file mode 100644 index e287a67e..00000000 --- a/packages/client/components/ui/components/design/atoms/display/ColouredText.tsx +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Coloured text - */ -export function ColouredText(props: { - colour?: string; - clip?: boolean; - children?: string | Element; -}) { - return ( - - {props.children} - - ); -} diff --git a/packages/client/components/ui/components/design/atoms/display/FormGroup.tsx b/packages/client/components/ui/components/design/atoms/display/FormGroup.tsx deleted file mode 100644 index c8572894..00000000 --- a/packages/client/components/ui/components/design/atoms/display/FormGroup.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { styled } from "styled-system/jsx"; - -/** - * Input element and label grouping - */ -export const FormGroup = styled("label", { - base: { - display: "flex", - flexDirection: "column", - gap: "var(--gap-md)", - }, -}); diff --git a/packages/client/components/ui/components/design/atoms/display/Initials.stories.tsx b/packages/client/components/ui/components/design/atoms/display/Initials.stories.tsx deleted file mode 100644 index f9c6eee8..00000000 --- a/packages/client/components/ui/components/design/atoms/display/Initials.stories.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import type { ComponentProps } from "solid-js"; - -import TextColourDecorator from "../../../../decorators/TextColourDecorator"; -import type { ComponentStory } from "../../../stories"; - -import { Initials } from "./Initials"; - -export default { - category: "Design System/Atoms/Display", - component: Initials, - stories: [ - { - title: "Default", - props: { - input: "this is a long string", - maxLength: 3, - }, - }, - ], - propTypes: { - input: "string", - maxLength: "number", - }, - decorators: [TextColourDecorator], -} as ComponentStory>; diff --git a/packages/client/components/ui/components/design/atoms/display/Key.stories.tsx b/packages/client/components/ui/components/design/atoms/display/Key.stories.tsx deleted file mode 100644 index e87b37da..00000000 --- a/packages/client/components/ui/components/design/atoms/display/Key.stories.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import type { ComponentProps } from "solid-js"; - -import TextColourDecorator from "../../../../decorators/TextColourDecorator"; -import type { ComponentStory } from "../../../stories"; - -import { Key } from "./Key"; - -export default { - category: "Design System/Atoms/Display", - component: Key, - stories: [ - { - title: "Default", - props: { - children: "K", - }, - }, - { - title: "Simple", - props: { - children: "ArrowUp", - simple: true, - }, - }, - { - title: "Special Key Replacement", - props: { - children: "ArrowUp", - }, - }, - ], - propTypes: { - children: "string", - short: "boolean", - simple: "boolean", - }, -} as ComponentStory>; diff --git a/packages/client/components/ui/components/design/atoms/display/Key.tsx b/packages/client/components/ui/components/design/atoms/display/Key.tsx deleted file mode 100644 index 0e95fedb..00000000 --- a/packages/client/components/ui/components/design/atoms/display/Key.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { - FaSolidArrowDown, - FaSolidArrowLeft, - FaSolidArrowRight, - FaSolidArrowUp, -} from "solid-icons/fa"; -import { Component, JSXElement, createMemo } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -import { useTranslation } from "@revolt/i18n"; - -export interface Props { - children: string; - short?: boolean; - /** if the key should be styled in a more simple way */ - simple?: boolean; -} - -// UNCHECKED STYLES (check commit 2025-01-15) -const Base = styled("div", { - base: { - display: "inline-flex", - color: "var(--colours-component-key-foreground)", - background: "var(--colours-component-key-background)", - padding: "0.5ch 1ch 0.35ch", - borderRadius: "3px", - fontWeight: 700, - fontFamily: "var(--fonts-monospace)", - textTransform: "uppercase", - }, - variants: { - simple: { - true: {}, - false: { - boxShadow: - "0 1px 1px rgba(133, 133, 133, 0.2), 0 2.5px 0 0 rgba(0, 0, 0, 0.5)", - "&:active": { - outline: "1px solid rgb(0 0 0 / 0.3)", - transform: "translateY(2px)", - boxShadow: "0 1px 1px rgba(0, 0, 0, 0.2)", - }, - }, - }, - }, - defaultVariants: { - simple: false, - }, -}); - -const REPLACEMENTS: Record JSXElement> = { - ArrowUp: () => , - ArrowDown: () => , - ArrowLeft: () => , - ArrowRight: () => , -}; - -export const Key: Component = (props) => { - const t = useTranslation(); - - const keyName = createMemo(() => { - const key = props.children; - - return ( - REPLACEMENTS[key]?.() ?? - (props.short - ? t( - `keys.${key}.short` as any, - {}, - t(`keys.${key}.full` as any, {}, key) - ) - : t(`keys.${key}.full` as any, {}, key)) - ); - }); - - return {keyName()}; -}; diff --git a/packages/client/components/ui/components/design/atoms/display/KeySequence.stories.tsx b/packages/client/components/ui/components/design/atoms/display/KeySequence.stories.tsx deleted file mode 100644 index 05bb46ba..00000000 --- a/packages/client/components/ui/components/design/atoms/display/KeySequence.stories.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import type { ComponentProps } from "solid-js"; - -import TextColourDecorator from "../../../../decorators/TextColourDecorator"; -import type { ComponentStory } from "../../../stories"; - -import { KeySequence } from "./KeySequence"; - -export default { - category: "Design System/Atoms/Display", - component: KeySequence, - stories: [ - { - title: "Default", - props: { - sequence: "Control+Alt+ArrowUp", - short: true, - }, - }, - { - title: "Simple", - props: { - sequence: "Control+Alt+ArrowUp", - simple: true, - short: true, - }, - }, - { - title: "Long", - props: { - sequence: "Control+Alt+ArrowUp", - short: false, - }, - }, - ], - propTypes: { - sequence: "string", - short: "boolean", - simple: "boolean", - }, -} as ComponentStory>; diff --git a/packages/client/components/ui/components/design/atoms/display/KeySequence.tsx b/packages/client/components/ui/components/design/atoms/display/KeySequence.tsx deleted file mode 100644 index c685ffaf..00000000 --- a/packages/client/components/ui/components/design/atoms/display/KeySequence.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { Component, For, createMemo } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -import { - KeybindSequence, - type KeyComboSequence as TKeySequence, -} from "@revolt/keybinds"; - -import { Key } from "./Key"; - -export interface Props { - sequence: string | TKeySequence; - short?: boolean; -} - -// UNCHECKED STYLES (check commit 2025-01-15) -const Base = styled("kbd", { - base: { - display: "inline-flex", - placeItems: "center", - flexWrap: "wrap", - gap: "1ch", - lineHeight: 1, - fontSize: "0.85em", - fontFamily: "var(--fonts-monospace)", - - "& > kbd": { - display: "inline-flex", - alignItems: "center", - gap: "0.5ch", - }, - }, -}); - -export const KeySequence: Component = (props) => { - // accepting strings and parsing them isn't really needed other than a nice api? - const sequence = createMemo(() => - typeof props.sequence === "string" - ? KeybindSequence.parse(props.sequence) - : props.sequence - ); - - return ( - - - {(combo) => ( - - {(key, index) => ( - <> - {index() !== 0 && "+"} - {key} - - )} - - )} - - - ); -}; diff --git a/packages/client/components/ui/components/design/atoms/display/Modal.stories.tsx b/packages/client/components/ui/components/design/atoms/display/Modal.stories.tsx deleted file mode 100644 index fefce89b..00000000 --- a/packages/client/components/ui/components/design/atoms/display/Modal.stories.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { ComponentProps } from "solid-js"; - -import type { ComponentStory } from "../../../stories"; -import { Button } from "../inputs"; - -import { Modal } from "./Modal"; - -const urlSearchParams = new URLSearchParams(window.location.search); -const params = Object.fromEntries(urlSearchParams.entries()); - -function shouldShow(key: "default" | "no-actions") { - const show = params["show"]; - return show ? show === key : false; -} - -export default { - component: Modal, - category: "Design System/Atoms/Display", - stories: [ - { - title: "Default", - props: { - show: shouldShow("default"), - }, - }, - { - title: "No Actions", - props: { - actions: [], - show: shouldShow("no-actions"), - }, - }, - ], - props: { - title: "Modal Title", - description: "Optional modal description.", - children: - "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.", - actions: [ - { - children: "OK", - variant: "accent", - confirmation: true, - onClick: () => true, - }, - { - children: "Cancel", - variant: "plain", - onClick: () => true, - }, - ], - }, - propTypes: { - show: "boolean", - title: "string", - description: "string", - children: "string", - }, - decorators: [ - (props) => ( -
- - {props.children} -
- ), - ], - effects: { - onClose: (_) => ({ show: false }), - ...({ - onShow: () => ({ show: true }), - } as any), - }, -} as ComponentStory>; diff --git a/packages/client/components/ui/components/design/atoms/display/Modal.tsx b/packages/client/components/ui/components/design/atoms/display/Modal.tsx deleted file mode 100644 index 8ee16760..00000000 --- a/packages/client/components/ui/components/design/atoms/display/Modal.tsx +++ /dev/null @@ -1,266 +0,0 @@ -import { ComponentProps, For, JSX, Show } from "solid-js"; -import { Portal } from "solid-js/web"; -import { Motion, Presence } from "solid-motionone"; - -import { styled } from "styled-system/jsx"; - -import { Button } from "../inputs/Button"; - -import { Text } from "./Typography"; - -export type Action = Omit, "onClick"> & { - confirmation?: boolean; - onClick: () => void | boolean | Promise; -}; - -export interface Props { - /** - * Given content padding - */ - padding?: string; - - /** - * Maximum width of the modal - */ - maxWidth?: string; - - /** - * Maximum height of the modal - */ - maxHeight?: string; - - /** - * Whether inputs should be disabled - */ - disabled?: boolean; - - /** - * Whether the modal should be transparent - */ - transparent?: boolean; - - /** - * Whether the modal should not be dismissable by clicking the empty area - */ - nonDismissable?: boolean; - - /** - * Actions to show at the bottom of the modal - */ - actions?: Action[] | (() => Action[]); - - /** - * Whether to show the modal - */ - show?: boolean; - - /** - * Callback when modal is closed - */ - onClose?: () => void; - - /** - * Modal title - */ - title?: JSX.Element; - - /** - * Modal description - */ - description?: JSX.Element; - - /** - * Modal content - */ - children?: JSX.Element; -} - -/** - * Fixed position container to centre the modal - */ -const Base = styled("div", { - base: { - top: 0, - left: 0, - width: "100%", - height: "100%", - position: "fixed", - zIndex: "var(--layout-zIndex-modal)", - maxHeight: "100%", - userSelect: "none", - animationDuration: "0.2s", - animationFillMode: "forwards", - display: "grid", - overflowY: "auto", - placeItems: "center", - transition: "var(--transitions-medium) all", - pointerEvents: "none", - background: "transparent", - }, - variants: { - show: { - true: { - pointerEvents: "all", - background: "rgba(0, 0, 0, 0.6)", - }, - }, - }, - defaultVariants: { - show: true, - }, -}); - -/** - * Component that wraps all of the actual modal content - */ -const Container = styled("div", { - base: { - width: "unset", - maxWidth: "min(calc(100vw - 20px), 450px)", - maxHeight: "min(calc(100vh - 20px), 650px)", - margin: "20px", - display: "flex", - flexDirection: "column", - color: "var(--colours-component-modal-foreground)", - background: "var(--colours-component-modal-background)", - borderRadius: "var(--borderRadius-lg)", - overflow: "hidden", - }, - variants: { - transparent: { - true: { - background: "transparent", - borderRadius: "none", - overflow: "unset", - }, - }, - }, -}); - -/** - * Container for the title elements - */ -const Title = styled("div", { - base: { - padding: "1rem", - flexShrink: 0, - wordBreak: "break-word", - gap: "8px", - display: "flex", - flexDirection: "column", - }, -}); - -/** - * Container for the given content - */ -const Content = styled("div", { - base: { - flexGrow: 1, - paddingTop: 0, - padding: "0 1rem 1rem", - overflowY: "auto", - fontSize: "0.9375rem", - display: "flex", - flexDirection: "column", - }, -}); - -/** - * Container for bottom modal actions - */ -const Actions = styled("div", { - base: { - flexShrink: 0, - gap: "8px", - display: "flex", - padding: "0 1rem 1rem 1rem", - flexDirection: "row-reverse", - }, -}); - -/** - * Modal component - * - * This component mounts itself to the body. - */ -export function Modal(props: Props) { - const showActions = () => - typeof props.actions === "function" || - (props.actions ? props.actions.length > 0 : false); - - return ( - - !props.nonDismissable && props.onClose?.()} - > - - - - e.stopPropagation()} - transparent={props.transparent} - style={{ - width: props.maxWidth ? "100%" : "unset", - "max-width": `min(calc(100vw - 20px), ${ - props.maxWidth ?? "450px" - })`, - "max-height": `min(calc(100vh - 20px), ${ - props.maxHeight ?? "650px" - })`, - }} - > - - - <Show when={props.title}> - <Text class="headline" size="small"> - {props.title} - </Text> - </Show> - <Show when={props.description}> - <Text class="body" size="medium"> - {props.description} - </Text> - </Show> - - - - {props.children} - - - - - {(action) => ( - - ); -} diff --git a/packages/client/components/ui/components/design/atoms/inputs/CategoryButton.tsx b/packages/client/components/ui/components/design/atoms/inputs/CategoryButton.tsx deleted file mode 100644 index 0c663be7..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/CategoryButton.tsx +++ /dev/null @@ -1,218 +0,0 @@ -import { For, JSX, Match, Show, Switch } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -import { Ripple, iconSize } from "@revolt/ui"; - -import MdChevronRight from "@material-design-icons/svg/outlined/chevron_right.svg?component-solid"; -import MdContentCopy from "@material-design-icons/svg/outlined/content_copy.svg?component-solid"; -import MdKeyboardDown from "@material-design-icons/svg/outlined/keyboard_arrow_down.svg?component-solid"; -import MdOpenInNew from "@material-design-icons/svg/outlined/open_in_new.svg?component-solid"; - -import { Column, OverflowingText } from "../../layout"; - -/** - * Permissible actions - */ -type Action = - | "chevron" - | "collapse" - | "external" - | "edit" - | "copy" - | JSX.Element; - -export interface Props { - readonly icon?: JSX.Element | "blank"; - readonly children?: JSX.Element; - readonly description?: JSX.Element; - - readonly disabled?: boolean; - readonly onClick?: () => void; - readonly action?: Action | Action[]; -} - -/** - * Category Button (Fluent) - */ -export function CategoryButton(props: Props) { - return ( - - - - - {props.icon} - - - - - - - - - {props.children} - - - {props.description} - - - - {(action) => ( - - - - - - - - - - - - - - - - - - - - - - - )} - - - ); -} - -/** - * Base container for button - */ -const Base = styled("a", { - base: { - // for : - position: "relative", - - gap: "16px", - padding: "13px", - borderRadius: "var(--borderRadius-md)", - - color: "var(--colours-component-categorybtn-foreground)", - background: "var(--colours-component-categorybtn-background)", - - userSelect: "none", - cursor: "pointer", - transition: "background-color 0.1s ease-in-out", - - display: "flex", - alignItems: "center", - flexDirection: "row", - - "&:hover": { - backgroundColor: "var(--colours-component-categorybtn-background-hover)", - }, - - "&:active": { - backgroundColor: "var(--colours-component-categorybtn-background-active)", - }, - }, - variants: { - isLink: { - true: { - cursor: "pointer", - }, - false: { - cursor: "initial", - }, - }, - disabled: { - true: { - cursor: "not-allowed", - }, - }, - }, -}); - -/** - * Title and description styles - */ -const Content = styled("div", { - base: { - display: "flex", - flexGrow: 1, - flexDirection: "column", - - fontWeight: 500, - fontSize: "14px", - gap: "2px", - whiteSpace: "nowrap", - overflow: "hidden", - textOverflow: "ellipsis", - }, -}); - -/** - * Accented wrapper for the category button icons - */ -const IconWrapper = styled("div", { - base: { - background: "var(--colours-component-categorybtn-background-icon)", - - width: "36px", - height: "36px", - display: "flex", - flexShrink: 0, - alignItems: "center", - justifyContent: "center", - borderRadius: "50%", - - "& svg": { - fill: "var(--colours-component-categorybtn-foreground-description)", - }, - }, -}); - -/** - * Category button icon wrapper for the blank state - */ -const BlankIconWrapper = styled(IconWrapper, { - base: { - background: "transparent", - }, -}); - -/** - * Description shown below title - */ -const Description = styled("span", { - base: { - fontWeight: 500, - fontSize: "12px", - color: "var(--colours-component-categorybtn-foreground-description)", - textWrap: "wrap", - - "& a:hover": { - textDecoration: "underline", - }, - }, -}); - -/** - * Container for action icons - */ -const Action = styled("div", { - base: { - width: "24px", - height: "24px", - flexShrink: 0, - - display: "grid", - placeItems: "center", - }, -}); diff --git a/packages/client/components/ui/components/design/atoms/inputs/CategoryButtonGroup.tsx b/packages/client/components/ui/components/design/atoms/inputs/CategoryButtonGroup.tsx deleted file mode 100644 index 505f9aed..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/CategoryButtonGroup.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { styled } from "styled-system/jsx"; - -/** - * Group a set of category buttons (M3+Fluent) - */ -export const CategoryButtonGroup = styled("div", { - base: { - display: "flex", - flexDirection: "column", - gap: "var(--gap-xs)", - - borderRadius: "var(--borderRadius-xl)", - overflow: "hidden", - }, -}); diff --git a/packages/client/components/ui/components/design/atoms/inputs/CategoryCollapse.tsx b/packages/client/components/ui/components/design/atoms/inputs/CategoryCollapse.tsx deleted file mode 100644 index 3082fda0..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/CategoryCollapse.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import { - ComponentProps, - JSX, - Match, - Switch, - createSignal, - splitProps, -} from "solid-js"; - -import { cva } from "styled-system/css"; -import { styled } from "styled-system/jsx"; - -import { Column } from "../../layout"; - -import { CategoryButton } from "./CategoryButton"; - -type Props = Omit< - ComponentProps, - "onClick" | "children" -> & { - children?: JSX.Element; - title?: JSX.Element; - - scrollable?: boolean; -}; - -/** - * Category button with collapsed children (Fluent) - */ -export function CategoryCollapse(props: Props) { - const [local, remote] = splitProps(props, ["action", "children"]); - - const [opened, setOpened] = createSignal(false); - - let details: HTMLDivElement | undefined; - let column: HTMLDivElement | undefined; - - /** - * Toggle the opened state and scroll to the beginning of contents - */ - const toggleOpened = () => { - const openedState = opened(); - - if (!openedState) { - column?.scroll({ top: 0 }); - } - - setOpened(!openedState); - }; - - /** - * Recalculate the column height for transition - */ - const updatedHeight = () => { - const calculatedHeight = opened() - ? Math.min(column?.scrollHeight || 0, 340) - : 0; - - return `${calculatedHeight}px`; - }; - - return ( -
- - void 0} - > - {props.title} - - - - {props.children} -
- } - > - -
- {props.children} -
-
- - - ); -} - -/** - * Column with inner content - */ -const innerColumn = cva({ - base: { - display: "flex", - flexDirection: "column", - gap: "var(--gap-xs)", - - borderRadius: "var(--borderRadius-md)", - transition: "0.3s", - - scrollbarWidth: "none", - "&::-webkit-scrollbar": { - display: "none", - }, - }, - variants: { - static: { - true: { - overflow: "hidden", - }, - }, - }, -}); - -/** - * Parent base component - */ -const Details = styled("div", { - base: { - "&:not(.open) .InnerColumn": { - opacity: 0, - pointerEvents: "none", - }, - - /* add transition to the icon */ - "& summary div:last-child svg": { - transition: "0.3s", - }, - - /* rotate chevron when it is open */ - "&.open summary div:last-child svg": { - transform: "rotate(180deg)", - }, - - /* add additional padding between top button and children when it is open */ - "&.open summary": { - marginBottom: "var(--gap-xs)", - }, - - /* hide the default details component marker */ - "& summary": { - transition: "0.3s", - listStyle: "none", - }, - - "& summary::marker, summary::-webkit-details-marker": { - display: "none", - }, - - /* connect elements vertically */ - "& > :not(summary) .CategoryButton": { - /* and set child backgrounds */ - background: "var(--colours-component-categorybtn-background-collapse)", - }, - }, -}); diff --git a/packages/client/components/ui/components/design/atoms/inputs/Checkbox.tsx b/packages/client/components/ui/components/design/atoms/inputs/Checkbox.tsx deleted file mode 100644 index 704d9ba1..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/Checkbox.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { BiRegularCheck } from "solid-icons/bi"; -import { createSignal } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -export type Props = { - readonly disabled?: boolean; - - readonly name?: string; - readonly value?: boolean; - readonly onChange?: (state: boolean) => void; -}; - -/** - * Checkbox - */ -export function Checkbox(props: Props) { - const [controlledValue, setControlledValue] = createSignal(false); - const checked = () => props.value ?? controlledValue(); - - return ( - - - - typeof props.value !== "undefined" - ? !props.disabled && props.onChange?.(!props.value) - : setControlledValue((v) => !v) - } - /> - - ); -} -const Input = styled("input", { - base: { - display: "none", - }, -}); - -const Checkmark = styled("div", { - base: { - display: "flex", - alignItems: "center", - justifyContent: "center", - width: "24px", - height: "24px", - border: "2px solid var(--colours-component-checkbox-foreground)", - borderRadius: "var(--borderRadius-md)", - background: "var(--colours-component-checkbox-background)", - flexShrink: 0, - margin: "4px", - transition: "0.1s ease-in-out all", - - "& .check": { - transition: "inherit", - fill: "var(--colours-component-checkbox-foreground-check)", - visibility: "hidden", - opacity: 0, - }, - }, - - variants: { - value: { - true: { - borderColor: "var(--colours-component-checkbox-foreground)", - background: "var(--colours-component-checkbox-foreground)", - - ".check": { - visibility: "visible", - opacity: 1, - color: "var(--colours-component-checkbox-foreground-check)", - }, - }, - }, - }, -}); diff --git a/packages/client/components/ui/components/design/atoms/inputs/ColourSwatches.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/ColourSwatches.stories.tsx deleted file mode 100644 index bfe8b1f3..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/ColourSwatches.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import type { ComponentStory } from "../../../stories"; - -import { ColourSwatches } from "./ColourSwatches"; - -export default { - category: "Design System/Atoms/Inputs", - component: ColourSwatches, - stories: [ - { - title: "Default", - props: { - value: "#FD6671", - }, - }, - { - title: "Default (Different Palette)", - props: { - value: "#cc6", - presets: [ - ["#cc6", "#000", "#f55", "#a88"], - ["#bc2", "#aa5", "#fb8", "#16d"], - ], - }, - }, - ], - propTypes: { - value: "string", - onChange: "function", - }, -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/ColourSwatches.tsx b/packages/client/components/ui/components/design/atoms/inputs/ColourSwatches.tsx deleted file mode 100644 index 2a579a1e..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/ColourSwatches.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import { BiRegularCheck, BiSolidPalette } from "solid-icons/bi"; -import { For, Show, createSignal, splitProps } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -interface Props { - readonly presets?: string[][]; - readonly value?: string; - readonly onChange?: (state: string) => void; -} - -interface SwatchProps { - type: "small" | "large"; - colour: string; -} - -const DEFAULT_PRESETS = [ - [ - "#7B68EE", - "#3498DB", - "#1ABC9C", - "#F1C40F", - "#FF7F50", - "#FD6671", - "#E91E63", - "#D468EE", - ], - [ - "#594CAD", - "#206694", - "#11806A", - "#C27C0E", - "#CD5B45", - "#FF424F", - "#AD1457", - "#954AA8", - ], -]; - -const Base = styled("div", { - base: { - display: "flex", - - "& input": { - width: 0, - padding: 0, - border: 0, - margin: 0, - height: 0, - top: "72px", - opacity: 0, - position: "relative", - pointerEvents: "none", - }, - - "& .overlay": { - position: "relative", - width: 0, - - "& div": { - width: "8px", - height: "68px", - }, - }, - }, -}); - -const Swatch = styled("div", { - base: { - flexShrink: 0, - cursor: "pointer", - border: "2px solid transparent", - borderRadius: "var(--borderRadius-md)", - display: "flex", - alignItems: "center", - justifyContent: "center", - transition: "var(--transitions-fast)", - - "& svg": { - transition: "inherit", - color: "var(--colours-background)", - }, - - "&:hover": { - border: "2px solid var(--colours-foreground)", - }, - }, - variants: { - type: { - small: { - height: "30px", - width: "30px", - }, - large: { - width: "68px", - height: "68px", - }, - }, - }, -}); - -const Rows = styled("div", { - base: { - gap: "8px", - display: "flex", - flexDirection: "column", - overflow: "auto", - paddingBottom: "4px", - - "& > div": { - gap: "8px", - display: "flex", - flexDirection: "row", - paddingInlineStart: "8px", - }, - }, -}); - -export function ColourSwatches(props: Props) { - const inputRef: HTMLInputElement = null!; - const [local, others] = splitProps(props, ["onChange", "presets", "value"]); - const [controlledValue, setControlledValue] = createSignal( - local.value || "#FD6671" - ); - - return ( - - setControlledValue(ev.currentTarget.value)} - /> - inputRef!.click()} - style={{ - "background-color": controlledValue(), - }} - > - - - -
-
-
- - - {(row) => ( -
- - {(swatch) => ( - setControlledValue(swatch)} - style={{ "background-color": swatch }} - > - - - - - )} - -
- )} -
-
- - ); -} diff --git a/packages/client/components/ui/components/design/atoms/inputs/ComboBox.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/ComboBox.stories.tsx deleted file mode 100644 index 550d10f4..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/ComboBox.stories.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import type { ComponentStory } from "../../../stories"; - -import { ComboBox } from "./ComboBox"; - -export default { - category: "Design System/Atoms/Inputs", - component: ComboBox, - stories: [ - { - title: "Default", - }, - ], - props: { - children: () => ( - <> - - - - - ), - }, -} as never as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/Input.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/Input.stories.tsx deleted file mode 100644 index de0fada0..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/Input.stories.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import type { ComponentStory } from "../../../stories"; - -import { Input } from "./Input"; - -export default { - category: "Design System/Atoms/Inputs", - component: Input, - stories: [ - { - title: "Primary", - props: { - palette: "primary", - }, - }, - { - title: "Secondary", - props: { - palette: "secondary", - }, - }, - { - title: "Primary (Disabled)", - props: { - palette: "primary", - disabled: true, - }, - }, - { - title: "Secondary (Disabled)", - props: { - palette: "secondary", - disabled: true, - }, - }, - { - title: "Primary (Placeholder)", - props: { - palette: "secondary", - value: "", - placeholder: "Placeholder text", - }, - }, - { - title: "Secondary (Placeholder)", - props: { - palette: "secondary", - value: "", - placeholder: "Placeholder text", - }, - }, - ], - props: { - value: "I am an input...", - }, - propTypes: { - palette: ["primary", "secondary"], - value: "string", - placeholder: "string", - }, -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/LegacyCheckbox.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/LegacyCheckbox.stories.tsx deleted file mode 100644 index ff557e12..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/LegacyCheckbox.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import type { ComponentStory } from "../../../stories"; - -import { LegacyCheckbox } from "./LegacyCheckbox"; - -export default { - category: "Design System/Atoms/Inputs", - component: LegacyCheckbox, - stories: [ - { - title: "Default", - }, - { - title: "Checked", - props: { - value: true, - }, - }, - ], - props: { - title: "Do you want this enabled?", - description: "This will enable this specific thing for you.", - }, - propTypes: { - title: "string", - description: "string", - disabled: "boolean", - value: "boolean", - onChange: "function", - }, - effects: { - onChange: (props) => ({ - value: !props.value, - }), - }, -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/MenuButton.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/MenuButton.stories.tsx deleted file mode 100644 index 2038d7e7..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/MenuButton.stories.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { BiSolidUser } from "solid-icons/bi"; - -import type { ComponentStory } from "../../../stories"; - -import { MenuButton } from "./MenuButton"; - -export default { - category: "Design System/Atoms/Inputs", - component: MenuButton, - stories: [ - { - title: "Thin (default, active)", - props: { - attention: "active", - }, - }, - { - title: "Normal", - props: { - size: "normal", - }, - }, - { - title: "Normal (selected)", - props: { - size: "normal", - attention: "selected", - }, - }, - { - title: "Normal (active)", - props: { - size: "normal", - attention: "active", - }, - }, - { - title: "Normal (muted)", - props: { - size: "normal", - attention: "muted", - }, - }, - { - title: "Normal (active, alert)", - props: { - size: "normal", - attention: "active", - alert: true, - }, - }, - { - title: "Normal (active, alert=1)", - props: { - size: "normal", - attention: "active", - alert: 1, - }, - }, - { - title: "Normal (active, icon)", - props: { - size: "normal", - attention: "active", - icon: , - children: "User Settings", - }, - }, - ], - props: { - children: "Menu Item", - }, - propTypes: { - children: "string", - }, -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/OverrideSwitch.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/OverrideSwitch.stories.tsx deleted file mode 100644 index c9ff114f..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/OverrideSwitch.stories.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { ComponentStory } from "../../../stories"; - -import { OverrideSwitch } from "./OverrideSwitch"; - -export default { - category: "Design System/Atoms/Inputs", - component: OverrideSwitch, - stories: [ - { - title: "Default", - }, - { - title: "Disabled", - props: { - disabled: true, - }, - }, - ], - propTypes: { - disabled: "boolean", - state: ["Allow", "Neutral", "Deny"], - onChange: "function", - }, - props: { - state: "Neutral", - }, - effects: { - onChange: (_, state) => ({ - state, - }), - }, -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/OverrideSwitch.tsx b/packages/client/components/ui/components/design/atoms/inputs/OverrideSwitch.tsx deleted file mode 100644 index a76196de..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/OverrideSwitch.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import { BiRegularCheck, BiRegularX } from "solid-icons/bi"; -import { createSignal, splitProps } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -type State = "Allow" | "Neutral" | "Deny"; - -interface Props { - readonly state?: State; - readonly disabled?: boolean; - readonly onChange?: (state: State) => void; -} - -const SwitchContainer = styled("div", { - base: { - flexShrink: 0, - width: "fit-content", - - display: "flex", - margin: "4px 0", - overflow: "hidden", - borderRadius: "var(--borderRadius-md)", - - "&[aria-disabled]": { - pointerEvents: "none", - opacity: 0.6, - }, - - transition: "var(--transitions-fast) all", - background: "var(--unset-bg)", - }, -}); - -const Switch = styled("div", { - base: { - padding: "4px", - display: "flex", - cursor: "pointer", - alignItems: "center", - transition: "var(--transitions-fast) all", - - color: "var(--unset-fg)", - fill: "var(--unset-fg)", - - "&:hover": { - filter: "brightness(0.8)", - }, - - "& svg": { - stroke: "5px solid white", - }, - }, -}); - -/** - * Override Switch - */ -export function OverrideSwitch(props: Props) { - const [local, others] = splitProps(props, ["disabled", "onChange", "state"]); - - const [controlledValue, setControlledValue] = createSignal( - local.state || "Neutral" - ); - - const currentState = () => local.state ?? controlledValue(); - return ( - - - typeof local.state !== "undefined" - ? !local.disabled && local.onChange?.("Allow") - : setControlledValue("Allow") - } - role="radio" - > - - - - typeof local.state !== "undefined" - ? !local.disabled && local.onChange?.("Neutral") - : setControlledValue("Neutral") - } - role="radio" - > - - - - - - typeof local.state !== "undefined" - ? !local.disabled && local.onChange?.("Deny") - : setControlledValue("Deny") - } - role="radio" - > - - - - ); -} diff --git a/packages/client/components/ui/components/design/atoms/inputs/Radio.stories.tsx b/packages/client/components/ui/components/design/atoms/inputs/Radio.stories.tsx deleted file mode 100644 index 5b575738..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/Radio.stories.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import type { ComponentStory } from "../../../stories"; - -import { Radio } from "./Radio"; - -export default { - category: "Design System/Atoms/Inputs", - component: Radio, - stories: [ - { - title: "Default", - props: { - value: false, - }, - }, - { - title: "Checked", - props: { - value: true, - }, - }, - { - title: "Disabled", - props: { - disabled: true, - }, - }, - ], - props: { - title: "Hello, I am a radio button", - description: "And this is a cool description.", - }, - propTypes: { - title: "string", - description: "string", - disabled: "boolean", - value: "boolean", - onSelect: "function", - }, - effects: { - onSelect: (props) => ({ - value: !props.value, - }), - }, -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/atoms/inputs/index.ts b/packages/client/components/ui/components/design/atoms/inputs/index.ts deleted file mode 100644 index 1fcecfeb..00000000 --- a/packages/client/components/ui/components/design/atoms/inputs/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export { ComboBox } from "./ComboBox"; -export { LegacyCheckbox } from "./LegacyCheckbox"; -export { Checkbox } from "./Checkbox"; -export { Input } from "./Input"; -export { Button } from "./Button"; -export { MenuButton } from "./MenuButton"; -export { Radio } from "./Radio"; -export { CategoryButton } from "./CategoryButton"; -export { OverrideSwitch } from "./OverrideSwitch"; -export { CategoryCollapse } from "./CategoryCollapse"; -export { CategoryButtonGroup } from "./CategoryButtonGroup"; diff --git a/packages/client/components/ui/components/design/index.ts b/packages/client/components/ui/components/design/index.ts index ea1cd44e..14f24f17 100644 --- a/packages/client/components/ui/components/design/index.ts +++ b/packages/client/components/ui/components/design/index.ts @@ -1,2 +1,51 @@ -export * from "./atoms"; -export * from "./layout"; +/** + * Core design items + * + * Missing from Material 3 specification: + * - App bars + * - Button groups + * - Extended FAB + * - FAB + * - FAB menu + * - Split button + * - Cards + * - Carousel + * - Chips + * - Date & time pickers + * - Divider + * - Loading indicator (we want this!) + * - Progress indicator: Linear + * - Menus + * - Navigation bar + * - Navigation drawer + * - Search + * - Sheets (N/A desktop) + * - Range Sliders + * - Snackbar + * - Switch + * - Tabs + * - Toolbars + * - Tooltips + */ + +export { Avatar } from "./Avatar"; +export { Badge } from "./Badge"; +export { Button } from "./Button"; +export { CategoryButton } from "./CategoryButton"; +export { Checkbox } from "./Checkbox"; +export { DataTable } from "./DataTable"; +export { type DialogProps, Dialog } from "./Dialog"; +export { IconButton } from "./IconButton"; +export { List } from "./List"; +export { CircularProgress } from "./LoadingProgress"; +export { MenuItem } from "./Menu"; +export { MenuButton } from "./MenuButton"; +export { Radio2 } from "./Radio"; +export { Ripple } from "./Ripple"; +export { Slider } from "./Slider"; +export { Switch } from "./Switch"; +export { Text, typography } from "./Text"; +export { TextEditor } from "./TextEditor"; +export { TextField } from "./TextField"; +export { Unreads } from "./Unreads"; +export { UserStatus } from "./UserStatus"; diff --git a/packages/client/components/ui/components/design/layout/BreakText.tsx b/packages/client/components/ui/components/design/layout/BreakText.tsx deleted file mode 100644 index 7c46d3f8..00000000 --- a/packages/client/components/ui/components/design/layout/BreakText.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { styled } from "styled-system/jsx"; - -/** - * Container to break all text and prevent overflow from math blocks - * - * Use this to wrap Markdown - */ -export const BreakText = styled("div", { - base: { - wordBreak: "break-word", - - "& .math": { - overflowX: "auto", - overflowY: "hidden", - maxHeight: "100vh", - }, - }, -}); diff --git a/packages/client/components/ui/components/design/layout/InlineIcon.tsx b/packages/client/components/ui/components/design/layout/InlineIcon.tsx deleted file mode 100644 index 7be92202..00000000 --- a/packages/client/components/ui/components/design/layout/InlineIcon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { styled } from "styled-system/jsx"; - -/** - * Specific-width icon container - */ -export const InlineIcon = styled("div", { - base: { - display: "grid", - flexShrink: 0, - placeItems: "center", - }, - variants: { - size: { - short: { - width: "14px", - }, - normal: { - width: "42px", - }, - wide: { - width: "62px", - }, - }, - }, -}); diff --git a/packages/client/components/ui/components/design/layout/OverflowingText.stories.tsx b/packages/client/components/ui/components/design/layout/OverflowingText.stories.tsx deleted file mode 100644 index 85a0a56f..00000000 --- a/packages/client/components/ui/components/design/layout/OverflowingText.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import TextColourDecorator from "../../../decorators/TextColourDecorator"; -import type { ComponentStory } from "../../stories"; - -import { OverflowingText } from "./OverflowingText"; - -export default { - category: "Design System/Layout", - component: OverflowingText, - stories: [ - { - title: "Default", - }, - ], - props: { - children: "This is a long piece of text.", - }, - propTypes: { - children: "string", - }, - decorators: [ - (props) => ( -
- {props.children} -
- ), - TextColourDecorator, - ], -} as ComponentStory; diff --git a/packages/client/components/ui/components/design/layout/Row.stories.tsx b/packages/client/components/ui/components/design/layout/Row.stories.tsx deleted file mode 100644 index 1bc8cea7..00000000 --- a/packages/client/components/ui/components/design/layout/Row.stories.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import TextColourDecorator from "../../../decorators/TextColourDecorator"; -import type { ComponentStory } from "../../stories"; - -import { Row } from "./Row"; - -export default { - category: "Design System/Layout", - component: Row, - stories: [ - { - title: "Default", - }, - { - title: "No Gap", - props: { - gap: "none", - }, - }, - { - title: "Small Gap", - props: { - gap: "sm", - }, - }, - { - title: "Large Gap", - props: { - gap: "lg", - }, - }, - { - title: "Align (Center)", - props: { - children: ( - <> -
- two -
- lines -
-
text
-
normal
- - ), - align: true, - }, - }, - { - title: "Justify (End)", - props: { - justify: "end", - grow: true, - }, - decorators: [ - (props: any) => ( -
- {props.children} -
- ), - ], - }, - ], - props: { - children: () => ( - <> -
Element 1
-
Element 2
-
Element 3
- - ), - gap: "md", - align: "start", - justify: "start", - grow: false, - }, - decorators: [TextColourDecorator], - propTypes: { - children: "component", - gap: ["none", "sm", "md", "lg"], - align: ["start", "end", "left", "right", "center", "stretch", true], - justify: ["start", "end", "left", "right", "center", "stretch", true], - grow: "boolean", - }, -} as never as ComponentStory; diff --git a/packages/client/components/ui/components/design/layout/SizedContent.tsx b/packages/client/components/ui/components/design/layout/SizedContent.tsx deleted file mode 100644 index b87b91e5..00000000 --- a/packages/client/components/ui/components/design/layout/SizedContent.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import { JSX } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -interface Props { - /** - * Pixel width of the content - */ - width: number; - - /** - * Pixel height of the content - */ - height: number; - - /** - * The content itself - */ - children: JSX.Element; -} - -/** - * Sized content base container - */ -const Base = styled("figure", { - base: { - margin: 0, - - "& > :not(.container), .Spoiler": { - display: "block", - objectFit: "contain", - aspectRatio: "var(--width) / var(--height)", - borderRadius: "var(--borderRadius-md)", - }, - - "& video": { - minWidth: "var(--layout-attachments-min-width)", - maxWidth: "var(--layout-attachments-max-width)", - minHeight: "var(--layout-attachments-min-height)", - maxHeight: "var(--layout-attachments-max-height)", - }, - - "& iframe": { - minWidth: "var(--layout-attachments-min-width)", - maxWidth: "var(--layout-attachments-max-width)", - minHeight: "var(--layout-attachments-min-height)", - maxHeight: "var(--layout-attachments-max-height)", - }, - - "& .Spoiler.Video": { - minWidth: "var(--layout-attachments-min-width)", - maxWidth: "var(--layout-attachments-max-width)", - minHeight: "var(--layout-attachments-min-height)", - maxHeight: "var(--layout-attachments-max-height)", - }, - }, -}); - -/** - * Render tall content - */ -const Tall = styled(Base, { - base: { - "& img": { - width: "auto", - minHeight: "var(--layout-attachments-min-height)", - maxHeight: "var(--layout-attachments-max-height)", - }, - - "& .Spoiler.Image": { - width: "auto", - minHeight: "var(--layout-attachments-min-height)", - maxHeight: "var(--layout-attachments-max-height)", - height: "var(--height-px)", - }, - }, -}); - -/** - * Render wide content - */ -const Wide = styled(Base, { - base: { - "& img": { - height: "auto", - minWidth: "var(--layout-attachments-min-width)", - maxWidth: "var(--layout-attachments-max-width)", - }, - - "& .Spoiler.Image": { - height: "auto", - minWidth: "var(--layout-attachments-min-width)", - maxWidth: "var(--layout-attachments-max-width)", - width: "var(--width-px)", - }, - - "& .Spoiler.Video": { - height: "auto", - minWidth: "var(--layout-attachments-min-width)", - maxWidth: "var(--layout-attachments-max-width)", - }, - - "& video": { - height: "auto", - }, - }, -}); - -/** - * Automatic message content sizing for images, videos and embeds - */ -export function SizedContent(props: Props) { - // Height and width should never update? (maybe if we add removable attachments) - // eslint-disable-next-line solid/reactivity - const Base = props.height > props.width ? Tall : Wide; - return ( - - {props.children} - - ); -} diff --git a/packages/client/components/ui/components/design/layout/Spoiler.tsx b/packages/client/components/ui/components/design/layout/Spoiler.tsx deleted file mode 100644 index a8fd68a5..00000000 --- a/packages/client/components/ui/components/design/layout/Spoiler.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Show, createSignal } from "solid-js"; - -import { styled } from "styled-system/jsx"; - -import { useTranslation } from "@revolt/i18n"; - -interface Props { - contentType?: "Image" | "Video"; -} - -const Base = styled("div", { - base: { - zIndex: 1, - position: "relative", - - "& .Spoiler": { - cursor: "pointer", - position: "absolute", - backdropFilter: "var(--effects-spoiler)", - - display: "grid", - placeItems: "center", - - "& span": { - padding: "0.6em", - fontWeight: 600, - userSelect: "none", - textTransform: "uppercase", - boxShadow: "0 0 8px #00000044", - color: "var(--colours-foreground)", - borderRadius: "var(--borderRadius-lg)", - background: "var(--colours-background)", - }, - }, - }, -}); - -/** - * Spoiler Element - */ -export function Spoiler(props: Props) { - const t = useTranslation(); - const [shown, setShown] = createSignal(true); - - return ( - - -
setShown(false)} - > - {t("app.main.channel.misc.spoiler_attachment")} -
- -
- ); -} diff --git a/packages/client/components/ui/components/design/layout/index.tsx b/packages/client/components/ui/components/design/layout/index.tsx deleted file mode 100644 index 80b7f9f8..00000000 --- a/packages/client/components/ui/components/design/layout/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -export { Column } from "./Column"; -export { OverflowingText } from "./OverflowingText"; -export { Row } from "./Row"; -export { SizedContent } from "./SizedContent"; -export { Spoiler } from "./Spoiler"; -export { NonBreakingText } from "./NonBreakingText"; -export { Spacer } from "./Spacer"; -export { InlineIcon } from "./InlineIcon"; -export { PreviewStack } from "./PreviewStack"; -export { ListView } from "./ListView"; -export { BreakText } from "./BreakText"; diff --git a/packages/client/components/ui/components/features/index.ts b/packages/client/components/ui/components/features/index.ts new file mode 100644 index 00000000..47986831 --- /dev/null +++ b/packages/client/components/ui/components/features/index.ts @@ -0,0 +1,3 @@ +export * from "./legacy"; +export * from "./messaging"; +export * from "./profiles"; diff --git a/packages/client/components/ui/components/design/atoms/inputs/ComboBox.tsx b/packages/client/components/ui/components/features/legacy/ComboBox.tsx similarity index 93% rename from packages/client/components/ui/components/design/atoms/inputs/ComboBox.tsx rename to packages/client/components/ui/components/features/legacy/ComboBox.tsx index 4110ab82..acf16132 100644 --- a/packages/client/components/ui/components/design/atoms/inputs/ComboBox.tsx +++ b/packages/client/components/ui/components/features/legacy/ComboBox.tsx @@ -2,6 +2,8 @@ import { styled } from "styled-system/jsx"; /** * Dropdown element + * + * @deprecated Use TextField.Select instead */ export const ComboBox = styled("select", { base: { diff --git a/packages/client/components/ui/components/tools/Form.tsx b/packages/client/components/ui/components/features/legacy/Form.tsx similarity index 93% rename from packages/client/components/ui/components/tools/Form.tsx rename to packages/client/components/ui/components/features/legacy/Form.tsx index 0f9f3d93..78fcf923 100644 --- a/packages/client/components/ui/components/tools/Form.tsx +++ b/packages/client/components/ui/components/features/legacy/Form.tsx @@ -2,7 +2,8 @@ import { ComponentProps, For, JSX, Match, Show, Switch } from "solid-js"; import { SetStoreFunction, createStore } from "solid-js/store"; -import { Button, Column } from "../design"; +import { Button } from "../../design"; +import { Column } from "../../layout"; import { InputElement, @@ -94,14 +95,14 @@ export interface Props { */ export function getInitialValues( schema: T, - defaults?: Partial> + defaults?: Partial>, ) { const values: Partial> = {}; Object.keys(schema).forEach( (key) => (values[key as keyof typeof values] = - defaults?.[key] ?? emptyValue(schema[key])) + defaults?.[key] ?? emptyValue(schema[key])), ); return values as MapFormToValues; @@ -109,6 +110,8 @@ export function getInitialValues( /** * Dynamic Form component + * + * @deprecated use Form2, see docs. */ export function Form(props: Props) { const keys = Object.keys(props.schema); @@ -119,7 +122,7 @@ export function Form(props: Props) { setStore = props.setStore!; } else { const newStore = createStore( - getInitialValues(props.schema, props.defaults) + getInitialValues(props.schema, props.defaults), ); store = newStore[0]; setStore = newStore[1]; diff --git a/packages/client/components/ui/components/design/atoms/inputs/Input.tsx b/packages/client/components/ui/components/features/legacy/Input.tsx similarity index 88% rename from packages/client/components/ui/components/design/atoms/inputs/Input.tsx rename to packages/client/components/ui/components/features/legacy/Input.tsx index 7d41259e..8ae227f6 100644 --- a/packages/client/components/ui/components/design/atoms/inputs/Input.tsx +++ b/packages/client/components/ui/components/features/legacy/Input.tsx @@ -1,19 +1,9 @@ import { styled } from "styled-system/jsx"; -export interface Props { - /** - * Colour scheme - */ - readonly palette?: "primary" | "secondary"; - - /** - * Whether a submission has been tried and errors should display on the input - */ - readonly submissionTried?: boolean; -} - /** * Input element + * + * @deprecated Use TextField instead */ export const Input = styled("input", { base: { diff --git a/packages/client/components/ui/components/tools/InputElement.tsx b/packages/client/components/ui/components/features/legacy/InputElement.tsx similarity index 92% rename from packages/client/components/ui/components/tools/InputElement.tsx rename to packages/client/components/ui/components/features/legacy/InputElement.tsx index 5cb43292..544b720f 100644 --- a/packages/client/components/ui/components/tools/InputElement.tsx +++ b/packages/client/components/ui/components/features/legacy/InputElement.tsx @@ -1,4 +1,3 @@ -/* eslint-disable */ // TODO: finish implementation; then remove eslint-disable import { Accessor, @@ -11,16 +10,13 @@ import { splitProps, } from "solid-js"; -import { - // ColourSwatches, - Column, - ComboBox, - FormGroup, - Input, - LegacyCheckbox, - Radio, - Typography, -} from "../design"; +import { Text } from "../../design"; +import { Column } from "../../layout"; + +import { ComboBox } from "./ComboBox"; +import { Input } from "./Input"; +import { LegacyCheckbox } from "./LegacyCheckbox"; +import { Radio } from "./Radio"; // inputs: // - checkbox (bool) @@ -116,6 +112,8 @@ export type TypeProps = Omit< /** * Generic input element + * + * @deprecated use new elements */ export function InputElement(props: Props) { const [localProps, innerProps] = splitProps(props, [ @@ -125,9 +123,11 @@ export function InputElement(props: Props) { ]); return ( - + + ); } diff --git a/packages/client/components/ui/components/design/atoms/inputs/LegacyCheckbox.tsx b/packages/client/components/ui/components/features/legacy/LegacyCheckbox.tsx similarity index 98% rename from packages/client/components/ui/components/design/atoms/inputs/LegacyCheckbox.tsx rename to packages/client/components/ui/components/features/legacy/LegacyCheckbox.tsx index 7b350052..0345607c 100644 --- a/packages/client/components/ui/components/design/atoms/inputs/LegacyCheckbox.tsx +++ b/packages/client/components/ui/components/features/legacy/LegacyCheckbox.tsx @@ -106,7 +106,7 @@ const Checkmark = styled("div", { }, }); -export type Props = { +type Props = { readonly disabled?: boolean; readonly title?: JSX.Element; @@ -120,6 +120,9 @@ export type Props = { "value" | "children" | "onChange" | "title" >; +/** + * @deprecated Use Checkbox instead + */ export function LegacyCheckbox(props: Props) { const [local, others] = splitProps(props, [ "disabled", @@ -134,7 +137,6 @@ export function LegacyCheckbox(props: Props) { const checked = () => local.value ?? controlledValue(); return ( - // @ts-expect-error legacy component diff --git a/packages/client/components/ui/components/design/atoms/inputs/Radio.tsx b/packages/client/components/ui/components/features/legacy/Radio.tsx similarity index 98% rename from packages/client/components/ui/components/design/atoms/inputs/Radio.tsx rename to packages/client/components/ui/components/features/legacy/Radio.tsx index 511fce9c..807c7c2e 100644 --- a/packages/client/components/ui/components/design/atoms/inputs/Radio.tsx +++ b/packages/client/components/ui/components/features/legacy/Radio.tsx @@ -11,10 +11,6 @@ interface Props { onSelect?: (state: boolean) => void; } -interface BaseProps { - selected: boolean; -} - const Base = styled("label", { base: { border: "2px solid var(--foreground)", @@ -121,6 +117,9 @@ const Description = styled("div", { }, }); +/** + * @deprecated no alternative yet + */ export function Radio(props: Props) { const [local, others] = splitProps(props, [ "disabled", diff --git a/packages/client/components/ui/components/features/legacy/SegmentedButton.tsx b/packages/client/components/ui/components/features/legacy/SegmentedButton.tsx new file mode 100644 index 00000000..5f585006 --- /dev/null +++ b/packages/client/components/ui/components/features/legacy/SegmentedButton.tsx @@ -0,0 +1,60 @@ +import type { JSXElement } from "solid-js"; + +import "mdui/components/segmented-button-group.js"; +import "mdui/components/segmented-button.js"; +import { cva } from "styled-system/css"; + +/** + * @deprecated Material Expressive introduced button groups which should be used instead! + */ +export function SegmentedButton(props: { + value: string; + children: JSXElement; +}) { + return ( + + {props.children} + + ); +} + +/** + * @deprecated Material Expressive introduced button groups which should be used instead! + */ +export function SingleSelectSegmentedButtonGroup(props: { + onSelect: (e: Event & { currentTarget: HTMLInputElement }) => void; + children: JSXElement; + value: string; + required?: boolean; +}) { + return ( + + {props.children} + + ); +} + +const styles = cva({ + base: { + border: "1px solid var(--md-sys-color-on-surface)", + + "&:nth-child(1)": { + borderLeft: "1px solid var(--md-sys-color-on-surface)", + }, + + "&:not(:nth-child(1))": { + borderLeft: "none", + }, + + "&[selected]": { + color: "rgb(var(--mdui-color-on-secondary-container))", + background: "rgb(var(--mdui-color-secondary-container))", + }, + }, +}); diff --git a/packages/client/components/ui/components/design/atoms/display/Username.tsx b/packages/client/components/ui/components/features/legacy/Username.tsx similarity index 61% rename from packages/client/components/ui/components/design/atoms/display/Username.tsx rename to packages/client/components/ui/components/features/legacy/Username.tsx index c7c4c40a..ae52dc43 100644 --- a/packages/client/components/ui/components/design/atoms/display/Username.tsx +++ b/packages/client/components/ui/components/features/legacy/Username.tsx @@ -1,7 +1,7 @@ import { splitProps } from "solid-js"; -import { ColouredText } from "./ColouredText"; -import { typography } from "./Typography"; +import { typography } from "../../design/Text"; +import { ColouredText } from "../../utils/ColouredText"; type Props = { /** @@ -17,18 +17,15 @@ type Props = { /** * Username + * + * @deprecated this seems unideal */ export function Username(props: Props) { const [local, remote] = splitProps(props, ["username", "colour"]); return ( - - {local.username} - + {local.username} ); } diff --git a/packages/client/components/ui/components/features/legacy/index.ts b/packages/client/components/ui/components/features/legacy/index.ts new file mode 100644 index 00000000..8b08b84a --- /dev/null +++ b/packages/client/components/ui/components/features/legacy/index.ts @@ -0,0 +1,68 @@ +import { CategoryButton, Checkbox, List, Switch } from "../../design"; +import { type DialogProps, Dialog } from "../../design/Dialog"; +import { TextField } from "../../design/TextField"; +import { NavigationRail } from "../../navigation"; + +/** + * @deprecated Use the `Dialog` export instead! + */ +export const Modal2 = Dialog; + +/** + * @deprecated Use the `DialogScrim` export instead! + */ +export const ModalScrim = Dialog.Scrim; + +/** + * @deprecated Use the `DialogProps` export instead! + */ +export type Modal2Props = DialogProps; + +/** + * @deprecated Use the `List.Item` export instead! + */ +export const ListItem = List.Item; + +/** + * @deprecated Use the `List.Subheader` export instead! + */ +export const ListSubheader = List.Subheader; + +/** + * @deprecated Use the `NavigationRail.Item` export instead! + */ +export const NavigationRailItem = NavigationRail.Item; + +/** + * @deprecated Use the `TextField.Select` export instead! + */ +export const Select = TextField.Select; + +/** + * @deprecated Use the `CategoryButton.Group` export instead! + */ +export const CategoryButtonGroup = CategoryButton.Group; + +/** + * @deprecated Use the `CategoryButton.Collapse` export instead! + */ +export const CategoryCollapse = CategoryButton.Collapse; + +/** + * @deprecated Use the `Switch.Override` export instead! + */ +export const OverrideSwitch = Switch.Override; + +/** + * @deprecated Use the `Checkbox` export instead! + */ +export const Checkbox2 = Checkbox; + +export * from "./ComboBox"; +export * from "./Form"; +export * from "./Input"; +export * from "./InputElement"; +export * from "./LegacyCheckbox"; +export * from "./Radio"; +export * from "./SegmentedButton"; +export * from "./Username"; diff --git a/packages/client/components/ui/components/messaging/indicators/FloatingIndicator.tsx b/packages/client/components/ui/components/features/messaging/bars/FloatingIndicator.tsx similarity index 59% rename from packages/client/components/ui/components/messaging/indicators/FloatingIndicator.tsx rename to packages/client/components/ui/components/features/messaging/bars/FloatingIndicator.tsx index f55bce2e..5b36f444 100644 --- a/packages/client/components/ui/components/messaging/indicators/FloatingIndicator.tsx +++ b/packages/client/components/ui/components/features/messaging/bars/FloatingIndicator.tsx @@ -1,19 +1,19 @@ import { styled } from "styled-system/jsx"; -import { typography } from "../../design/atoms/display/Typography"; +import { typography } from "@revolt/ui/components/design"; /** * Common styles for the floating indicators */ export const FloatingIndicator = styled("div", { base: { + // for : + position: "relative", + display: "flex", userSelect: "none", alignItems: "center", - // for : - position: "relative", - width: "100%", gap: "var(--gap-md)", padding: "var(--gap-md)", @@ -21,21 +21,15 @@ export const FloatingIndicator = styled("div", { cursor: "pointer", backdropFilter: "var(--effects-blur-md)", - color: "var(--colours-messaging-indicator-foreground)", - backgroundColor: "var(--colours-messaging-indicator-background)", ...typography.raw({ size: "small" }), - // TODO: "@keyframes anim": { - // "0%": { - // transform: "translateY(var(--translateY))", - // }, - // "100%": { - // transform: "translateY(0px)", - // }, - // }, + fill: "var(--md-sys-color-on-primary)", + color: "var(--md-sys-color-on-primary)", + backgroundColor: + "color-mix(in srgb, var(--md-sys-color-primary) 55%, transparent)", - animation: "anim 340ms cubic-bezier(0.2, 0.9, 0.5, 1.16) forwards", + animation: "slideIn 340ms cubic-bezier(0.2, 0.9, 0.5, 1.16) forwards", }, variants: { position: { diff --git a/packages/client/components/ui/components/messaging/indicators/JumpToBottom.tsx b/packages/client/components/ui/components/features/messaging/bars/JumpToBottom.tsx similarity index 55% rename from packages/client/components/ui/components/messaging/indicators/JumpToBottom.tsx rename to packages/client/components/ui/components/features/messaging/bars/JumpToBottom.tsx index 7a2a55bd..0f5ce98b 100644 --- a/packages/client/components/ui/components/messaging/indicators/JumpToBottom.tsx +++ b/packages/client/components/ui/components/features/messaging/bars/JumpToBottom.tsx @@ -1,9 +1,10 @@ -import { useTranslation } from "@revolt/i18n"; -import { hoverStyles } from "@revolt/ui/directives"; +import { Trans } from "@lingui-solid/solid/macro"; + +import { iconSize } from "@revolt/ui"; import MdArrowForward from "@material-design-icons/svg/filled/arrow_forward.svg?component-solid"; -import { iconSize } from "../../.."; +import { Ripple } from "../../../../components/design"; import { FloatingIndicator } from "./FloatingIndicator"; @@ -18,18 +19,15 @@ interface Props { * Component indicating user can jump back to present messages */ export function JumpToBottom(props: Props) { - const t = useTranslation(); - return ( - + + - {t("app.main.channel.misc.viewing_old")} + Viewing older messages + + + Jump to present - {t("app.main.channel.misc.jump_present")} ); diff --git a/packages/client/components/ui/components/messaging/indicators/NewMessages.tsx b/packages/client/components/ui/components/features/messaging/bars/NewMessages.tsx similarity index 65% rename from packages/client/components/ui/components/messaging/indicators/NewMessages.tsx rename to packages/client/components/ui/components/features/messaging/bars/NewMessages.tsx index 1c190c66..bfa8076b 100644 --- a/packages/client/components/ui/components/messaging/indicators/NewMessages.tsx +++ b/packages/client/components/ui/components/features/messaging/bars/NewMessages.tsx @@ -1,15 +1,16 @@ import { Accessor, Show } from "solid-js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { css } from "styled-system/css"; import { styled } from "styled-system/jsx"; import { decodeTime } from "ulid"; -import { dayjs, useTranslation } from "@revolt/i18n"; -import { hoverStyles } from "@revolt/ui/directives"; +import { useTime } from "@revolt/i18n"; +import { Ripple } from "@revolt/ui/components/design"; +import { iconSize } from "@revolt/ui/components/utils"; import MdClose from "@material-design-icons/svg/filled/close.svg?component-solid"; -import { Ripple, iconSize } from "../../.."; - import { FloatingIndicator } from "./FloatingIndicator"; interface Props { @@ -33,10 +34,10 @@ interface Props { * Component indicating to user there were new messages in chat */ export function NewMessages(props: Props) { - const t = useTranslation(); - // TODO: hook escape button + const dayjs = useTime(); + /** * Remove the message */ @@ -49,15 +50,17 @@ export function NewMessages(props: Props) { - - {t("app.main.channel.misc.new_messages", { - time_ago: dayjs(decodeTime(props.lastId()!)).fromNow(), - })} + + + New messages since {dayjs(decodeTime(props.lastId()!)).fromNow()} + + + + Jump to the beginning - {t("app.main.channel.misc.jump_beginning")} - {/* + - */} + ); diff --git a/packages/client/components/ui/components/messaging/indicators/index.tsx b/packages/client/components/ui/components/features/messaging/bars/index.tsx similarity index 100% rename from packages/client/components/ui/components/messaging/indicators/index.tsx rename to packages/client/components/ui/components/features/messaging/bars/index.tsx index e20d8dd8..e5d61abb 100644 --- a/packages/client/components/ui/components/messaging/indicators/index.tsx +++ b/packages/client/components/ui/components/features/messaging/bars/index.tsx @@ -1,2 +1,2 @@ -export { NewMessages } from "./NewMessages"; export { JumpToBottom } from "./JumpToBottom"; +export { NewMessages } from "./NewMessages"; diff --git a/packages/client/components/ui/components/messaging/composition/FileCarousel.tsx b/packages/client/components/ui/components/features/messaging/composition/FileCarousel.tsx similarity index 79% rename from packages/client/components/ui/components/messaging/composition/FileCarousel.tsx rename to packages/client/components/ui/components/features/messaging/composition/FileCarousel.tsx index 193bb683..cfd8bea4 100644 --- a/packages/client/components/ui/components/messaging/composition/FileCarousel.tsx +++ b/packages/client/components/ui/components/features/messaging/composition/FileCarousel.tsx @@ -1,15 +1,16 @@ -import { BiRegularPlus, BiRegularXCircle, BiSolidFile } from "solid-icons/bi"; import { For, Match, Show, Switch } from "solid-js"; import { cva } from "styled-system/css"; import { styled } from "styled-system/jsx"; import { CONFIGURATION } from "@revolt/common"; -import { hoverStyles } from "@revolt/ui/directives"; +import { ALLOWED_IMAGE_TYPES } from "@revolt/state/stores/Draft"; +import { Ripple, typography } from "@revolt/ui/components/design"; +import { OverflowingText, iconSize } from "@revolt/ui/components/utils"; -import { ALLOWED_IMAGE_TYPES } from "../../../../state/stores/Draft"; -import { OverflowingText } from "../../design"; -import { typography } from "../../design/atoms/display/Typography"; +import MdAdd from "@material-design-icons/svg/outlined/add.svg?component-solid"; +import MdCancel from "@material-design-icons/svg/outlined/cancel.svg?component-solid"; +import MdFile from "@material-design-icons/svg/outlined/description.svg?component-solid"; interface Props { /** @@ -23,7 +24,7 @@ interface Props { */ getFile(fileId: string): { file: File; - dataUri: string | undefined; + dataUri?: string; }; /** @@ -87,7 +88,7 @@ export function FileCarousel(props: Props) { - + } > @@ -102,7 +103,7 @@ export function FileCarousel(props: Props) { - + @@ -114,11 +115,9 @@ export function FileCarousel(props: Props) { ); }} - - + + +
@@ -133,14 +132,14 @@ const PreviewBox = styled("div", { base: { display: "grid", justifyItems: "center", - gridTemplate: `"main" var(--layout-height-attachment-preview) / minmax(var(--layout-height-attachment-preview), 1fr)`, + gridTemplate: `"main" var(--preview-size) / minmax(var(--preview-size), 1fr)`, cursor: "pointer", overflow: "hidden", borderRadius: "var(--gap-md)", - background: "var(--colours-messaging-upload-file-background)", - color: "var(--colours-messaging-upload-file-foreground)", + fill: "white", + background: "var(--md-sys-color-surface-variant)", "& > *": { gridArea: "main", @@ -161,7 +160,7 @@ const Image = styled("img", { width: "100%", objectFit: "cover", marginBottom: "var(--gap-md)", - height: "var(--layout-height-attachment-preview)", + height: "var(--preview-size)", }, }); @@ -170,6 +169,8 @@ const Image = styled("img", { */ const Overlay = styled("div", { base: { + zIndex: 1, + display: "grid", alignItems: "center", justifyContent: "center", @@ -193,15 +194,18 @@ const Overlay = styled("div", { */ const EmptyEntry = styled("div", { base: { + position: "relative", + display: "grid", flexShrink: 0, placeItems: "center", - width: "var(--layout-height-attachment-preview)", - height: "var(--layout-height-attachment-preview)", + width: "var(--preview-size)", + height: "var(--preview-size)", cursor: "pointer", borderRadius: "var(--gap-md)", - background: "var(--colours-messaging-upload-file-new)", + fill: "var(--md-sys-color-on-surface-variant)", + background: "var(--md-sys-color-surface-variant)", }, }); @@ -229,7 +233,7 @@ const Entry = styled("div", { */ const FileName = styled("span", { base: { - maxWidth: "var(--layout-height-attachment-preview)", + maxWidth: "var(--preview-size)", textAlign: "center", ...typography.raw({ class: "label" }), @@ -254,7 +258,7 @@ const Divider = styled("div", { flexShrink: 0, width: "var(--gap-sm)", borderRadius: "var(--borderRadius-md)", - background: "var(--colours-messaging-upload-divider)", + background: "var(--md-sys-color-outline)", }, }); @@ -285,7 +289,9 @@ const Container = styled("div", { margin: "var(--gap-md) 0", borderRadius: "var(--borderRadius-lg)", - background: "var(--colours-messaging-message-box-background)", - color: "var(--colours-messaging-message-box-foreground)", + background: "var(--md-sys-color-primary-container)", + color: "var(--md-sys-color-on-primary-container)", + + "--preview-size": "100px", }, }); diff --git a/packages/client/components/ui/components/features/messaging/composition/MessageBox.tsx b/packages/client/components/ui/components/features/messaging/composition/MessageBox.tsx new file mode 100644 index 00000000..71ad88af --- /dev/null +++ b/packages/client/components/ui/components/features/messaging/composition/MessageBox.tsx @@ -0,0 +1,229 @@ +import { BiRegularBlock } from "solid-icons/bi"; +import { Accessor, JSX, Match, Show, Switch, onMount } from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { styled } from "styled-system/jsx"; + +import { Row } from "@revolt/ui"; +import { AutoCompleteSearchSpace } from "@revolt/ui/components/utils/autoComplete"; + +import { TextEditor2 } from "../../texteditor/TextEditor2"; + +interface Props { + /** + * Initial content + */ + initialValue: readonly [string]; + + /** + * Node replacement + */ + nodeReplacement?: readonly [string | "_focus"]; + + /** + * Text content + */ + content: string; + + /** + * Handle event to send message + */ + onSendMessage: () => void; + + /** + * Handle event when user is typing + */ + onTyping: () => void; + + /** + * Handle event when user wants to edit the last message in chat + */ + onEditLastMessage: () => void; + + /** + * Update text content + * @param v New content + */ + setContent: (v: string) => void; + + /** + * Actions to the left of the message box + */ + actionsStart: JSX.Element; + + /** + * Actions to the right of the message box + */ + actionsEnd: JSX.Element; + + /** + * Elements appended after the message box row + */ + actionsAppend: JSX.Element; + + /** + * Whether there are elements appended after the message box row + */ + hasActionsAppend: boolean; + + /** + * Placeholder in message box + */ + placeholder: string; + + /** + * Whether sending messages is allowed + */ + sendingAllowed: boolean; + + /** + * Auto complete config + */ + autoCompleteSearchSpace?: Accessor; + + /** + * Update the current draft selection + * + * @deprecated have to hook into ProseMirror instance now! + */ + updateDraftSelection?: (start: number, end: number) => void; +} + +/** + * Message box container + */ +const Base = styled("div", { + base: { + flexGrow: 1, + + paddingInlineEnd: "var(--gap-md)", + paddingBlock: "var(--gap-sm)", + borderStartRadius: "var(--borderRadius-xl)", + + display: "flex", + background: "var(--md-sys-color-surface-container-high)", + color: "var(--md-sys-color-on-surface)", + }, + variants: { + hasActionsAppend: { + true: { + borderEndRadius: "var(--borderRadius-md)", + }, + false: { + borderEndRadius: "var(--borderRadius-xl)", + }, + }, + }, + defaultVariants: { + hasActionsAppend: false, + }, +}); + +const Parent = styled("div", { + base: { + flexGrow: 1, + flexShrink: 0, + + display: "flex", + gap: "var(--gap-md)", + margin: "0 0 var(--gap-md) 0", + }, +}); + +/** + * Blocked message + */ +const Blocked = styled(Row, { + base: { + flexGrow: 1, + fontSize: "14px", + userSelect: "none", + padding: "var(--gap-md)", + }, +}); + +/** + * Specific-width icon container + */ +export const InlineIcon = styled("div", { + base: { + flexShrink: 0, + display: "flex", + alignItems: "end", + justifyContent: "center", + }, + variants: { + size: { + short: { + width: "14px", + }, + normal: { + width: "42px", + }, + wide: { + width: "62px", + }, + }, + }, +}); + +/** + * Message box + */ +export function MessageBox(props: Props) { + // props.updateDraftSelection?.( + // event.currentTarget.selectionStart, + // event.currentTarget.selectionEnd, + // ); + + /** + * Set initial draft selection + */ + onMount(() => + props.updateDraftSelection?.(props.content.length, props.content.length), + ); + + return ( + + + + + + + + + + + + + + {props.actionsEnd} + + } + > + + + + You don't have permission to send messages in this channel. + + + + + + {props.actionsAppend} + + ); +} + +MessageBox.InlineIcon = InlineIcon; diff --git a/packages/client/components/ui/components/messaging/composition/MessageReplyPreview.tsx b/packages/client/components/ui/components/features/messaging/composition/MessageReplyPreview.tsx similarity index 65% rename from packages/client/components/ui/components/messaging/composition/MessageReplyPreview.tsx rename to packages/client/components/ui/components/features/messaging/composition/MessageReplyPreview.tsx index 5906cbc6..95b9c93f 100644 --- a/packages/client/components/ui/components/messaging/composition/MessageReplyPreview.tsx +++ b/packages/client/components/ui/components/features/messaging/composition/MessageReplyPreview.tsx @@ -1,13 +1,13 @@ -import { BiRegularAt, BiSolidXCircle } from "solid-icons/bi"; -import { Show } from "solid-js"; +import { Match, Show, Switch } from "solid-js"; -import type { Message } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import type { Message } from "upryzing.js"; import { styled } from "styled-system/jsx"; -import { useTranslation } from "@revolt/i18n"; +import { Row } from "@revolt/ui/components/layout"; +import { Symbol } from "@revolt/ui/components/utils/Symbol"; -import { Row, typography } from "../../design"; -import { MessageReply } from "../message/MessageReply"; +import { MessageReply } from "../elements"; interface Props { /** @@ -56,14 +56,12 @@ const MentionToggle = styled("a", { flexDirection: "row", textTransform: "uppercase", gap: "var(--gap-sm)", + cursor: "pointer", }, variants: { mention: { - true: { - color: "var(--colours-messaging-indicator-reply-enabled)", - }, false: { - color: "var(--colours-messaging-indicator-reply-disabled)", + color: "var(--md-sys-color-outline)", }, }, }, @@ -76,6 +74,7 @@ const Dismiss = styled("a", { base: { display: "grid", placeItems: "center", + cursor: "pointer", }, }); @@ -87,11 +86,12 @@ const Base = styled(Row, { fontSize: "0.8em", userSelect: "none", + marginBlockEnd: "var(--gap-md)", padding: "var(--gap-md) var(--gap-lg)", borderRadius: "var(--borderRadius-lg)", - color: "var(--colours-messaging-indicator-foreground)", - background: "var(--colours-messaging-indicator-background)", + background: "var(--md-sys-color-primary-container)", + color: "var(--md-sys-color-on-primary-container)", "& a:hover": { filter: "brightness(1.2)", @@ -103,21 +103,27 @@ const Base = styled(Row, { * Preview of message reply */ export function MessageReplyPreview(props: Props) { - const t = useTranslation(); - return ( - {t("app.main.channel.reply.replying")} + + Replying to + - - {props.mention ? t("general.on") : t("general.off")} + alternate_email + Off}> + + On + + - + + cancel + diff --git a/packages/client/components/ui/components/messaging/composition/TypingIndicator.tsx b/packages/client/components/ui/components/features/messaging/composition/TypingIndicator.tsx similarity index 64% rename from packages/client/components/ui/components/messaging/composition/TypingIndicator.tsx rename to packages/client/components/ui/components/features/messaging/composition/TypingIndicator.tsx index 204005f3..e363d5ac 100644 --- a/packages/client/components/ui/components/messaging/composition/TypingIndicator.tsx +++ b/packages/client/components/ui/components/features/messaging/composition/TypingIndicator.tsx @@ -1,12 +1,12 @@ -import { For, Match, Show, Switch } from "solid-js"; +import { For, Match, Switch } from "solid-js"; -import { User } from "@upryzing/upryzing.js"; +import { Trans } from "@lingui-solid/solid/macro"; +import { User } from "upryzing.js"; import { styled } from "styled-system/jsx"; -import { useTranslation } from "@revolt/i18n"; import { useUsers } from "@revolt/markdown/users"; - -import { Avatar, OverflowingText, Typography, typography } from "../../design"; +import { Avatar, typography } from "@revolt/ui/components/design"; +import { OverflowingText } from "@revolt/ui/components/utils"; interface Props { /** @@ -24,8 +24,6 @@ interface Props { * Display typing user information */ export function TypingIndicator(props: Props) { - const t = useTranslation(); - /** * Generate list of user IDs * @returns User IDs @@ -36,7 +34,7 @@ export function TypingIndicator(props: Props) { (user) => typeof user !== "undefined" && user.id !== props.ownId && - user.relationship !== "Blocked" + user.relationship !== "Blocked", ) as User[] ) .sort((a, b) => a!.id.toUpperCase().localeCompare(b!.id.toUpperCase())) @@ -45,8 +43,8 @@ export function TypingIndicator(props: Props) { const users = useUsers(userIds, true); return ( - - + }> + @@ -62,26 +60,24 @@ export function TypingIndicator(props: Props) { - + Several people are typing…}> - {t("app.main.channel.typing.single", { - user: users()[0]!.username, - })} + {users()[0]!.username} is typing… - {t("app.main.channel.typing.multiple", { - user: users().slice(-1)[0]!.username, - userlist: users() + + {users() .slice(0, -1) .map((user) => user!.username) - .join(", "), - })} + .join(", ")}{" "} + and {users().slice(-1)[0]!.username} are typing… + - - + + ); } @@ -105,10 +101,8 @@ const Avatars = styled("div", { */ const Bar = styled("div", { base: { - bottom: 0, width: "100%", - height: "26px", - position: "absolute", + minHeight: "26px", padding: "0 var(--gap-lg)", borderRadius: "var(--borderRadius-lg)", @@ -120,17 +114,6 @@ const Bar = styled("div", { alignItems: "center", flexDirection: "row", - // backdropFilter: "var(--effects-blur-md)", - color: "var(--colours-messaging-indicator-foreground)", - // background: "var(--colours-messaging-indicator-background)", - }, -}); - -/** - * Position relatively to this space - */ -const Base = styled("div", { - base: { - position: "relative", + color: "var(--md-sys-color-on-surface)", }, }); diff --git a/packages/client/components/ui/components/messaging/composition/index.ts b/packages/client/components/ui/components/features/messaging/composition/index.ts similarity index 88% rename from packages/client/components/ui/components/messaging/composition/index.ts rename to packages/client/components/ui/components/features/messaging/composition/index.ts index 00e21a5e..fcff2ef4 100644 --- a/packages/client/components/ui/components/messaging/composition/index.ts +++ b/packages/client/components/ui/components/features/messaging/composition/index.ts @@ -1,4 +1,5 @@ -export { MessageReplyPreview } from "./MessageReplyPreview"; -export { TypingIndicator } from "./TypingIndicator"; export { FileCarousel } from "./FileCarousel"; export { MessageBox } from "./MessageBox"; +export { MessageReplyPreview } from "./MessageReplyPreview"; +export * from "./picker"; +export { TypingIndicator } from "./TypingIndicator"; diff --git a/packages/client/components/ui/components/features/messaging/composition/picker/CompositionMediaPicker.tsx b/packages/client/components/ui/components/features/messaging/composition/picker/CompositionMediaPicker.tsx new file mode 100644 index 00000000..f409d857 --- /dev/null +++ b/packages/client/components/ui/components/features/messaging/composition/picker/CompositionMediaPicker.tsx @@ -0,0 +1,199 @@ +import { useFloating } from "solid-floating-ui"; +import { + Accessor, + JSX, + Match, + Ref, + Setter, + Show, + Switch, + createContext, + createSignal, + onCleanup, + onMount, +} from "solid-js"; +import { Portal } from "solid-js/web"; +import { Motion, Presence } from "solid-motionone"; + +import { flip, offset, shift } from "@floating-ui/dom"; +import { cva } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { Button } from "@revolt/ui/components/design"; +import { Row } from "@revolt/ui/components/layout"; + +import { EmojiPicker } from "./EmojiPicker"; +import { GifPicker } from "./GifPicker"; + +interface Props { + /** + * User card trigger area + * @param triggerProps Props that need to be applied to the trigger area + */ + children: (triggerProps: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ref: Ref; + onClickGif: () => void; + onClickEmoji: () => void; + }) => JSX.Element; + + /** + * Send a message + */ + onMessage: (content: string) => void; + + /** + * Text replacement + */ + onTextReplacement: (node: string) => void; +} + +export const CompositionMediaPickerContext = createContext( + null as unknown as Pick, +); + +export function CompositionMediaPicker(props: Props) { + const [anchor, setAnchor] = createSignal(); + const [show, setShow] = createSignal<"gif" | "emoji">(); + + return ( + + {props.children({ + ref: setAnchor, + onClickGif: () => + setShow((current) => (current === "gif" ? undefined : "gif")), + onClickEmoji: () => + setShow((current) => (current === "emoji" ? undefined : "emoji")), + })} + + + + + + + + + + + ); +} + +function Picker( + props: Pick & { + anchor: Accessor; + show: Accessor<"gif" | "emoji" | undefined>; + setShow: Setter<"gif" | "emoji" | undefined>; + }, +) { + const [floating, setFloating] = createSignal(); + + const position = useFloating(() => props.anchor(), floating, { + placement: "top-end", + middleware: [offset(5), flip(), shift()], + }); + + function onMouseDown() { + props.setShow(); + } + + onMount(() => document.addEventListener("mousedown", onMouseDown)); + onCleanup(() => document.removeEventListener("mousedown", onMouseDown)); + + return ( + + + + + + + + Not available yet.}> + + + + + + + + + + ); +} + +/** + * Base element + */ +const Base = styled("div", { + base: { + width: "400px", + height: "400px", + // paddingInlineEnd: "5px", + }, +}); + +/** + * Container element for the picker + */ +const Container = styled("div", { + base: { + width: "100%", + height: "100%", + + userSelect: "none", + + display: "flex", + flexDirection: "column", + gap: "var(--gap-md)", + + alignItems: "stretch", + + overflow: "hidden", + padding: "var(--gap-md) 0", + + borderRadius: "var(--borderRadius-lg)", + color: "var(--md-sys-color-on-surface)", + fill: "var(--md-sys-color-on-surface)", + boxShadow: "0 0 3px var(--md-sys-color-shadow)", + background: "var(--md-sys-color-surface-container)", + }, +}); + +/** + * Styles for the content container + */ +export const compositionContent = cva({ + base: { + flexGrow: 1, + minHeight: 0, + }, +}); diff --git a/packages/client/components/ui/components/features/messaging/composition/picker/EmojiPicker.tsx b/packages/client/components/ui/components/features/messaging/composition/picker/EmojiPicker.tsx new file mode 100644 index 00000000..a569636b --- /dev/null +++ b/packages/client/components/ui/components/features/messaging/composition/picker/EmojiPicker.tsx @@ -0,0 +1,339 @@ +import { + Match, + Show, + Switch, + createMemo, + createSignal, + useContext, +} from "solid-js"; + +import { VirtualContainer } from "@minht11/solid-virtual-container"; +import { Emoji, Server } from "upryzing.js"; +import { cva } from "styled-system/css"; +import { styled } from "styled-system/jsx"; + +import { useClient } from "@revolt/client"; +import { UnicodeEmoji } from "@revolt/markdown/emoji"; +import { UNICODE_EMOJI_PACK_PUA } from "@revolt/markdown/emoji/UnicodeEmoji"; +import { useState } from "@revolt/state"; +import { Avatar, Ripple, TextField } from "@revolt/ui/components/design"; +import { Row } from "@revolt/ui/components/layout"; + +import emojiMapping from "../../../../../emojiMapping.json"; + +import { + CompositionMediaPickerContext, + compositionContent, +} from "./CompositionMediaPicker"; + +type Item = + | { + /** + * Server header + */ + t: 0; + server: Server; + } + | { + /** + * Spacing element + */ + t: 1; + } + | { + /** + * Custom emoji + */ + t: 2; + emoji: Emoji; + } + | { + /** + * Title header + */ + t: 3; + title: string; + } + | { + /** + * Unicode emoji + */ + t: 4; + name: string; + text: string; + }; + +const COLUMNS = 10; + +export function EmojiPicker() { + const client = useClient(); + const state = useState(); + + const [filter, setFilter] = createSignal(""); + + let serverScrollTargetElement!: HTMLDivElement; + let emojiScrollTargetElement!: HTMLDivElement; + + const items = createMemo(() => { + const filterText = filter().toLowerCase(); + + if (filterText) { + return [ + ...state.ordering + .orderedServers(client()) + .flatMap((server) => + server.emojis + .filter((emoji) => emoji.name.toLowerCase().includes(filterText)) + .map((emoji) => ({ t: 2, emoji })), + ), + ...Object.entries(emojiMapping) + .filter(([name]) => name.toLowerCase().includes(filterText)) + .map(([name, text]) => ({ t: 4, name, text })), + ] as Item[]; + } + + const items: Item[] = []; + + for (const server of state.ordering.orderedServers(client())) { + const emojis = server.emojis; + + if (emojis.length === 0) continue; + + items.push({ + t: 0, + server, + }); + + while (items.length % COLUMNS) { + items.push({ t: 1 }); + } + + for (const emoji of emojis) { + items.push({ t: 2, emoji }); + } + + while (items.length % COLUMNS) { + items.push({ t: 1 }); + } + } + + items.push({ + t: 3, + title: "Default", + }); + + while (items.length % COLUMNS) { + items.push({ t: 1 }); + } + + for (const emoji of Object.entries(emojiMapping)) { + items.push({ + t: 4, + name: emoji[0], + text: emoji[1] as string, + }); + } + + return items; + }); + + return ( + + { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + }} + onInput={(e) => setFilter(e.currentTarget.value)} + /> + +
+ + {ServerItem} + +
+
+ + Math.floor( + measurements.container.cross / measurements.itemSize.cross, + ) + } + > + {EmojiItem} + +
+
+
+ ); +} + +const Stack = styled("div", { + base: { + minHeight: 0, + display: "flex", + flexDirection: "column", + }, +}); + +const scrollContainer = cva({ + base: {}, + variants: { + component: { + serverRail: { + display: "none", + // flexShrink: 0, + // width: "40px", + }, + emoji: { + flexGrow: 1, + }, + }, + }, +}); + +const ServerItem = (props: { + style: unknown; + tabIndex: number; + item: number; +}) => ( + + {props.item} + +); + +const ServerOption = styled("div", { + base: { + width: "100%", + }, +}); + +const EmojiItem = (props: { style: unknown; tabIndex: number; item: Item }) => { + const state = useState(); + const { onTextReplacement } = useContext(CompositionMediaPickerContext); + + return ( + { + if (props.item.t === 2) { + onTextReplacement(`:${props.item.emoji.id}:`); + } + + if (props.item.t === 4) { + onTextReplacement( + `${UNICODE_EMOJI_PACK_PUA[state.settings.getValue("appearance:unicode_emoji")!] ?? ""}${props.item.text}`, + ); + } + }} + > + + + + + + + + + + + + {(props.item as Item & { t: 3 }).title} + + + + + + + + + + ); +}; + +const EmojiOption = styled("div", { + base: {}, + variants: { + type: { + 0: {}, + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }, + }, + compoundVariants: [ + { + type: [0, 3], + css: { + display: "flex", + alignItems: "center", + paddingInline: "var(--gap-md)", + width: `calc(40px * ${COLUMNS}) !important`, + }, + }, + { + type: [2, 4], + css: { + width: "100%", + cursor: "pointer", + position: "relative", + padding: "var(--gap-sm)", + borderRadius: "var(--borderRadius-sm)", + + "--emoji-size": "100%", + + "& img": { + width: "100%", + height: "100%", + objectFit: "contain", + }, + }, + }, + ], +}); + +function ServerHeader(props: { server: Server }) { + return ( + + + {props.server.name} + + ); +} diff --git a/packages/client/components/ui/components/features/messaging/composition/picker/GifPicker.tsx b/packages/client/components/ui/components/features/messaging/composition/picker/GifPicker.tsx new file mode 100644 index 00000000..8c2ad666 --- /dev/null +++ b/packages/client/components/ui/components/features/messaging/composition/picker/GifPicker.tsx @@ -0,0 +1,285 @@ +import { + Match, + Suspense, + Switch, + createContext, + createMemo, + createSignal, + useContext, +} from "solid-js"; + +import { Trans } from "@lingui-solid/solid/macro"; +import { VirtualContainer } from "@minht11/solid-virtual-container"; +import { useQuery } from "@tanstack/solid-query"; +import { styled } from "styled-system/jsx"; + +import { useClient } from "@revolt/client"; +import { + CircularProgress, + TextField, + typography, +} from "@revolt/ui/components/design"; + +import { CompositionMediaPickerContext } from "./CompositionMediaPicker"; + +type GifCategory = { title: string; image: string }; + +type GifResult = { + url: string; + media_formats: Record<"webm" | "tinywebm", { url: string }>; +}; + +const FilterContext = createContext<(value: string) => void>(); + +export function GifPicker() { + const [filter, setFilter] = createSignal(""); + + const fliterLowercase = () => filter().toLowerCase(); + + return ( + + { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + }} + onChange={(e) => setFilter(e.currentTarget.value)} + /> + }> + + + + } + > + + + + + + + ); +} + +const Stack = styled("div", { + base: { + minHeight: 0, + display: "flex", + flexDirection: "column", + }, +}); + +type CategoryItem = + | { + /** + * Category entry + */ + t: 0; + category: GifCategory; + } + | { + /** + * Trending entry + */ + t: 1; + gif: GifResult | null; + }; + +function Categories() { + let targetElement!: HTMLDivElement; + + const client = useClient(); + + const trendingCategories = useQuery(() => ({ + queryKey: ["trendingGifCategories"], + queryFn: () => { + const [authHeader, authHeaderValue] = client()!.authenticationHeader; + + return fetch("https://api.gifbox.me/categories?locale=en_US", { + headers: { + [authHeader]: authHeaderValue, + }, + }).then((r) => r.json()); + }, + refetchOnReconnect: false, + refetchOnWindowFocus: false, + })); + + const trendingGif = useQuery(() => ({ + queryKey: ["trendingGif1"], + queryFn: () => { + const [authHeader, authHeaderValue] = client()!.authenticationHeader; + + return fetch("https://api.gifbox.me/trending?locale=en_US&limit=1", { + headers: { + [authHeader]: authHeaderValue, + }, + }) + .then((r) => r.json()) + .then((resp) => resp.results[0]); + }, + refetchOnReconnect: false, + refetchOnWindowFocus: false, + initialData: null, + })); + + const items = createMemo(() => { + return [ + { + t: 1, + gif: trendingGif.data, + }, + ...(trendingCategories.data?.map((category) => ({ t: 0, category })) ?? + []), + ] as CategoryItem[]; + }); + + return ( +
+ + Math.floor(measurements.container.cross / measurements.itemSize.cross) + } + > + {CategoryItem} + +
+ ); +} + +const CategoryItem = (props: { + style: unknown; + tabIndex: number; + item: CategoryItem; +}) => { + const setFilter = useContext(FilterContext); + + return ( + + setFilter!(props.item.t === 0 ? props.item.category.title : "trending") + } + onMouseDown={(e) => { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + }} + > + Trending GIFs}> + + {(props.item as CategoryItem & { t: 0 }).category.title} + + + + ); +}; + +const Category = styled("div", { + base: { + ...typography.raw({ class: "title", size: "small" }), + + width: "200px", + height: "120px", + backgroundSize: "cover", + backgroundPosition: "center", + + color: "white", + display: "flex", + padding: "var(--gap-md)", + + alignItems: "end", + justifyContent: "end", + + cursor: "pointer", + }, +}); + +function GifSearch(props: { query: string }) { + let targetElement!: HTMLDivElement; + + const client = useClient(); + + const search = useQuery(() => ({ + queryKey: ["gifs", props.query], + queryFn: () => { + const [authHeader, authHeaderValue] = client()!.authenticationHeader; + + return fetch( + "https://api.gifbox.me/" + + (props.query === "trending" + ? `trending?locale=en_US` + : `search?locale=en_US&query=${encodeURIComponent(props.query)}`), + { + headers: { + [authHeader]: authHeaderValue, + }, + }, + ) + .then((r) => r.json()) + .then((resp) => resp.results); + }, + refetchOnReconnect: false, + refetchOnWindowFocus: false, + })); + + return ( +
+ + Math.floor(measurements.container.cross / measurements.itemSize.cross) + } + > + {GifItem} + +
+ ); +} + +const GifItem = (props: { + style: unknown; + tabIndex: number; + item: GifResult; +}) => { + const { onMessage } = useContext(CompositionMediaPickerContext); + + return ( + onMessage(props.item.url)} + /> + ); +}; + +const Gif = styled("video", { + base: { + width: "200px", + height: "120px", + cursor: "pointer", + objectFit: "cover", + }, +}); diff --git a/packages/client/components/ui/components/features/messaging/composition/picker/index.ts b/packages/client/components/ui/components/features/messaging/composition/picker/index.ts new file mode 100644 index 00000000..d2f76fb6 --- /dev/null +++ b/packages/client/components/ui/components/features/messaging/composition/picker/index.ts @@ -0,0 +1 @@ +export { CompositionMediaPicker } from "./CompositionMediaPicker"; diff --git a/packages/client/components/ui/components/messaging/message/Attachment.tsx b/packages/client/components/ui/components/features/messaging/elements/Attachment.tsx similarity index 60% rename from packages/client/components/ui/components/messaging/message/Attachment.tsx rename to packages/client/components/ui/components/features/messaging/elements/Attachment.tsx index d0885777..2d72819e 100644 --- a/packages/client/components/ui/components/messaging/message/Attachment.tsx +++ b/packages/client/components/ui/components/features/messaging/elements/Attachment.tsx @@ -1,13 +1,13 @@ import { Match, Show, Switch } from "solid-js"; -import { File, ImageEmbed, VideoEmbed } from "@upryzing/upryzing.js"; +import { File, ImageEmbed, Message, VideoEmbed } from "upryzing.js"; +import { css } from "styled-system/css"; import { styled } from "styled-system/jsx"; -import { getController } from "@revolt/common"; - -import { Column } from "../../design/layout"; -import { SizedContent } from "../../design/layout/SizedContent"; -import { Spoiler } from "../../design/layout/Spoiler"; +import { MessageContextMenu } from "@revolt/app"; +import { useModals } from "@revolt/modal"; +import { Column } from "@revolt/ui/components/layout"; +import { SizedContent, Spoiler } from "@revolt/ui/components/utils"; import { FileInfo } from "./FileInfo"; import { TextFile } from "./TextFile"; @@ -19,28 +19,17 @@ export const AttachmentContainer = styled(Column, { base: { padding: "var(--gap-md)", borderRadius: "var(--borderRadius-md)", - color: "var(--colours-messaging-component-attachment-foreground)", - background: "var(--colours-messaging-component-attachment-background)", + color: "var(--md-sys-color-inverse-on-surface)", + background: "var(--md-sys-color-inverse-surface)", }, }); -/** - * Print human-readable file size - */ -export function humanFileSize(size: number) { - if (size > 1e6) { - return `${(size / 1e6).toFixed(2)} MB`; - } else if (size > 1e3) { - return `${(size / 1e3).toFixed(2)} KB`; - } - - return `${size} B`; -} - /** * Render a given list of files */ -export function Attachment(props: { file: File }) { +export function Attachment(props: { file: File; message?: Message }) { + const { openModal } = useModals(); + return ( @@ -52,15 +41,20 @@ export function Attachment(props: { file: File }) {
- getController("modal").push({ + openModal({ type: "image_viewer", file: props.file, }) } loading="lazy" src={props.file.createFileURL()} + use:floating={{ + contextMenu: () => ( + + ), + }} /> @@ -72,14 +66,34 @@ export function Attachment(props: { file: File }) { -